溫馨提示×

Ubuntu上Kubernetes網絡配置怎么做

小樊
49
2025-10-04 02:54:33
欄目: 智能運維

Ubuntu上Kubernetes網絡配置指南
在Ubuntu上配置Kubernetes網絡需完成基礎集群搭建、網絡插件選擇與部署、網絡驗證可選策略配置四大步驟,以下是詳細操作流程:

一、準備工作:安裝基礎組件

在配置網絡前,需確保Ubuntu節點已安裝Docker(容器運行時)及Kubernetes核心組件(kubelet、kubeadm、kubectl)。

  1. 更新系統包
    sudo apt update && sudo apt upgrade -y
    
  2. 安裝Docker
    sudo apt install -y docker.io
    sudo systemctl enable --now docker
    
  3. 添加Kubernetes倉庫并安裝組件
    sudo apt install -y apt-transport-https curl
    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  # 鎖定版本避免自動升級
    

二、初始化Kubernetes集群

僅在Master節點執行以下命令,初始化集群時需指定Pod網絡CIDR(與后續網絡插件網段一致,如10.244.0.0/16):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

初始化完成后,配置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跨節點通信,常見插件及安裝流程如下:

1. Calico(企業級,支持網絡策略)

Calico基于BGP協議,提供高性能三層網絡及細粒度安全策略,適合中大規模生產環境。

  • 下載并部署Calico清單
    curl -O https://docs.projectcalico.org/v3.26/manifests/calico.yaml
    
  • (可選)調整配置:若集群Pod網段非默認192.168.0.0/16,需編輯calico.yaml,搜索CALICO_IPV4POOL_CIDR修改為集群實際網段(如10.244.0.0/16);若節點使用雙網卡,添加IP_AUTODETECTION_METHOD指定主網卡(如interface=eth0)。
  • 部署插件
    kubectl apply -f calico.yaml
    
  • 驗證狀態
    kubectl get pods -n calico-system  # 所有Pod應為Running狀態
    

2. Flannel(輕量Overlay,適合開發測試)

Flannel通過Overlay網絡實現跨節點通信,配置簡單,資源消耗低,適合中小規模集群。

  • 下載并部署Flannel清單
    curl -O https://raw.githubusercontent.com/flannel-io/flannel/v0.22.0/Documentation/kube-flannel.yml
    
  • (可選)切換為Host-GW后端:若節點在同一局域網,將net-conf.json中的Backend.Typevxlan改為host-gw,提升網絡性能。
  • 部署插件
    kubectl apply -f kube-flannel.yml
    
  • 驗證狀態
    kubectl get pods -n kube-flannel  # 所有Pod應為Running狀態
    

四、驗證網絡連通性

安裝插件后,通過創建測試Pod驗證網絡是否正常:

  1. 創建Nginx測試Pod
    kubectl run nginx --image=nginx --port=80
    
  2. 獲取Pod IP
    POD_IP=$(kubectl get pod nginx -o jsonpath='{.status.podIP}')
    
  3. 從其他節點Pod訪問
    kubectl run test-pod --image=busybox --rm -it -- wget -qO- http://$POD_IP
    
    若能正常訪問Nginx頁面,說明網絡配置成功。

五、配置網絡策略(可選,增強安全性)

若需控制Pod間通信(如限制某命名空間Pod僅能訪問特定服務),可使用Calico的網絡策略功能。以下示例創建一個允許同一命名空間內Pod互相訪問的策略:

apiVersion: projectcalico.org/v3
kind: NetworkPolicy
metadata:
  name: allow-same-namespace
  namespace: default  # 應用到default命名空間
spec:
  selector: all()  # 匹配所有Pod
  ingress:
  - action: Allow
    source: {}  # 允許同一命名空間內的所有來源
  egress:
  - action: Allow
    destination: {}  # 允許訪問同一命名空間內的所有目標

應用策略:

kubectl apply -f network-policy.yaml

注意事項

  • Pod網段一致性:初始化集群時的--pod-network-cidr需與所選網絡插件的網段完全一致(如Calico的CALICO_IPV4POOL_CIDR),否則會導致網絡不通。
  • 節點加入集群:Worker節點需通過kubeadm join命令加入集群(命令在Master節點初始化時生成),加入后需等待節點狀態變為Ready。
  • 插件兼容性:確保網絡插件版本與Kubernetes集群版本兼容(如Calico 3.26支持Kubernetes 1.27+)。

通過以上步驟,即可在Ubuntu上完成Kubernetes網絡配置,實現Pod間的穩定通信。

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