2. 环境准备:Kubernetes 集群搭建(Minikube/Kind)、kubectl 与 Helm 工具安装
在开始集成 Kyverno 策略之前,必须搭建一个可用的 Kubernetes 环境。本章将指导你完成本地开发集群的搭建,并安装必要的命令行工具 kubectl 与 helm。我们将提供两种轻量级集群方案:Minikube 与 Kind,你可以根据操作系统与资源情况选择其一。
2.1 集群方案对比
| 特性 | Minikube | Kind (Kubernetes in Docker) |
|---|---|---|
| 底层依赖 | 虚拟机驱动(Docker/Hyper-V/VirtualBox) | Docker 容器 |
| 启动速度 | 中等(需下载 ISO 与组件) | 快(直接拉取镜像) |
| 多节点支持 | 支持(需指定参数) | 原生支持(通过配置文件) |
| 资源占用 | 较高(运行完整 VM) | 较低(共享 Docker 守护进程) |
| 适用场景 | 本地开发、功能验证 | CI/CD 流水线、快速测试 |
推荐选择:若你使用 Linux 或 macOS,且希望获得最接近生产环境的隔离性,选择 Minikube。若你追求启动速度与 CI 友好性,选择 Kind。本课程后续操作兼容两种集群。
2.2 安装 kubectl
kubectl 是 Kubernetes 的命令行客户端,所有集群操作都通过它完成。请根据操作系统执行以下安装步骤:
- Linux (amd64)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ - macOS (Intel/Apple Silicon)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ - Windows(使用 PowerShell 管理员模式)
curl.exe -LO "https://dl.k8s.io/release/v1.28.0/bin/windows/amd64/kubectl.exe" # 将 kubectl.exe 添加到 PATH 环境变量
安装完成后,验证版本:
kubectl version --client
2.3 安装 Minikube
Minikube 需要先安装 Docker 或 Hyper-V 作为驱动。以下以 Docker 驱动为例:
- 安装 Minikube 二进制文件
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube - 启动集群(分配 2 核 CPU、4GB 内存)
minikube start --cpus=2 --memory=4096 --driver=docker - 验证集群状态
kubectl get nodes minikube status
2.4 安装 Kind
Kind 完全运行在 Docker 容器中,安装更轻量:
- 安装 Kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind - 创建集群配置文件
kind-config.yamlkind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane - role: worker - role: worker - 启动多节点集群
kind create cluster --config kind-config.yaml --name kyverno-demo - 验证集群
kubectl cluster-info --context kind-kyverno-demo kubectl get nodes
2.5 安装 Helm
Helm 是 Kubernetes 的包管理器,后续将通过 Helm Chart 安装 Kyverno。安装步骤:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
验证安装:
helm version
关键检查点:执行
helm repo add kyverno https://kyverno.github.io/kyverno/ 确认 Helm 能正常访问外部仓库。若网络受限,请提前配置代理或使用离线 Chart 包。
2.6 环境准备总览
下图展示了本地开发环境的完整组件关系:
2.7 验证环境就绪
完成上述安装后,执行以下命令确认所有组件正常工作:
# 1. 确认 kubectl 可访问集群
kubectl get nodes
# 2. 确认 Helm 可用
helm list
# 3. 确认集群版本(后续 Kyverno 要求 >= 1.23)
kubectl version --short
常见问题:
- kubectl 无法连接集群:检查
~/.kube/config文件是否存在,Minikube 用户执行minikube update-context,Kind 用户确认kind get kubeconfig输出正确。 - Minikube 启动失败:确保 Docker 运行中且用户有权限访问 Docker 套接字。尝试
minikube delete后重新minikube start。 - Helm 仓库添加失败:检查网络连接,可尝试使用
helm repo add kyverno https://kyverno.github.io/kyverno/ --insecure-skip-tls-verify跳过证书验证(仅限测试环境)。
至此,你的本地环境已具备运行 Kyverno 策略引擎的全部条件。下一阶段将正式进入 Kyverno 的安装与基线策略配置。