温馨提示×

Debian机器怎么安装Kubernetes

小樊
43
2025-12-13 03:22:24
栏目: 智能运维

在 Debian 上使用 kubeadm 安装 Kubernetes 单主集群

一 前置准备

  • 至少准备两台机器(建议 Debian 11/12),一台作为 Master,其余为 Worker;推荐配置:2 核 CPU、2 GB 内存、20 GB 磁盘
  • 各节点需满足:
    • 关闭 Swap:执行 sudo swapoff -a,并在 /etc/fstab 中注释 swap 行。
    • 设置唯一 主机名,并确保节点间 网络互通时间同步
    • 放行必要端口(或临时关闭防火墙):
      • Master:6443、2379-2380、10250、10251、10252
      • Worker:10250、30000-32767
  • 建议内核开启桥接与转发(见下文“系统配置”)。

二 所有节点安装与系统配置

  • 更新系统与基础工具:
    • sudo apt-get update && sudo apt-get upgrade -y
    • sudo apt-get install -y apt-transport-https ca-certificates curl
  • 安装容器运行时(二选一,推荐 containerd):
    • containerd(更贴近 k8s 官方栈):
      • sudo apt-get install -y containerd
      • 生成默认配置并启用:sudo mkdir -p /etc/containerd && containerd config default | sudo tee /etc/containerd/config.toml
      • sudo systemctl enable --now containerd
    • Docker(亦可工作):
      • sudo apt-get install -y docker.io
      • sudo systemctl enable --now docker
  • 内核与网络参数(kube-proxy/ipvs、CNI 依赖):
    • echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf
    • sudo modprobe overlay && sudo modprobe br_netfilter
    • echo -e "net.bridge.bridge-nf-call-iptables = 1\nnet.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-kubernetes.conf
    • sudo sysctl --system
  • 安装 kubeadm、kubelet、kubectl:
    • 添加仓库并安装:
      • 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-get update && sudo apt-get install -y kubelet kubeadm kubectl
      • sudo apt-mark hold kubelet kubeadm kubectl
    • 启动 kubelet:sudo systemctl enable --now kubelet
      以上步骤覆盖系统更新、容器运行时安装、内核网络参数与 k8s 组件安装,适用于 Debian 环境的 kubeadm 部署。

三 初始化 Master 节点

  • 初始化命令(按需替换参数):
    • 使用 Flannel:sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    • 使用 Calico:sudo kubeadm init --pod-network-cidr=192.168.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
  • 安装 CNI 网络插件(二选一):
    • Flannel:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    • Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 验证:kubectl get nodes 应看到 Master 状态为 Ready

四 加入 Worker 节点

  • 在 Master 上生成加入命令(若 token 过期):
    • kubeadm token create --print-join-command
  • 在 Worker 上执行输出的 kubeadm join ... 命令,完成后回到 Master:
    • kubectl get nodes 应看到 Worker 加入并变为 Ready

五 常见问题与常用命令

  • 重置与清理(重装时使用):
    • sudo kubeadm reset
    • sudo rm -rf /etc/cni/net.d
    • sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X
  • 镜像拉取慢(国内环境可选):
    • 使用国内镜像仓库(如 registry.aliyuncs.com/google_containers)或在 kubeadm 初始化时指定 --image-repository 参数。
  • 常用检查:
    • kubectl cluster-infokubectl get nodeskubectl get pods --all-namespaces
      以上为常见排障与运维命令,便于快速恢复与验证集群状态。

0