Loading

Ubuntu24.04 部署Kubernetes

参考文章: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

posted @ 2024-07-25 13:25  眾尋  阅读(93)  评论(0编辑  收藏  举报