温馨提示×

Kubernetes如何在Debian上稳定运行

小樊
77
2025-05-20 14:20:06
栏目: 智能运维

在Debian上稳定运行Kubernetes涉及多个步骤,包括系统准备、安装必要的软件包、配置网络、初始化主节点以及添加工作节点等。以下是一个详细的步骤指南:

准备工作

  1. 硬件要求
  • 至少2个CPU/vCPU
  • 至少2GB RAM
  • 至少20GB可用硬盘空间
  • 具有管理权限的sudo用户
  • 稳定的互联网连接
  1. 系统设置
  • 在每个节点上设置主机名及更新 /etc/hosts 文件。
  • 关闭所有节点的swap分区。
  • 为Kubernetes集群添加防火墙规则。

安装步骤

  1. 更新系统
sudo apt update
sudo apt upgrade -y
  1. 安装Docker

Kubernetes依赖Docker作为容器运行时,因此需要先安装Docker。

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
  1. 禁用Swap

为了确保Kubernetes集群的稳定运行,建议禁用Swap分区。

sudo swapoff -as
sudo sed -i '/ swap / s/1/g' /etc/fstab
  1. 添加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
  1. 安装Kubernetes工具
sudo apt install kubelet kubeadm kubectl -y
sudo apt-mark hold kubelet kubeadm kubectl
  1. 初始化Kubernetes集群

在主节点上使用 kubeadm 初始化集群。

sudo kubeadm init --apiserver-advertise-address <master-node-ip> --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.0 --control-plane-endpoint <master-node-ip>:6443 --service-cidr 10.100.0.0/16 --token-ttl 0 --pod-network-cidr 10.244.0.0/16
  1. 配置kubectl

kubectl 配置文件复制到当前用户的主目录下。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 加入工作节点

在工作节点上执行初始化完成后提供的命令,将工作节点加入集群。

sudo kubeadm join <master-node-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

验证安装

在主节点上运行以下命令以检查集群组件的状态。

kubectl cluster-info
kubectl get nodes

配置网络插件

Kubernetes集群需要一个网络插件来管理Pod之间的通信。这里以Flannel为例:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

注意事项

  • 确保所有节点的防火墙允许必要的端口通信,如Kubernetes API服务器的端口(6443)和kubelet的端口(10250系列)。
  • 如果你在生产环境中部署,请考虑使用更稳定的长期支持(LTS)版本的Debian。
  • 对于生产环境,建议使用更详细的配置和最佳实践,例如使用etcd作为集群的存储后端,配置网络策略等。

以上步骤涵盖了在Debian系统中配置Kubernetes集群的基本流程。请根据实际需求和环境调整细节。

0