温馨提示×

Ubuntu系统如何集成Kubernetes工具

小樊
41
2026-01-03 06:15:52
栏目: 智能运维

Ubuntu 集成 Kubernetes 工具的标准流程

一 环境准备

  • 系统建议:使用 Ubuntu 20.04/22.04 LTS,至少 2 核 CPU、4 GB 内存、20 GB 磁盘(生产建议更高规格)。
  • 基础配置(所有节点执行):
    • 更新系统并安装常用工具:sudo apt update && sudo apt upgrade -y && sudo apt install -y curl apt-transport-https ca-certificates gnupg2 software-properties-common
    • 关闭 Swap:sudo swapoff -a,并在 /etc/fstab 中注释 swap 行,避免重启后恢复。
    • 主机名与解析:设置唯一 hostname,并在 /etc/hosts 中完成节点 IP-主机名 映射。
    • 防火墙与安全组:开放 6443(API Server)10250(kubelet)10251/10252(kube-scheduler/controller-manager)、以及 8472(Flannel VXLAN) 等端口;如用 firewalld/ufw,请按需放行。
    • 时间同步:安装并启动 chronysystemd-timesyncd,保证节点间时间一致。
    • 内核参数(可选但推荐):启用桥接流量与 ipv4 转发,例如:sudo sysctl -p 加载 /etc/sysctl.d/k8s.conf,内容含 net.bridge.bridge-nf-call-iptables=1net.ipv4.ip_forward=1

二 安装容器运行时与 Kubernetes 组件

  • 容器运行时选型:
    • 使用 Docker(Kubernetes ≥ v1.24 需配合 cri-dockerd 垫片,因为内置的 dockershim 已被移除)。
    • 或直接使用 containerd(更简洁,官方推荐路线)。
  • 安装 Docker(示例):
    • 添加仓库与密钥,安装 docker-ce/docker-ce-cli/containerd.io,启动并设置开机自启:sudo systemctl start docker && sudo systemctl enable docker
  • 安装 cri-dockerd(仅在使用 Docker 时):
    • Mirantis/cri-dockerd 发布页下载对应系统版本,安装后将服务设置为开机自启,并确保 cri-dockerd.service 处于 Running
  • 安装 kubeadm、kubelet、kubectl(所有节点):
    • 添加 Kubernetes APT 源(可用国内镜像源),执行:sudo apt update && sudo apt install -y kubelet kubeadm kubectl
    • 建议执行:sudo apt-mark hold kubelet kubeadm kubectl,避免被系统自动升级导致版本不一致。
  • 配置要点:
    • 若使用 Docker,确保其 cgroup driver 与 kubelet 一致(推荐 systemd);kubelet 未显式设置时,自 v1.22 起默认即为 systemd

三 初始化控制平面与网络插件

  • 初始化控制平面(Master):
    • 选择 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
  • 部署网络插件(二选一,按 Pod 网段匹配):
    • 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 应显示 Readykubectl get pods -A 查看系统组件与网络插件 Pod 状态。

四 加入工作节点与常用运维

  • 加入工作节点:
    • 在 Master 上生成加入命令:kubeadm token create --print-join-command
    • 在 Worker 上执行输出的 kubeadm join ... 命令完成入群。
  • 常用运维:
    • 重置节点(异常或重建时使用):sudo kubeadm reset
    • 版本与组件一致性:保持 kubelet/kubeadm/kubectl 版本一致,避免跨小版本引发兼容性问题。
    • 镜像加速与私有仓库:为 Docker/containerd 配置镜像仓库加速,便于拉取 kube-apiserver、kube-controller-manager、kube-scheduler、pause、coredns、calico/flannel 等镜像。

五 本地开发与替代方案

  • 本地单节点体验:
    • 使用 Minikubesudo snap install minikube --classic,适合开发/测试与学习。
    • 使用 kind(Kubernetes in Docker):在容器中运行 K8s 集群,轻量快捷。
  • IDE 与工具链:
    • 安装 Visual Studio Code 并配合 Kubernetes 扩展kubectl 插件,获得资源可视化与快捷命令支持。

0