在Ubuntu上安裝和配置Kubernetes(K8s)集群涉及多個步驟,以下是一個詳細的指南:
Kubernetes需要一個容器運行時,Docker是最常用的選擇。
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
編輯Docker配置文件以使用systemd作為cgroup管理器:
sudo mkdir /etc/docker
sudo nano /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
添加Kubernetes的APT源:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
在主節點上執行以下命令以初始化Kubernetes集群:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
初始化完成后,記錄下kubeadm join命令:
kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
在主節點上配置kubectl以便于管理Kubernetes集群:
mkdir -p $HOME/.kubes
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
在每個工作節點上,使用在初始化時記錄的kubeadm join命令加入集群:
sudo kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash <hash>
在主節點上,運行以下命令以驗證集群狀態:
kubectl get nodes
你應該能看到主節點和所有工作節點的狀態為Ready。
以上步驟涵蓋了在Ubuntu上安裝和配置Kubernetes集群的基本流程。根據具體需求,可能還需要進行進一步的配置和優化。