在Debian上进行Kubernetes(K8s)的自动化部署可以通过多种工具和方法实现。以下是一个基本的步骤指南,使用kubeadm工具进行自动化部署:
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [archamd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
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
在主节点上初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
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
在每个工作节点上使用初始化时生成的命令将它们加入到集群中:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
KubeKey是一个简化的Kubernetes集群安装工具,支持一键式安装。
curl -sfl https://get-kk.kubesphere.io | sh -
./kk create cluster --with-local-storage --with-kubernetes v1.31.0 --container-manager containerd -y
Ansible是一个强大的自动化工具,可以用来部署和管理Kubernetes集群。
准备Ansible环境: 安装Ansible并配置相关仓库。
创建Ansible playbook: 创建Ansible playbook来定义Kubernetes集群的部署步骤。
执行部署: 运行Ansible playbook,Ansible会自动执行定义的部署任务。
使用以下命令来验证集群是否成功安装:
kubectl get nodes
kubectl cluster-info