首页主机资讯Kubernetes集群Ubuntu节点如何配置

Kubernetes集群Ubuntu节点如何配置

时间2025-11-27 15:09:04发布访客分类主机资讯浏览1381
导读:Ubuntu 节点加入与管理 Kubernetes 集群实操指南 一 环境准备与系统要求 操作系统建议:Ubuntu 20.04/22.04 LTS(内核 ≥ 4.15),节点间网络互通,最好使用静态 IP或稳定的内网 DNS。 资源建议...

Ubuntu 节点加入与管理 Kubernetes 集群实操指南

一 环境准备与系统要求

  • 操作系统建议:Ubuntu 20.04/22.04 LTS(内核 ≥ 4.15),节点间网络互通,最好使用静态 IP或稳定的内网 DNS。
  • 资源建议:控制平面至少 2 核 CPU / 4GB 内存;工作节点至少 2 核 CPU / 2GB 内存
  • 主机名与解析:为每个节点设置唯一 hostname(如 master、node1、node2),并在所有节点配置 /etc/hosts 做主机名解析,便于组件通信与排障。
  • 基础工具:安装 apt-transport-https、ca-certificates、curl、software-properties-common,用于添加软件源与证书校验。

二 所有节点通用配置

  • 关闭 Swap(Kubernetes 要求):
    • 临时关闭:sudo swapoff -a
    • 永久关闭:注释 /etc/fstab 中的 swap 挂载行
  • 加载内核模块与网络转发:
    • 模块:overlaybr_netfilter
    • 转发与桥接:
      • net.bridge.bridge-nf-call-iptables = 1
      • net.bridge.bridge-nf-call-ip6tables = 1
      • net.ipv4.ip_forward = 1
    • 使配置生效:sudo sysctl --system
  • 防火墙与安全组:测试环境可临时关闭 ufw;生产环境按需放行端口(如 6443、10250、10251、10252、30000–32767 等,具体取决于你的网络插件与控制平面组件)。
  • 容器运行时(二选一,推荐 Containerd):
    • Containerd(更通用,适配新版 K8s):
      • 安装:sudo apt-get update & & sudo apt-get install -y containerd.io
      • 生成默认配置并启用 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 enable --now containerd
    • Docker(如必须使用):
      • 安装:sudo apt-get update & & sudo apt-get install -y docker.io
      • 配置 cgroup 驱动为 systemd(编辑 /etc/docker/daemon.json):
        • { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } , "storage-driver": "overlay2" }
      • sudo systemctl enable --now docker
  • 安装 Kubernetes 组件(kubeadm、kubelet、kubectl):
    • 添加 GPG 与源(示例为 xenial 仓库,适用于多版本 Ubuntu):
      • curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
      • 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
    • 安装指定版本(示例:1.28.2-00):sudo apt-get update & & sudo apt-get install -y kubelet=1.28.2-00 kubeadm=1.28.2-00 kubectl=1.28.2-00
    • 锁定版本:sudo apt-mark hold kubelet kubeadm kubectl
    • 启动 kubelet:sudo systemctl enable --now kubelet

三 控制平面节点初始化

  • 初始化命令(按需替换参数):
    • 使用 Containerd(推荐):sudo kubeadm init --pod-network-cidr=**10.244.0.0/16**
    • 使用 Dockersudo kubeadm init --pod-network-cidr=**10.244.0.0/16** --cri-socket=**unix:///var/run/dockershim.sock**
  • 配置 kubectl(仅在 master 执行):
    • 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
    • Calico:kubectl apply -f https://docs.projectcalico.org/v3.21/manifests/calico.yaml
  • 验证:kubectl get nodes 应看到 master 状态为 Ready

四 工作节点加入集群

  • 获取加入命令:在 master 上执行 kubeadm token create --print-join-command,输出形如:
    • kubeadm join < control-plane-host> :< port> --token < token> --discovery-token-ca-cert-hash sha256:< hash>
  • 在目标 worker 节点执行上述命令,完成后回到 master 执行 kubectl get nodes 检查状态。
  • 若 token 过期或丢失,可在 master 重新生成;网络插件未就绪时,节点会处于 NotReady,等待网络插件 Pod 就绪即可。

五 常见问题与验证

  • 节点 NotReady:优先检查 kubelet 是否运行(sudo systemctl status kubelet)、容器运行时是否健康、以及 CNI 网络插件 的 Pod 是否全部 Running。
  • 镜像拉取慢或失败:可配置国内镜像源或使用 kubeadm config images pull 预先拉取所需镜像(版本需与控制平面一致)。
  • 端口与防火墙:确保 6443(API Server)、10250(kubelet)、以及 kube-proxy 与网络插件所需端口开放;云上需配置安全组规则。
  • 版本一致性:控制平面与节点上的 kubelet/kubeadm/kubectl 版本尽量保持一致,避免因版本差异导致异常。
  • 验证清单:
    • kubectl get nodes:所有节点 Ready
    • kubectl get pods -A:核心组件(如 coredns、kube-proxy)与网络插件 Running
    • kubectl describe node < node-name> :查看 ConditionsAllocatable/Allocated 资源信息,排查资源与污点问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Kubernetes集群Ubuntu节点如何配置
本文地址: https://pptw.com/jishu/757931.html
Ubuntu MariaDB权限管理详解 Ubuntu MariaDB内存配置建议

游客 回复需填写必要信息