温馨提示×

Debian上怎样快速安装Kubernetes

小樊
45
2025-12-13 03:25:21
栏目: 智能运维

在 Debian 上使用 kubeadm 快速搭建单主集群

一 环境准备

  • 至少准备两台机器(单主 + 工作节点),推荐配置:2 核 CPU、2GB+ RAM、20GB+ 磁盘,并确保节点间网络互通。
  • 建议系统为 Debian 12,所有节点可访问互联网。
  • 主机名唯一,时间同步(如使用 chronysystemd-timesyncd)。
  • 关闭交换分区:
    • 临时:sudo swapoff -a
    • 永久:编辑 /etc/fstab,注释含 swap 的行。

二 安装容器运行时 containerd

  • 安装 containerd:
    • sudo apt update && sudo apt install -y containerd
    • sudo systemctl enable --now containerd
  • 启用内核模块与网络转发:
    • sudo tee /etc/modules-load.d/containerd.conf <<EOF
      overlay
      br_netfilter
      EOF
    • sudo modprobe overlay && sudo modprobe br_netfilter
    • sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf <<EOF
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      EOF
    • sudo sysctl --system
  • 生成默认配置并启用 SystemdCgroup:
    • sudo mkdir -p /etc/containerd
    • containerd config default | sudo tee /etc/containerd/config.toml
    • 在配置中确保:[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true
    • sudo systemctl restart containerd

三 安装 kubeadm kubelet kubectl

  • 添加 Kubernetes APT 源并安装组件:
    • sudo apt update && sudo apt install -y apt-transport-https curl ca-certificates
    • curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/kubernetes-archive-keyring.gpg >/dev/null
    • echo "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
    • sudo apt update
    • 安装指定版本(示例:v1.26.0):sudo apt install -y kubelet=1.26.0-00 kubeadm=1.26.0-00 kubectl=1.26.0-00
    • 锁定版本:sudo apt-mark hold kubelet kubeadm kubectl
    • 启动 kubelet:sudo systemctl enable --now kubelet

四 初始化控制平面与网络

  • 在主节点初始化(Pod 网段与所选网络插件保持一致,示例使用 Flannel:10.244.0.0/16):
    • sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • 配置 kubectl:
    • 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 init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16

五 加入工作节点与验证

  • 加入工作节点(使用 kubeadm init 输出中的完整命令):
    • sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
  • 在主节点验证:
    • kubectl cluster-info
    • kubectl get nodes
    • kubectl get pods --all-namespaces
  • 常见问题排查要点:
    • 确保 6443/10250/10251/10252 等端口放通(或临时关闭防火墙测试)。
    • 确认已关闭 swap、内核参数生效、时间同步正常。
    • 若 token 过期,可在主节点执行 kubeadm token create --print-join-command 重新生成加入命令。

0