3. 环境准备:安装 kind、kubectl、clusterctl 工具,配置 Docker 环境
本章是 CAPI 课程的基础环境搭建环节。在开始管理集群生命周期之前,需要在本机构建一套轻量、可复现的“控制平面”环境。我们将依次安装 Docker(容器运行时)、kind(本地 K8s 集群)、kubectl(集群交互 CLI)以及 clusterctl(CAPI 管理 CLI),并验证各工具的连通性。
环境要求:建议使用 Linux(Ubuntu 22.04+)或 macOS(Intel/Apple Silicon),内存 ≥ 8 GB,磁盘 ≥ 20 GB 空闲空间。Windows 用户推荐通过 WSL2 执行本流程。
3.1 工具链概览与版本兼容性
下表列出核心工具及其在 CAPI 工作流中的角色。版本号以课程编写时的稳定版本为例,实际安装时请参考官方最新 release。
| 工具 | 版本示例 | 核心作用 | 安装方式 |
|---|---|---|---|
| Docker Engine | 24.0+ | 容器运行时,为 kind 提供节点镜像运行基础 | 官方脚本 / 包管理器 |
| kind | v0.20+ | 在 Docker 容器中创建本地 K8s 集群(控制面 + worker) | 二进制下载 / go install |
| kubectl | v1.28+ | 与 K8s API Server 交互,管理集群资源 | 二进制下载 / 包管理器 |
| clusterctl | v1.6+ | CAPI 命令行工具:初始化管理集群、部署 provider、生成集群模板 | 二进制下载 |
版本对齐原则:kubectl 的次版本号应与目标 K8s 集群的次版本号相差 ≤ 1。clusterctl 会自动检测兼容的 CAPI provider 版本,无需手动匹配。
3.2 安装 Docker 并配置用户权限
Docker 是 kind 运行的基础。以下步骤适用于 Ubuntu/Debian 系,其他发行版请参考 Docker 官方文档。
# 1. 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2. 安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 3. 添加 Docker 官方 GPG 密钥和仓库
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 安装 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 5. 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER
newgrp docker # 或重新登录终端
# 6. 验证安装
docker --version
docker run hello-world
常见问题:如果执行
docker run 时出现 permission denied,说明用户未正确加入 docker 组,请执行 sudo usermod -aG docker $USER 并重新登录。Apple Silicon Mac 用户需安装 Docker Desktop for Mac,并确保启用 “Use Rosetta for x86/amd64 emulation”。
3.3 安装 kind(Kubernetes IN Docker)
kind 将 K8s 控制面和 worker 节点以容器方式运行,是 CAPI 实验环境的首选。安装方式推荐直接下载二进制。
# 下载 kind 二进制(Linux / macOS amd64)
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
# 赋予执行权限并移动到 PATH
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# 验证安装
kind version
# (可选)macOS Apple Silicon 用户请使用 arm64 版本
# curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-darwin-arm64
3.4 安装 kubectl
kubectl 是操作 K8s 集群的 CLI 工具。建议安装与目标集群版本匹配的版本,本课程使用 v1.28。
# 下载 kubectl 二进制
curl -LO "https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl"
# 验证校验和(可选)
curl -LO "https://dl.k8s.io/v1.28.0/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
# 赋予执行权限并移动到 PATH
chmod +x kubectl
sudo mv kubectl /usr/local/bin/kubectl
# 验证安装
kubectl version --client
3.5 安装 clusterctl(CAPI 管理工具)
clusterctl 是 CAPI 生态的“瑞士军刀”,负责管理集群模板、provider 安装和集群生命周期操作。
# 下载 clusterctl 二进制
curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0/clusterctl-linux-amd64 -o clusterctl
# 赋予执行权限并移动到 PATH
chmod +x clusterctl
sudo mv clusterctl /usr/local/bin/clusterctl
# 验证安装
clusterctl version
网络加速:如果下载 GitHub release 较慢,可使用代理或镜像站。例如:
export https_proxy=http://127.0.0.1:7890(根据本地代理地址调整)。
3.6 验证环境:创建第一个 kind 集群
完成工具安装后,通过创建一个单节点 kind 集群来验证所有组件的连通性。这也是后续 CAPI 管理集群的雏形。
# 创建 kind 集群(默认名称为 kind)
kind create cluster --name capi-mgmt
# 等待集群就绪(约 1-2 分钟)
kubectl cluster-info --context kind-capi-mgmt
# 查看节点状态
kubectl get nodes
# 查看系统 Pod 状态
kubectl get pods -n kube-system
如果 kubectl cluster-info 返回 API Server 地址且 kubectl get nodes 显示 Ready 状态,则环境搭建成功。
3.7 环境检查清单
使用以下命令快速验证所有工具是否就绪:
# 检查 Docker
docker info | grep "Server Version"
# 检查 kind
kind version
# 检查 kubectl
kubectl version --client --short
# 检查 clusterctl
clusterctl version
# 检查集群连通性
kubectl get nodes -o wide
如果所有命令均返回正常版本号且集群节点为 Ready,则环境准备完成。后续章节将基于此环境部署 CAPI provider 并创建 workload 集群。
课后练习:尝试使用
kind delete cluster --name capi-mgmt 删除集群,然后重新创建,熟悉 kind 的快速销毁与重建能力。这是 CAPI 生命周期管理的基础操作模式。