溫馨提示×

Debian Kubernetes集群搭建指南

小樊
39
2025-10-21 11:00:09
欄目: 智能運維

Debian Kubernetes集群搭建指南

一、前置準備

1. 系統要求

  • 硬件:每節點至少2核CPU、2GB RAM、20GB磁盤空間;
  • 軟件:Debian 10及以上版本(推薦12,兼容性更佳);
  • 網絡:節點間IP可達,關閉防火墻或放行必要端口(如API Server的6443/tcp、Calico的179/tcp/4789/udp等)。

2. 主機配置

  • 設置主機名:在每臺節點執行hostnamectl set-hostname <名稱>(如主節點k8s-master、工作節點k8s-node1);
  • 配置hosts文件:編輯/etc/hosts,添加節點IP與主機名映射(如192.168.1.1 k8s-master、192.168.1.2 k8s-node1);
  • 關閉Swap:執行sudo swapoff -a永久禁用(修改/etc/fstab,注釋含swap的行)。

二、安裝基礎組件

1. 安裝Docker

Docker是Kubernetes推薦的容器運行時,安裝步驟如下:

sudo apt update
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 enable --now docker

2. 安裝Kubernetes組件

添加Kubernetes官方源并安裝kubelet、kubeadm、kubectl(用于集群管理):

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  # 鎖定版本,避免自動升級

三、初始化主節點

在主節點執行kubeadm init初始化集群,指定Pod網絡CIDR(需與后續網絡插件匹配):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

初始化完成后,配置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間通信,常用Calico(高性能、支持網絡策略):

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

驗證插件狀態:

kubectl get pods -n kube-system  # 所有Pod應為"Running"狀態

五、加入工作節點

在主節點初始化時,會輸出kubeadm join命令(包含Token和CA證書哈希)。在工作節點執行該命令即可加入集群:

sudo kubeadm join <主節點IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>

若忘記命令,可在主節點重新生成:kubeadm token create --print-join-command。

六、驗證集群

  1. 檢查節點狀態
    kubectl get nodes  # 主節點應為"Ready"狀態,工作節點同步后也會變為"Ready"
    
  2. 部署測試應用
    kubectl create deployment nginx --image=nginx --replicas=2
    kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80
    kubectl get svc  # 查看NodePort端口(如31743)
    
  3. 訪問應用
    在瀏覽器或通過curl訪問<節點IP>:<NodePort>,應顯示Nginx歡迎頁面。

注意事項

  • 版本兼容性:確保Docker、Kubernetes組件版本匹配(參考官方文檔);
  • 防火墻配置:若使用ufw,需放行Kubernetes相關端口(如sudo ufw allow 6443/tcp);
  • 持久化配置:建議將/etc/kubernetes目錄備份,避免數據丟失。

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