溫馨提示×

如何利用Debian進行K8S容器編排

小樊
46
2025-09-25 22:46:53
欄目: 智能運維

如何在Debian上進行K8S容器編排
Kubernetes(K8S)是一個開源容器編排平臺,用于自動化容器化應用的部署、擴展和管理。Debian作為穩定且廣泛使用的Linux發行版,是搭建K8S集群的理想基礎。以下是在Debian上利用K8S進行容器編排的詳細步驟:

一、準備工作

  1. 系統要求:確保所有節點(Master/Worker)滿足以下條件:
    • 至少2核CPU、2GB內存、20GB硬盤空間;
    • 安裝最新穩定版Debian(如Debian 12);
    • 所有節點之間網絡互通(配置靜態IP);
    • 關閉防火墻或開放必要端口(如6443、10250-10252等)。
  2. 系統設置
    • 在所有節點上設置主機名(如master-node、worker-node1),并編輯/etc/hosts文件添加節點映射(如192.168.1.10 master-node);
    • 關閉Swap分區(K8S要求):執行sudo swapoff -a,并修改/etc/fstab文件注釋掉Swap行(如# /swapfile none swap sw 0 0)。

二、安裝Docker(容器運行時)

K8S依賴容器運行時管理容器,推薦使用Docker(社區常用):

  1. 添加Docker官方GPG密鑰和軟件源:
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
    
  2. 安裝Docker:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl enable --now docker
    
  3. 驗證Docker安裝:
    docker run hello-world
    

三、安裝Kubernetes核心組件

  1. 添加Kubernetes軟件源
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt update
    
  2. 安裝kubelet、kubeadm、kubectl(K8S核心工具):
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl  # 鎖定版本,避免自動升級
    

四、初始化Master節點

  1. 初始化集群
    在Master節點上執行以下命令(指定Pod網絡CIDR,需與后續網絡插件匹配):
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
    命令執行完成后,會輸出加入Worker節點的命令(如kubeadm join 192.168.1.10:6443 --token xxx --discovery-token-ca-cert-hash sha256:yyy),需妥善保存。
  2. 配置kubectl
    將Master節點的K8S配置文件復制到當前用戶目錄:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  3. 驗證Master節點狀態
    kubectl get nodes  # 應顯示Master節點狀態為“NotReady”(需安裝網絡插件后變為Ready)
    

五、安裝網絡插件

K8S需要網絡插件實現Pod間通信,常用插件為Flannel(輕量級、易部署):

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

等待插件部署完成(約1-2分鐘),再次檢查節點狀態:

kubectl get nodes  # 應顯示Master節點狀態為“Ready”

六、加入Worker節點

在每臺Worker節點上,使用Master節點初始化時輸出的kubeadm join命令加入集群:

sudo kubeadm join 192.168.1.10:6443 --token xxx --discovery-token-ca-cert-hash sha256:yyy

加入完成后,Master節點的kubectl get nodes會顯示Worker節點狀態為“Ready”。

七、驗證容器編排功能

  1. 部署示例應用(Nginx)
    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
    
  2. 查看部署狀態
    kubectl get deployments  # 查看Deployment狀態
    kubectl get pods         # 查看Pod狀態(應為“Running”)
    kubectl get svc          # 查看Service狀態(獲取NodePort,如31743)
    
  3. 測試應用訪問
    在任意節點上執行以下命令(替換<node-ip>為Master/Worker節點的IP):
    curl http://<node-ip>:31743
    
    若返回Nginx歡迎頁面,說明容器編排成功。

八、后續管理

  1. 監控與日志
    部署Prometheus+Grafana監控集群狀態,使用EFK(Elasticsearch+Fluentd+Kibana)收集應用日志。
  2. 安全加固
    配置RBAC(基于角色的訪問控制)、啟用TLS加密、定期更新K8S組件。
  3. 備份與恢復
    使用Velero等工具備份集群數據,防止數據丟失。

通過以上步驟,即可在Debian上搭建K8S集群并實現容器編排。需注意,K8S版本迭代較快,建議參考官方文檔調整命令(如kubeadm init的參數)。

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