文档首页> IDC服务> 蓝易云:ubuntu使用kubeadm安装kubern

蓝易云:ubuntu使用kubeadm安装kubern

发布时间:2025-12-14 00:02       

蓝易云:在 Ubuntu 20.04 上用 kubeadm 安装 Kubernetes 实战指南 🚀

下面这套流程可以在一主多从的环境中复用,重点只讲必需步骤,所有命令都带解释,方便你直接落地。


一、前置条件与整体思路

建议规划:

  • 系统:所有节点统一使用 Ubuntu 20.04 x86_64
  • 角色:至少 1 个 Master(控制平面)+ 1 个 Worker(工作节点)
  • 资源:Master ≥ 2 vCPU / 2GB RAM,Worker ≥ 1 vCPU / 2GB RAM
  • 运行时:推荐使用 containerd 作为容器运行时(Medium)
  • 安装方式:使用 kubeadm + kubelet + kubectl 标准组合(Kubernetes)

整体步骤:

  1. 基础系统配置(所有节点)
  2. 安装并配置 containerd
  3. 配置 Kubernetes APT 源并安装 kubeadm/kubelet/kubectl
  4. Master 节点使用 kubeadm 初始化集群
  5. 安装 CNI 网络插件
  6. Worker 节点加入集群并验证

二、基础系统配置(所有节点)🔧

1. 更新系统包

sudo apt update && sudo apt upgrade -y
​

解释:

  • apt update:更新本地软件包索引,确保安装的是最新可用版本。
  • apt upgrade -y:批量升级已有软件,-y 表示自动确认。

2. 设置主机名与 hosts(建议)

以 Master 为例:

sudo hostnamectl set-hostname k8s-master
​

解释:

  • hostnamectl set-hostname:持久修改系统主机名,例如设置为 <span style="color:red">k8s-master</span>,方便后续识别节点角色。

可以在各节点的 /etc/hosts 中添加静态解析(示例):

sudo nano /etc/hosts
​

在文件末尾增加类似内容:

192.168.10.10   k8s-master
192.168.10.11   k8s-node1
192.168.10.12   k8s-node2
​

解释:

  • 让各节点通过主机名直接互通,方便运维和调试。

3. 禁用 swap(所有节点必须)⚠️

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/' /etc/fstab
​

解释:

  • swapoff -a:立即关闭所有 swap 分区或文件。Kubernetes 要求 不启用 swap,否则 kubelet 会报错(Medium)
  • 修改 /etc/fstab:把包含 swap 的那行注释掉,防止重启后自动启用。

4. 内核模块与网络转发配置(所有节点)

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter
​

解释:

  • 创建 /etc/modules-load.d/k8s.conf:让系统在启动时自动加载 overlay 和 br_netfilter 模块,这两个模块与容器和网桥转发密切相关(Medium)
  • modprobe:立即加载模块,无需重启。

继续配置内核参数:

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
​

解释:

  • bridge-nf-call-iptables / bridge-nf-call-ip6tables:让经过网桥的数据包也能被 iptables 规则处理,对 Pod 网络转发非常关键。
  • net.ipv4.ip_forward = 1:打开 IPv4 转发,否则节点无法正确转发 Pod/Service 流量。
  • sysctl --system:重新加载所有 sysctl 配置文件,使新参数立即生效。

三、安装并配置 containerd(所有节点)🐳

1. 安装 containerd

sudo apt install -y containerd
​

解释:

  • 直接使用 Ubuntu 官方仓库中的 containerd,方便维护和升级(Medium)
  • -y 自动确认安装。

2. 生成默认配置并启用 systemd cgroup

sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml >/dev/null
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl enable containerd
​

解释:

  • mkdir -p /etc/containerd:创建配置目录。
  • containerd config default:输出默认配置,重定向到 config.toml。
  • sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' ...:将 cgroup 驱动切换为 systemd,与 kubelet 默认配置保持一致,避免资源统计和调度异常(Medium)
  • systemctl restart/enable:重启并设置开机自启。

四、安装 kubeadm、kubelet 与 kubectl(所有节点)📦

1. 安装依赖工具

sudo apt install -y apt-transport-https ca-certificates curl gpg lsb-release
​

解释:

  • 用于添加新的 APT 仓库及其签名密钥,curl 和 gpg 是拉取并导入密钥的基础工具。(Gist)