温馨提示×

Ubuntu上Kubernetes配置步骤是什么

小樊
44
2025-11-23 00:01:46
栏目: 智能运维

Ubuntu 上 Kubernetes 配置步骤

一 环境准备与前置条件

  • 准备至少 2 核 CPU、4GB 内存、20GB 磁盘64 位 Ubuntu 主机若干(1 台 Master,其余为 Worker)。
  • 所有节点设置 主机名/etc/hosts(便于解析):
    sudo hostnamectl set-hostname k8s-master
    echo “192.168.1.10 k8s-master” | sudo tee -a /etc/hosts
  • 关闭 Swap
    sudo swapoff -a && sudo sed -i ‘/ swap / s/^/#/’ /etc/fstab
  • 加载内核模块并开启桥接转发:
    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    sudo modprobe overlay && sudo modprobe br_netfilter
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward = 1
    EOF
    sudo sysctl --system
  • 时间同步(建议):
    sudo apt-get update && sudo apt-get install -y chrony
    sudo systemctl enable --now chrony
  • 防火墙(测试环境可简化):
    sudo ufw disable
    以上为各节点通用前置配置,完成后重启一次以确保生效。

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

  • 安装容器运行时(推荐 containerd,亦可选择 Docker):
    • containerd:
      sudo apt-get update && sudo apt-get install -y containerd
      sudo mkdir -p /etc/containerd
      containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
      sudo sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/g’ /etc/containerd/config.toml
      sudo systemctl restart containerd && sudo systemctl enable containerd
    • Docker(如选择):
      sudo apt-get update && sudo apt-get install -y docker.io
      sudo systemctl start docker && sudo systemctl enable docker
  • 添加 Kubernetes APT 源并安装组件(所有节点):
    sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl
    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
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    sudo systemctl enable --now kubelet
    上述步骤完成后,各节点已具备运行 Kubernetes 所需的基础组件与运行时。

三 初始化控制平面 Master 节点

  • 初始化集群(按需替换参数):
    sudo kubeadm init \ –apiserver-advertise-address=<MASTER_IP> \ –pod-network-cidr=10.244.0.0/16 \ –service-cidr=10.96.0.0/12 \ –image-repository=registry.aliyuncs.com/google_containers
    常见可选项:–kubernetes-version(指定版本)、–control-plane-endpoint(高可用 VIP/域名)。
  • 配置 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 为例,Pod 网段需与上面一致):
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 验证:
    kubectl get nodes
    如初始化异常或中断,先执行 kubeadm reset 清理后再重试。

四 加入 Worker 节点

  • 在 Master 上查看加入命令(token 有效期通常为 24 小时):
    kubeadm token create --print-join-command
    或查看现有 token:
    kubeadm token list
  • 在 Worker 节点执行输出的 kubeadm join 命令,例如:
    sudo kubeadm join <MASTER_IP>:6443 --token --discovery-token-ca-cert-hash sha256:
  • 回到 Master 验证:
    kubectl get nodes
    若 token 过期,可在 Master 重新创建后再加入。

五 常见问题与验证

  • 组件版本与一致性:建议在所有节点锁定相同的 kubelet/kubeadm/kubectl 版本(使用 apt-mark hold)。
  • cgroup 驱动一致:容器运行时与 kubelet 均使用 systemd(上文已配置)。
  • 镜像拉取失败:可使用国内镜像仓库(如 registry.aliyuncs.com/google_containers)。
  • 节点 NotReady:多因网络插件未就绪,检查 kube-flannel 是否 Running,Pod 网段是否匹配。
  • 重置与重装:执行 kubeadm reset 后,清理 /etc/cni/net.d 等残留再初始化。
  • 基础验证清单:
    kubectl version --client && kubectl version --short
    kubectl get nodes -o wide
    kubectl get pods -A
    以上检查可快速定位大多数部署初期问题。

0