Debian上Kubernetes部署有哪些注意事项
1. 系统要求确认
确保Debian系统满足Kubernetes的最低硬件要求(至少2核CPU、2GB RAM、20GB可用磁盘空间),并使用Debian 10及以上稳定版本(如Debian 11、12),以保证与Kubernetes版本的兼容性。
2. 关闭Swap分区
Kubernetes 1.8及以上版本要求禁用Swap分区,否则kubelet无法正常启动。执行以下命令永久禁用:
sudo swapoff -a
sudo sed -i '/ swap / s/1/g' /etc/fstab # 注释掉fstab中swap相关行
临时禁用可使用sudo swapoff -a,但需重启后生效。
3. 配置内核参数
调整内核参数以支持容器网络和桥接功能,需修改/etc/sysctl.d/99-kubernetes-k8s.conf文件,添加:
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
然后执行sudo sysctl --system使配置生效。同时加载必要的内核模块(overlay、br_netfilter),可通过/etc/modules-load.d/containerd.conf文件配置。
4. 选择并配置容器运行时
Kubernetes 1.24及以上版本弃用Docker,推荐使用containerd作为容器运行时。安装步骤:
sudo apt update
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml # 生成默认配置
sudo systemctl restart containerd
sudo systemctl enable containerd
若仍需使用Docker,需通过kubeadm config images set docker命令配置Kubernetes兼容的Docker镜像。
5. 添加Kubernetes官方APT仓库
为确保安装最新稳定版本的Kubernetes组件,需添加官方APT仓库:
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
安装kubelet、kubeadm、kubectl后,使用sudo apt-mark hold kubelet kubeadm kubectl锁定版本,防止自动升级导致兼容性问题。
6. 初始化集群与配置kubectl
在主节点上执行kubeadm init初始化集群,指定Pod网络CIDR(如--pod-network-cidr=10.244.0.0/16)和API服务器地址(如--apiserver-advertise-address=<
主节点IP>
)。初始化完成后,配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
验证集群状态:kubectl get nodes。
7. 安装网络插件
Kubernetes需要网络插件实现Pod间通信,常用插件如Calico、Flannel。以Calico为例,执行:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
若使用Flannel,可参考官方文档部署。安装后需开放对应端口(如Calico的179/TCP、4789/UDP)。
8. 防火墙与端口配置
若系统启用防火墙(如UFW),需允许Kubernetes关键端口:
sudo ufw allow 6443/tcp # Kubernetes API服务器
sudo ufw allow 2379/tcp # etcd客户端API
sudo ufw allow 2380/tcp # etcd服务器间通信
sudo ufw allow 10250/tcp # Kubelet API
sudo ufw allow 10251/tcp # kube-scheduler
sudo ufw allow 10252/tcp # kube-controller-manager
sudo ufw allow 10255/tcp # kube-proxy
sudo ufw reload
确保所有节点间网络互通,避免因防火墙阻断导致集群故障。
9. 版本兼容性检查
Kubernetes各组件(kubelet、kubeadm、kubectl)版本需保持一致(差异不超过1个小版本),且与Debian版本兼容。参考Kubernetes官方文档的“版本兼容性矩阵”,避免因版本不匹配导致部署失败。
10. 主机名与hosts文件配置
为每个节点设置唯一主机名(如k8s-master、k8s-node1),并通过/etc/hosts文件添加节点IP与主机名的映射,确保节点间可通过主机名通信:
sudo hostnamectl set-hostname <
节点主机名>
echo "<
节点IP>
<
节点主机名>
" | sudo tee -a /etc/hosts
例如:
echo "192.168.1.10 k8s-master" | sudo tee -a /etc/hosts
echo "192.168.1.11 k8s-node1" | sudo tee -a /etc/hosts
```。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian上Kubernetes部署有哪些注意事项
本文地址: https://pptw.com/jishu/745413.html
