在CentOS上部署Kubernetes(k8s)時,配置網絡是一個關鍵步驟。以下是配置網絡的詳細步驟:
確保系統更新:
sudo yum update -y
安裝必要的軟件包:
sudo yum install -y kubeadm kubelet kubectl docker
啟動并啟用Docker服務:
sudo systemctl start docker
sudo systemctl enable docker
配置Docker以使用overlay2
網絡驅動:
編輯/etc/docker/daemon.json
文件,添加以下內容:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
然后重啟Docker服務:
sudo systemctl restart docker
初始化主節點:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
這個CIDR塊用于Pod網絡,確保它不與你的其他網絡沖突。
設置kubectl上下文:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安裝網絡插件:
推薦使用Calico
作為網絡插件,因為它性能優越且易于配置。
kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml
kubectl run nginx --image=nginx --port=80 --dry-run=client -o yaml | kubectl apply -f -
kubectl get pods
然后嘗試訪問Pod的IP地址或通過NodePort訪問Nginx服務。獲取加入令牌: 在主節點上運行以下命令獲取加入令牌:
kubeadm token create --print-join-command
在工作節點上執行加入命令: 將上述命令的輸出復制到工作節點上并執行,例如:
sudo kubeadm join <MASTER_NODE_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH>
檢查所有節點的狀態:
kubectl get nodes
檢查Pod的狀態:
kubectl get pods --all-namespaces
如果你需要更細粒度的網絡控制,可以配置Calico的網絡策略。
通過以上步驟,你應該能夠在CentOS上成功部署并配置Kubernetes集群的網絡。如果有任何問題,請參考Kubernetes和Calico的官方文檔進行排查。