在Debian上安裝Kubernetes(K8s)環境可以分為幾個主要步驟,包括系統準備、安裝依賴、配置網絡、安裝Kubernetes組件、初始化集群、加入工作節點以及驗證安裝。以下是一個詳細的指南:
更新系統:
sudo apt update && sudo apt upgrade -y
安裝Docker: Kubernetes依賴于Docker作為容器運行時,因此需要先安裝Docker。
sudo apt install -y docker.io
sudo systemctl enable --now docker
關閉Swap分區: 為了確保Kubernetes集群的穩定運行,建議關閉所有節點的Swap分區。
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
設置主機名和hosts文件:
在每個節點上設置主機名,并在/etc/hosts
文件中添加節點IP和主機名的映射。
sudo hostnamectl set-hostname "k8s-master01"
echo "192.168.16.20 k8s-master01.test.local k8s-master01" | sudo tee -a /etc/hosts
配置防火墻: 允許必要的端口通過防火墻。
sudo ufw allow 6443/tcp
sudo ufw allow 2379/tcp
sudo ufw allow 2380/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 10251/tcp
sudo ufw allow 10252/tcp
sudo ufw allow 10255/tcp
sudo ufw reload
添加Kubernetes APT倉庫:
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
安裝kubeadm、kubelet和kubectl:
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
初始化主節點: 在主節點上初始化Kubernetes集群。
sudo kubeadm init --apiserver-advertise-address=192.168.16.20 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.0 --control-plane-endpoint 192.168.16.20 --service-cidr=10.100.0.0/16 --token-ttl 0 --pod-network-cidr=10.244.0.0/16
配置kubectl: 配置kubectl以連接到Kubernetes集群。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在工作節點上運行初始化命令,加入集群。
sudo kubeadm join 192.168.16.20:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
kubectl apply -f calico.yaml
驗證Kubernetes集群是否正常運行。
kubectl get nodes
kubectl get pods -n kube-system
通過以上步驟,你可以在Debian系統上成功安裝并配置一個基本的Kubernetes集群。請根據實際需求和環境調整配置。