溫馨提示×

Debian系統部署Kubernetes有哪些注意事項

小樊
45
2025-10-08 14:21:23
欄目: 智能運維

1. 系統版本與內核要求
選擇Debian穩定版(如Debian 11 Bullseye或Debian 12 Bookworm),確保內核版本符合Kubernetes要求(通?!?.19)。避免使用Testing或Unstable版本,此類版本可能存在未解決的兼容性問題,不適合生產環境。

2. 關閉Swap分區
Kubernetes 1.8及以上版本要求禁用Swap分區,否則kubelet無法正常啟動。執行以下命令臨時關閉:sudo swapoff -a;永久關閉需編輯/etc/fstab文件,注釋掉包含“swap”的行。

3. 配置內核參數
加載必要的內核模塊并調整sysctl參數,優化網絡棧和容器運行時性能。執行以下命令:

  • 加載模塊:sudo tee /etc/modules-load.d/containerd.conf <<< "overlay br_netfilter",然后sudo modprobe overlay && sudo modprobe br_netfilter;
  • 設置sysctl:sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf <<< "net.bridge.bridge-nf-call-iptables=1\nnet.ipv4.ip_forward=1\nnet.bridge.bridge-nf-call-ip6tables=1",最后sudo sysctl --system使配置生效。

4. 選擇合適的容器運行時
Kubernetes 1.24及以上版本不再支持Docker作為默認運行時,推薦使用containerd。安裝步驟:

  • 更新軟件源:sudo apt update;
  • 安裝containerd:sudo apt install -y containerd;
  • 配置containerd:編輯/etc/containerd/config.toml,設置rootstate目錄(如root = "/var/lib/containerd"),并重啟服務:sudo systemctl restart containerd && sudo systemctl enable containerd。

5. 添加Kubernetes官方軟件源
為確保安裝最新穩定版本的Kubernetes組件,需添加官方APT倉庫。執行以下命令:

  • 導入GPG密鑰: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。

6. 安裝并固定Kubernetes組件版本
安裝kubelet、kubeadm、kubectl,并使用apt-mark hold固定版本,避免自動更新導致兼容性問題。命令示例:sudo apt install -y kubelet kubeadm kubectl && sudo apt-mark hold kubelet kubeadm kubectl。

7. 配置防火墻規則
若系統啟用防火墻(如ufw),需允許Kubernetes關鍵端口通信。常用端口包括:

  • kube-apiserver:6443/tcp;
  • etcd:2379/tcp(客戶端)、2380/tcp(節點間);
  • kubelet:10250/tcp(認證)、10255/tcp(只讀);
  • 網絡插件(如Calico):179/tcp(BGP)、4789/udp(VXLAN)。執行示例:sudo ufw allow 6443/tcp && sudo ufw allow 2379/tcp && sudo ufw allow 2380/tcp && sudo ufw allow 10250/tcp && sudo ufw allow 10255/tcp && sudo ufw allow 179/tcp && sudo ufw allow 4789/udp && sudo ufw reload。

8. 初始化集群與配置kubectl
在主節點上使用kubeadm init初始化集群,指定API服務器地址、Pod網絡CIDR等參數(如sudo kubeadm init --apiserver-advertise-address <主節點IP> --pod-network-cidr=10.244.0.0/16)。初始化完成后,將admin.conf復制到當前用戶的.kube目錄并設置權限:mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config。

9. 安裝網絡插件
Kubernetes需要網絡插件實現Pod間通信,常用插件如Calico、Flannel。以Calico為例,執行kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml安裝。部分插件需額外開放端口(如Calico的BGP端口179/tcp、VXLAN端口4789/udp)。

10. 版本兼容性檢查
確保Debian版本與Kubernetes版本兼容。參考Kubernetes官方文檔的版本兼容性矩陣(如Kubernetes 1.28支持Debian 11+),避免跨大版本升級(如從1.20直接升級到1.30),建議分階段升級(如1.20→1.21→1.22)。

11. 節點主機名與hosts文件配置
為每個節點設置唯一主機名(如k8s-master、k8s-node1),并編輯/etc/hosts文件,添加節點IP與主機名的映射(如192.168.1.101 k8s-master、192.168.1.102 k8s-node1),確保節點間可通過主機名通信。

12. 監控與日志配置
部署監控系統(如Prometheus+Grafana)監控集群狀態(節點CPU/內存、Pod運行狀態),配置日志系統(如ELK Stack)收集應用與系統日志,便于快速排查問題。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女