• AlmaLinux 9上安装Kubernetes 1.25集群


    AlmaLinux 9上安装Kubernetes 1.25集群

    0. 确认Linux版本

    uname -a
    
    • 1

    在这里插入图片描述

    1. 禁用swap

    sudo swapoff -a
    
    • 1

    2. 禁用防火墙

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
    • 1
    • 2

    3. 将SELinux设置为permissive模式

    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    
    • 1
    • 2

    4. 更新/etc/hosts

    /etc/hosts中加入下面命令的输出结果

    echo $(hostname -i) $(hostname -long)
    
    • 1

    5. 安装podman, podman remotes, socat, runc, conmon

    sudo dnf install -y podman podman-remote socat runc conmon
    
    • 1

    启用 podman socket

    sudo systemctl enable -- now podman.socket
    
    • 1

    检查远程 podman-remote info 的显示信息

    sudo podman-remote info
    
    • 1

    6. 安装crio

    sudo rpm -ivh https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.25:/1.25.1/Fedora_36/x86_64/cri-o-1.25.1-3.1.fc36.x86_64.rpm
    sudo systemctl enable --now crio
    
    • 1
    • 2

    7. 安装kubelet kubeadm kubectl

    cat <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    8. 更新模块设置

    cat <
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    对模块使用modprobe

    sudo modprobe overlay
    sudo modprobe br_netfilter
    sudo modprobe ip_tables
    sudo modprobe iptable_filter
    
    • 1
    • 2
    • 3
    • 4

    为 k8s.conf 设置 sysctl.d

    cat <

应用 sysctl 参数,无需重启

sysctl --system
  • 1

9. 设置一个calico ignore并加载calicoctl

cat << EOF > /etc/NetworkManager/conf.d/calico.conf
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:vxlan-v6.calico;interface-name:wireguard.cali;interface-name:wg-v6.cali
EOF
  • 1
  • 2
  • 3
  • 4

下载和安装calicoctl

curl -L -o calicoctl https://github.com/projectcalico/calico/releases/download/v3.24.5/calicoctl-linux-amd64
chmod +x calicoctl
mv calicoctl /bin
  • 1
  • 2
  • 3

编辑 crio,添加最后两个值

vi /etc/crio/crio.conf
---
[crio.runtime]
conmon_cgroup = "pod"
cgroup_manager = "systemd"
---
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

10. 初始化Kubernetes集群

kubeadm init --cri-socket=unix:///var/run/crio/crio.sock --pod-network-cidr=10.244.0.0/16
  • 1

11. 配置集群访问

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl taint nodes --all node-role.kubernetes.io/control-plane-

kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

12. 确认集群

kubectl get nodes
kubectl get pods -A
  • 1
  • 2

在这里插入图片描述

完结!

  • 相关阅读:
    已解决:树莓派外接硬盘 usb 或者sata 导致wifi无法链接 无线网卡无法使用问题
    Redis/Mysql知识概述
    一文学会Set与Map以及集合类的使用选取,HashMap底层源码解析
    go微服务框架Kratos笔记「链路追踪实战」
    CC6链子
    思科华为设备端口聚合配置命令对比
    Linux学习第16天:Linux设备树下的LED驱动开发:举一反三 专注专心专业
    Java 截取字符串的几种操作,你必须要知道哦
    Apollo 中配置String、Map和List和默认值
    JavaScript中常用的输入输出语句介绍
  • 原文地址:https://blog.csdn.net/engchina/article/details/127997891