溫馨提示×

Debian安裝Kubernetes的注意事項

小樊
33
2025-10-19 06:56:14
欄目: 智能運維

1. 系統版本與內核要求
選擇Debian穩定版(如Debian 11 Bullseye、Debian 12 Bookworm),避免使用測試版或不穩定版,以確保系統穩定性和兼容性。內核版本需≥5.10(Debian 11/12默認滿足),以支持Kubernetes的網絡(如iptables轉發)和存儲(如overlay文件系統)功能。

2. 硬件資源配置
每個節點需滿足最低硬件要求:至少2核CPU、2GB RAM、20GB可用磁盤空間(生產環境建議4核CPU、8GB RAM以上)。資源不足會導致kubelet頻繁崩潰、Pod調度失敗或etcd數據庫性能下降。

3. 關閉Swap分區
Kubernetes要求所有節點(包括主節點和工作節點)永久關閉Swap分區,否則kubelet無法正常啟動(會報“kubelet has disk pressure”錯誤)。操作步驟:sudo swapoff -a(臨時關閉),sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab(永久注釋swap行)。

4. 安裝與配置Containerd運行時
Kubernetes推薦使用containerd作為容器運行時(替代Docker)。安裝前需加載必要內核模塊并配置系統參數:

  • 創建模塊加載文件:sudo tee /etc/modules-load.d/containerd.conf <<EOF overlay br_netfilter EOF;
  • 加載模塊:sudo modprobe overlay && sudo modprobe br_netfilter;
  • 配置內核轉發:sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf <<EOF net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF;
  • 生效配置:sudo sysctl --system;
  • 安裝containerd:sudo apt install -y containerd;
  • 初始化配置:sudo containerd init;
  • 啟動服務:sudo systemctl enable --now containerd。

5. 添加Kubernetes官方APT倉庫
通過官方倉庫安裝最新穩定版本的Kubernetes組件(kubelet、kubeadm、kubectl),避免第三方倉庫的兼容性問題。操作步驟:

  • 導入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;
  • 安裝組件:sudo apt install -y kubelet kubeadm kubectl;
  • 鎖定版本(防止自動升級破壞兼容性):sudo apt-mark hold kubelet kubeadm kubectl。

6. 配置系統內核參數
Kubernetes需要特定的內核參數支持網絡功能(如iptables轉發、bridge調用)。除上述containerd配置中的br_netfilterip_forward外,還需確保以下參數生效:

  • 創建配置文件:sudo tee /etc/modules-load.d/k8s.conf <<EOF overlay br_netfilter EOF;
  • 加載模塊:sudo modprobe overlay && sudo modprobe br_netfilter;
  • 生效配置:sudo sysctl --system。

7. 防火墻端口放行
若啟用防火墻(如UFW),需允許Kubernetes關鍵端口通信,確保主節點與工作節點之間的連接正常。需放行的端口包括:

  • 6443/tcp(kube-apiserver端口,集群管理入口);
  • 2379:2380/tcp(etcd集群端口,用于存儲集群狀態);
  • 10250/tcp(kubelet端口,節點與控制平面通信);
  • 10251/tcp(kube-controller-manager端口,控制器管理);
  • 10252/tcp(kube-scheduler端口,調度器);
  • 10255/tcp(kube-proxy端口,網絡代理)。操作命令:sudo ufw allow 6443/tcp && sudo ufw allow 2379:2380/tcp && sudo ufw allow 10250/tcp && sudo ufw allow 10251/tcp && sudo ufw allow 10252/tcp && sudo ufw allow 10255/tcp && sudo ufw reload。

8. 使用kubeadm初始化集群
在主節點上使用kubeadm init命令初始化集群,需指定以下關鍵參數:

  • --apiserver-advertise-address:主節點IP地址(確保集群節點可訪問);
  • --pod-network-cidr:Pod網絡CIDR(如10.244.0.0/16,適配Flannel等網絡插件);
  • --service-cidr:Service網絡CIDR(如10.96.0.0/12,用于集群內部服務通信)。
    初始化完成后,保存輸出的kubeadm join命令(包含token和CA證書哈希),用于工作節點加入集群。

9. 配置網絡插件
Kubernetes需要網絡插件(如Calico、Flannel)實現Pod之間的通信。安裝插件前需確保containerd和內核參數已正確配置。以Calico為例,操作步驟:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml(官方YAML文件)。安裝后需驗證網絡連通性(如kubectl run test-pod --image=busybox --rm -it --restart=Never -- sh,進入Pod后ping其他節點的Pod IP)。

10. 主機名與hosts文件配置
在所有節點上設置主機名(如master-node、worker-node-1),并在/etc/hosts文件中添加節點IP與主機名的映射(如192.168.1.10 master-node、192.168.1.11 worker-node-1),確保節點之間可通過主機名解析(避免DNS問題導致的通信故障)。

11. 版本兼容性檢查
確保Debian版本與Kubernetes版本兼容。例如:

  • Debian 11(Bullseye)兼容Kubernetes 1.23及以上版本;
  • Debian 12(Bookworm)兼容Kubernetes 1.30及以上版本。
    避免跨大版本安裝(如Debian 11安裝Kubernetes 1.40),可能導致組件無法正常運行。

12. 監控與日志配置
安裝后需配置監控和日志系統,及時發現集群問題。常用工具組合:

  • 監控:Prometheus(采集指標)+ Grafana(可視化);
  • 日志:EFK Stack(Elasticsearch+Fluentd+Kibana)或Loki+Grafana。
    這些工具可幫助監控節點資源使用率、Pod狀態、etcd數據庫性能等關鍵指標。

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