在Debian上部署Kubernetes(K8S)集群是一个相对复杂但非常有用的过程,以下是一些关键步骤和技巧,可以帮助你顺利完成部署。
环境配置
- 关闭swap:
sudo swapoff -a sudo sed -i 's/.*swap.*/#&/' /etc/fstab
- 关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld
- 配置sysctl参数:
sudo sysctl -w vm.swappiness=0 sudo sysctl -w net.ipv4.ip_forward=1
为了使这些配置在重启后依然有效,可以将它们添加到/etc/sysctl.conf
文件中。 - 配置内核参数:
sudo modprobe br_netfilter
如果modprobe
命令未找到,可以编辑/etc/bash.bashrc
文件,添加以下行:export PATH=/usr/sbin:$PATH
然后运行source /etc/bash.bashrc
使配置生效。 - 修改主机名和hosts文件:
sudo hostnamectl set-hostname k8smaster sudo hostnamectl set-hostname k8snode1 sudo hostnamectl set-hostname k8snode2
编辑/etc/hosts
文件,添加以下行:192.168.124.134 k8smaster 192.168.124.135 k8snode1 192.168.124.141 k8snode2
安装Docker
- 添加镜像源:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [archamd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
- 安装Docker:
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
安装Kubernetes组件
- 添加Kubernetes镜像源:
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
- 安装Kubernetes组件:
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
初始化Kubernetes集群
- Master节点初始化:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --service-cidr=10.96.0.0/12
- 配置kubectl:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署网络插件
- 安装Calico网络插件:
kubectl apply -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
验证集群状态
- 查看节点状态:
kubectl get nodes
- 查看Pod状态:
kubectl get pods --all-namespaces
故障排查
- 查看集群事件:
kubectl get events
- 检查Pod状态:
kubectl get pods --all-namespaces -o wide
- 查看Pod日志:
kubectl logs
-n
通过以上步骤和技巧,你应该能够在Debian上成功部署Kubernetes集群。如果在部署过程中遇到问题,可以参考相关的日志和事件信息进行排查。