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 的命令行客户端,所有集群操作都通过它完成。请根据操作系统执行以下安装步骤:

  1. 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/
  2. 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/
  3. 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 驱动为例:

  1. 安装 Minikube 二进制文件
    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    sudo install minikube-linux-amd64 /usr/local/bin/minikube
  2. 启动集群(分配 2 核 CPU、4GB 内存)
    minikube start --cpus=2 --memory=4096 --driver=docker
  3. 验证集群状态
    kubectl get nodes
    minikube status

2.4 安装 Kind

Kind 完全运行在 Docker 容器中,安装更轻量:

  1. 安装 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
  2. 创建集群配置文件 kind-config.yaml
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    nodes:
      - role: control-plane
      - role: worker
      - role: worker
  3. 启动多节点集群
    kind create cluster --config kind-config.yaml --name kyverno-demo
  4. 验证集群
    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 环境准备总览

下图展示了本地开发环境的完整组件关系:

本地 Kubernetes 开发环境组件关系 工作站 macOS / Linux / Windows kubectl + Helm Minikube 虚拟机驱动 (Docker) Kind 容器驱动 (Docker) Kubernetes 集群 Control Plane Worker Node(s) 环境准备清单 1. 安装 Docker(Minikube/Kind 共用依赖) 2. 安装 kubectl 并配置 kubeconfig 3. 选择 Minikube 或 Kind 创建集群 4. 安装 Helm 并添加 Kyverno 仓库

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 的安装与基线策略配置。