Kubernetes在Debian上的安装步骤
master、worker1),并在/etc/hosts文件中添加节点IP与主机名的映射(避免DNS解析问题)。sudo swapoff -a # 临时关闭
sudo sed -i '/ swap / s/1/g' /etc/fstab # 永久禁用(注释掉swap行)
Kubernetes依赖容器运行时,推荐使用Docker(社区常用):
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker # 设置开机自启
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
kubernetes-xenial仓库,兼容Debian 12):echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
安装kubelet(节点代理)、kubeadm(集群初始化工具)、kubectl(命令行工具),并锁定版本(避免意外升级):
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 锁定版本
在Master节点上执行初始化命令,指定Pod网络CIDR(用于Flannel插件,需与后续网络插件配置一致):
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,会输出加入Worker节点的命令(包含Token和CA证书哈希),需保存备用(格式:sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>)。
将Master节点的Kubernetes配置文件复制到当前用户目录,用于本地管理集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Kubernetes需要网络插件实现Pod间通信,推荐使用Flannel(轻量易用):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
等待插件部署完成(可通过kubectl get pods -n kube-system查看插件Pod状态,需全部为Running)。
在每台Worker节点上,使用Master节点初始化时输出的加入命令执行:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
加入成功后,Worker节点会自动注册到集群中。
kubectl cluster-info
Ready,Worker节点需陆续变为Ready):kubectl get nodes
kubectl create deployment nginx-app --image=nginx --replicas=2
kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80
kubectl get pods # 查看Pod状态
若Pod状态为Running,则说明集群安装成功。sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/)后重新执行初始化命令。