Kubernetes集群搭建二、
·
第三步:容器运行时环境部署
-
安装Docker组件:
- 执行命令:
apt-get install -y docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal containerd.io=1.5.9-1 docker-compose-plugin=2.3.3-0~ubuntu-focal - 添加阿里云镜像加速:
mkdir -p /etc/docker && echo '{"registry-mirrors":["https://<your-id>.mirror.aliyuncs.com"]}' > /etc/docker/daemon.json - 验证安装:
docker --version && docker-compose --version
- 执行命令:
-
CRI-Docker部署:
- 下载适配1.24+版本的CRI-Dockerd(如v0.3.1)
- 编译安装:
make all && make install - 配置systemd服务:修改
/usr/lib/systemd/system/cri-docker.service中的--network-plugin=cni参数
第四步:Kubernetes组件安装
-
系统预处理:
- 永久关闭Swap:
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab - 加载内核模块:
modprobe br_netfilter echo "br_netfilter" >> /etc/modules-load.d/k8s.conf
- 永久关闭Swap:
-
安装K8s组件:
- 添加仓库源:
apt-get install -y apt-transport-https ca-certificates curl && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - - 安装指定版本(如1.24.3):
apt-get install -y kubeadm=1.24.3-00 kubelet=1.24.3-00 kubectl=1.24.3-00
- 添加仓库源:
-
CRI集成:
- 修改kubelet配置:
echo "KUBELET_EXTRA_ARGS=--container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock" > /etc/default/kubelet
- 修改kubelet配置:
第五步:集群初始化
-
Master节点准备:
- 生成配置文件模板:
kubeadm config print init-defaults > kubeadm.yaml - 关键配置修改:
apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration nodeRegistration: criSocket: unix:///var/run/cri-dockerd.sock networking: podSubnet: 192.168.0.0/16
- 生成配置文件模板:
-
集群初始化:
- 执行初始化:
kubeadm init --config=kubeadm.yaml --upload-certs | tee init.log - 记录关键信息:
grep -A2 "kubeadm join" init.log
- 执行初始化:
-
节点加入:
- Worker节点执行:
kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> --cri-socket unix:///var/run/cri-dockerd.sock
- Worker节点执行:
第六步:网络插件部署
-
Calico安装:
- 下载对应版本manifest:
curl https://docs.projectcalico.org/manifests/calico.yaml -O - 修改CIDR配置:
sed -i 's/192.168.0.0/192.168.0.0/g' calico.yaml - 部署网络插件:
kubectl apply -f calico.yaml
- 下载对应版本manifest:
-
集群验证:
- 检查节点状态:
kubectl get nodes -o wide - 测试DNS解析:
kubectl run busybox --image=busybox:1.28 --restart=Never --rm -it -- nslookup kubernetes.default - 检查网络连通性:
kubectl get pods -n kube-system -l k8s-app=calico-node
- 检查节点状态:
更多推荐



所有评论(0)