温馨提示×

Ubuntu安装Kubernetes步骤是什么

小樊
37
2025-11-30 20:33:04
栏目: 智能运维

Ubuntu 安装 Kubernetes 步骤

一 环境准备

  • 准备至少 2 核 CPU、4GB 内存、20GB 磁盘64 位 Ubuntu 主机,建议使用 Ubuntu 20.04+。规划好 MasterWorker 节点,并固定 主机名/etc/hosts(便于解析)。示例:
    • sudo hostnamectl set-hostname k8s-master
    • echo “192.168.1.10 k8s-master” | sudo tee -a /etc/hosts
  • 安装基础工具:sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

二 安装容器运行时

  • 推荐容器运行时为 containerd(与 kubelet 的 systemd cgroup 驱动配合更稳定)。
  • 安装与配置 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
    • 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 install -y docker.io;如使用 cri-o 等,请按对应文档启用 CRI 兼容。

三 安装 kubeadm kubelet kubectl

  • 添加 Kubernetes APT 源并安装组件(示例使用签名密钥环方式):
    • 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
  • 可选:设置 crictl(调试容器运行时常用):
    • VERSION=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
    • curl -LO “https://storage.googleapis.com/kubernetes-release/release/$VERSION/bin/linux/amd64/crictl”
    • chmod +x crictl && sudo mv crictl /usr/local/bin

四 初始化控制平面 Master

  • 内核与网络前置(所有节点):
    • 关闭 Swap:sudo swapoff -a;sudo sed -i ‘/ swap / s/^/#/’ /etc/fstab
    • 加载模块:echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/k8s.conf && 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
  • 初始化命令(在 Master 节点执行,按需替换参数):
    • 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
  • 初始化完成后按提示配置 kubectl:
    • mkdir -p $HOME/.kube
    • sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    • chown $(id -u):$(id -g) $HOME/.kube/config
  • 如初始化异常或中断,先执行 kubeadm reset 再重试。

五 安装网络插件与加入节点

  • 安装网络插件(Pod 间通信必需,二选一或按需求选择):
    • Flannel:kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
    • Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 加入 Worker 节点(在 Master 初始化输出中找到完整命令,形如):
    • kubeadm join <MASTER_IP>:6443 --token --discovery-token-ca-cert-hash sha256:
  • 验证:
    • kubectl get nodes
    • kubectl get pods -A
  • 备注:若使用 containerd,无需额外安装 Docker;若使用 Docker,需确保与 kubelet 的 cgroup 驱动一致(常见为 systemd)。

0