master-node
、worker-node1
),并更新/etc/hosts
文件,将节点IP与主机名映射(例如:192.168.1.100 master-node
)。sudo swapoff -a
;/etc/fstab
文件,注释或删除包含swap
的行。sudo apt update && sudo apt upgrade -y
。Kubernetes依赖容器运行时,推荐使用Docker(社区主流选择):
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
。curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
;echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
。sudo apt update
;sudo apt install -y docker-ce docker-ce-cli containerd.io
。sudo systemctl start docker
;sudo systemctl enable docker
。curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
;echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
。sudo apt update
;sudo apt install -y kubelet kubeadm kubectl
。sudo apt-mark hold kubelet kubeadm kubectl
。sudo kubeadm init --pod-network-cidr=10.244.0.0/16
。kubectl
(用于管理集群):mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```。
Kubernetes需要网络插件实现Pod间通信,推荐使用Flannel(轻量、易部署):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```。
#### **六、加入Worker节点**
在每台Worker节点上,执行Master节点初始化时输出的**加入命令**(格式如下):
`sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>`。
#### **七、验证安装**
1. 检查集群节点状态(在Master节点执行):
`kubectl get nodes`
若所有节点状态显示为`Ready`,则说明安装成功。
2. 部署示例应用(可选,验证功能):
```bash
kubectl create deployment nginx-app --image=nginx --replicas=2
kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80
kubectl describe svc nginx-web-svc # 查看NodePort端口
curl http://<node-ip>:<node-port> # 测试应用访问
```。
#### **注意事项**
- **时间同步**:确保所有节点时间一致(建议安装NTP服务,如`sudo apt install ntp`)。
- **防火墙配置**:开放Kubernetes必要端口(如6443、10250、10255等),避免集群通信受阻。
- **版本兼容性**:Kubernetes版本与Docker版本需兼容(参考官方文档的`Supported Versions`)。
- **生产环境建议**:使用更稳定的网络插件(如Calico)、配置RBAC权限、定期备份集群数据。