蓝易云: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)
整体步骤:
- 基础系统配置(所有节点)
- 安装并配置 containerd
- 配置 Kubernetes APT 源并安装 kubeadm/kubelet/kubectl
- Master 节点使用 kubeadm 初始化集群
- 安装 CNI 网络插件
- 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)