在Ubuntu上使用kubeadm搭建Kubernetes集群需要經過以下幾個步驟:
在所有節點(包括主節點和工作節點)上安裝Docker??梢詤⒖脊俜轿臋n來安裝:https://docs.docker.com/engine/install/ubuntu/
將Docker配置為使用systemd作為cgroup驅動。編輯/etc/docker/daemon.json
文件,添加以下內容:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
然后重啟Docker服務:
sudo systemctl restart docker
在所有節點上安裝kubeadm、kubelet和kubectl??梢詤⒖脊俜轿臋n來安裝:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
在主節點上運行以下命令來初始化Kubernetes集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
這里的--pod-network-cidr
參數指定了Pod網絡的IP地址范圍。你可以根據實際情況進行調整。
在主節點上,運行以下命令來配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在主節點上,運行以下命令來部署一個網絡插件(例如Flannel):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在每個工作節點上,運行kubeadm join
命令來加入集群。這個命令可以在主節點上通過kubeadm init
生成。例如:
kubeadm join<control-plane-ip>:<control-plane-port> --token<token> --discovery-token-ca-cert-hash sha256:<hash>
在主節點上,運行以下命令來查看集群狀態:
kubectl get nodes
如果一切正常,你應該能看到所有節點的狀態為Ready
。
現在你已經成功地在Ubuntu上使用kubeadm搭建了一個Kubernetes集群。接下來,你可以開始部署和管理應用程序了。