当前位置:首页 > Debian > 正文

Debian Kubernetes集群部署(手把手教你从零搭建高可用K8s环境)

在当今云原生时代,Kubernetes(简称 K8s)已成为容器编排的事实标准。如果你正在使用 Debian 系统,并希望搭建自己的 Kubernetes 集群,那么本教程将为你提供一份详细、清晰、适合初学者的操作指南。无论你是运维新手还是开发人员,只要按照步骤操作,都能成功完成 Debian Kubernetes集群部署

一、准备工作

在开始之前,请确保你有以下资源:

  • 至少两台运行 Debian 11(Bullseye)或更高版本的服务器(一台 Master 节点,一台 Worker 节点)
  • 每台服务器至少 2GB 内存和 2 核 CPU
  • 稳定的网络连接和 root 权限
  • 所有节点之间可以通过主机名或 IP 互相通信
Debian Kubernetes集群部署(手把手教你从零搭建高可用K8s环境) Kubernetes集群部署  Kubernetes安装教程 Debian搭建K8s 容器编排系统 第1张

二、在所有节点上执行基础配置

1. 关闭交换分区(Swap)

Kubernetes 要求关闭 swap,否则 kubelet 无法启动:

sudo swapoff -a# 永久禁用:注释掉 /etc/fstab 中的 swap 行sudo sed -i '/ swap / s/^/#/' /etc/fstab

2. 配置主机名和 hosts

为每台机器设置唯一主机名(例如 master、worker01),并在所有节点的 /etc/hosts 中添加映射:

# 在 master 节点执行sudo hostnamectl set-hostname master# 在 worker 节点执行sudo hostnamectl set-hostname worker01# 所有节点编辑 /etc/hosts,添加如下内容(替换为你的实际 IP)192.168.1.10 master192.168.1.11 worker01

3. 安装 Docker 和 containerd

Kubernetes 推荐使用 containerd 作为容器运行时:

sudo apt updatesudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-releasecurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho \  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 配置 containerdsudo mkdir -p /etc/containerdcontainerd config default | sudo tee /etc/containerd/config.tomlsudo systemctl restart containerd

三、安装 Kubernetes 组件

在所有节点(Master 和 Worker)上执行以下操作:

1. 添加 Kubernetes APT 仓库

curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

2. 安装 kubelet、kubeadm 和 kubectl

sudo apt updatesudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectl

3. 加载内核模块(可选但推荐)

cat <

四、初始化 Master 节点

在 Master 节点上运行以下命令初始化集群:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

初始化成功后,你会看到类似如下的输出(请保存好 kubeadm join 命令,稍后用于加入 Worker 节点):

Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:  mkdir -p $HOME/.kube  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  sudo chown $(id -u):$(id -g) $HOME/.kube/configThen you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.1.10:6443 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

按照提示配置 kubectl:

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

五、安装 Pod 网络插件(Flannel)

Kubernetes 需要 CNI 网络插件来实现 Pod 间通信。这里我们使用 Flannel:

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

六、将 Worker 节点加入集群

在每个 Worker 节点上,以 root 身份运行前面保存的 kubeadm join 命令:

# 示例命令(请使用你自己的 token 和 hash)sudo kubeadm join 192.168.1.10:6443 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

七、验证集群状态

回到 Master 节点,运行以下命令检查节点状态:

kubectl get nodes

如果一切正常,你会看到类似输出:

NAME      STATUS   ROLES           AGE   VERSIONmaster    Ready    control-plane   10m   v1.28.0worker01  Ready    <none>          2m    v1.28.0

八、总结

恭喜!你已经成功完成了 Debian Kubernetes集群部署。现在你可以在这个集群上部署应用、学习服务发现、自动扩缩容等高级功能。本教程涵盖了从零开始搭建一个最小可行的 Kubernetes 集群所需的全部步骤,适合初学者快速上手。

记住,生产环境中还需考虑高可用(多 Master)、安全加固、监控日志等进阶主题。但对于学习和测试来说,这个单 Master 架构已经足够强大。

希望这篇关于 Kubernetes安装教程 的文章对你有所帮助。如果你在 Debian搭建K8s 的过程中遇到问题,欢迎查阅官方文档或社区论坛。容器编排系统的世界大门已经为你打开!