安装 kubeadm,kubelet,kubectl 按照安装 kubeadm | Kubernetes 安装即可:
更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包 1 2 3 sudo apt-get updatesudo apt-get install -y apt-transport-https ca-certificates curl gpg
下载用于 Kubernetes 软件包仓库的公共签名密钥 1 2 3 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
添加 Kubernetes apt 仓库 1 2 echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本 1 2 3 sudo apt-get updatesudo apt-get install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectl
我按照 k8s 时最新版本就为 1.33.3,如有需要请手动指定版本。
开机启动 k8s 服务 1 2 systemctl enable kubelet kubelet --version
以下操作,只在控制平面节点上进行。
初始化 Master 节点 在控制平面节点执行以下命令:
1 2 3 4 5 6 kubeadm init \ --apiserver-advertise-address=192.168.88.136 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.33.3 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16
执行命令后耐心等待,直到安装完成,会出现以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME /.kube sudo cp -i /etc/kubernetes/admin.conf $HOME /.kube/config sudo chown $(id -u):$(id -g) $HOME /.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.88.136:6443 --token u6frrv.iu6p9mj9zf2xl719 \ --discovery-token-ca-cert-hash sha256:4f3e71a708035ec7d1d14b6adbd30b0c09b87b2a88d3cbdbab01d1c1d700b81b
其中说明,需要在控制平面节点执行以下命令:
1 2 3 mkdir -p $HOME /.kubesudo cp -i /etc/kubernetes/admin.conf $HOME /.kube/configsudo chown $(id -u):$(id -g) $HOME /.kube/config
如果当前以 root 身份登录,也可只执行以下命令来代替:
1 2 3 export KUBECONFIG=/etc/kubernetes/admin.confecho "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bashrc
在返回结果的最后一条,有如下命令:
1 2 kubeadm join 192.168.88.136:6443 --token xxxxxx \ --discovery-token-ca-cert-hash sha256:xxxxxx
这个是用来加入作业节点的,需要在作业节点上执行。
以下操作,只在作业节点上进行。
加入集群 在作业节点上执行上文提到的代码:
1 2 kubeadm join 192.168.88.136:6443 --token fj3f2y.23zukrabu7mfx83i \ --discovery-token-ca-cert-hash sha256:b3448376cb287b51a1878c8c385bae31fcb4eebd0b0b02b97f9c6ce911239a11
安装 k8s 网络插件 以下操作,只在控制平面节点上进行。
1 2 wget https://docs.projectcalico.org/manifests/calico.yaml
修改calico.yaml
文件中的CALICO_IPV4POOL_CIDR
参数,需要与前面kubeadm init
命令中的-–pod-network-cidr
参数一样10.244.0.0/16
)
文件内容较多,可使用/CALICO_IPV4POOL_CIDR快速查找。
最后,使用kubectl apply
命令将 Calico 插件部署到集群里:
1 kubectl apply -f calico.yaml
Calico 部署会比较慢,大概等个几分钟,等待 Calico 部署完成后,通过命令kubectl get node
查看节点状态,就可以看到所有节点已经准备就绪,此时集群正式搭建成功。
1 2 3 4 5 root@k8s-master:/opt/k8s# kubectl get node NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 11m v1.33.3 k8s-node-01 Ready <none> 9m49s v1.33.3 k8s-node-02 Ready <none> 9m47s v1.33.3
重置kubeadm