参考文章:Ubuntu 24.04 安装 Kubernetes - 软件简史 - SegmentFault 思否
一共部署三台机器,IP:192.168.33.4、192.168.33.5、192.168.33.6 都是24.04的虚拟机
1) 设置 Host Name 更新 hosts 文件
登录到各个主机,并使用 hostnamectl 命令设置它们各自的主机名。
sudo hostnamectl set-hostname "k8s-master"
sudo hostnamectl set-hostname "k8s-node1"
sudo hostnamectl set-hostname "k8s-node2"
将以下行添加到每个实例上的 /etc/hosts 文件中。
192.168.33.4 k8s-master
192.168.33.5 k8s-node1
192.168.33.6 k8s-node2
2) 禁用 swap,加载内核模块
在每个实例上运行以下命令来禁用交换空间,这样 Kubernetes 集群才能顺利工作。
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
使用 modprobe 命令加载以下内核模块。
sudo modprobe overlay
sudo modprobe br_netfilter
要永久加载这些模块,请创建包含以下内容的文件。
sudo tee /etc/modules-load.d/k8s.conf <<EOF
overlay
br_netfilter
EOF
接下来,添加像 IP 转发这样的内核参数。创建一个文件,并使用 sysctl 命令加载参数。
sudo tee /etc/sysctl.d/kubernetes.conf <<EOT
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOT
运行以下命令,加载上述内核参数。
sudo sysctl --system
3) 安装配置 Containerd
Containerd 为 Kubernetes 提供了容器运行时,在所有三个实例上安装 containerd
首先,安装容器依赖项
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
接下来,使用以下命令添加 containerd 存储库。
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/containerd.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
现在,使用以下 apt 命令安装 containerd
sudo apt update && sudo apt install containerd.io -y
接下来,配置 containerd,使其开始使用 SystemdCgroup 运行下面的命令。
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
重新启动 containerd 服务,使上述更改生效。
sudo systemctl restart containerd
4) 添加 Kubernetes Package Repository
Kubernetes 软件包在 Ubuntu 24.04 的默认包存储库中不可用,所以要先添加它的存储库。在每个实例上运行这些步骤。
注意: 在撰写本文时,Kubernetes 的最新版本是 1.30 所以你可以根据自己的需求选择版本。
使用 curl 命令下载 Kubernetes 包存储库的公共签名密钥。
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/k8s.gpg
接下来,通过运行以下命令添加 Kubernetes 存储库。
echo 'deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/k8s.list
5) 安装 Kubernetes 部件 (Kubeadm, kubelet & kubectl)
安装 Kubernetes 组件,在所有实例上运行以下 apt 命令。
sudo apt update
sudo apt install kubelet kubeadm kubectl -y
6) 安装 Kubernetes
所有的先决条件都满足了,我们可以开始安装 Kubernetes 了。
在 master 节点上执行 Kubeadm 命令,仅用于初始化 Kubernetes 集群。
sudo kubeadm init --control-plane-endpoint=k8s-master
该命令将为 Kubernetes 集群拉取所需的镜像。成功执行此命令后,我们将得到如下所示的输出。
在上面的输出中,我们将获得一系列命令。例如:如何与 kubernetes 群集互动,如何添加 worker 节点到此群集。
在 master 节点上运行以下命令。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在master节点上云霄以下命令
kubectl get nodes
7) 安装 Calico Network Add-on Plugin
仅在 master 节点上运行如下的命令
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml
注意里面的版本,是需要对应的
calico 安装成功后,节点状态会在 5~ 6 分钟后变为 Ready
kubectl get pods -n kube-system
7) 添加子节点
接下来,从输出中复制命令以连接 node 节点,在两个 node 节点上运行它。
kubeadm join k8s-master:6443 --token y9ne07.f9hqxxhueynl43ld \
--discovery-token-ca-cert-hash sha256:e6738fb8ef5504746a0dbe12ee68c35508a192d3f3a5d25a40332228c9b0dca6
在master节点运行命令
kubectl get pods -n kube-system
标签:Kubernetes,部署,containerd,sudo,Ubuntu24.04,apt,etc,k8s
From: https://www.cnblogs.com/ZXdeveloper/p/18322301