4、基础环境准备:安装Docker Desktop、启用Kubernetes、安装kubectl与helm、配置本地镜像仓库

本地开发环境是策略即代码资源配额模型的“第一块试验田”。本章将指导你完成四个核心组件的安装与配置:Docker Desktop(容器运行时)、Kubernetes(编排平台)、kubectl & Helm(命令行工具与包管理器)、本地镜像仓库(镜像存储与分发)。

环境要求速览:操作系统 Windows 10/11 Pro/Enterprise(已启用 WSL2)或 macOS 10.15+;至少 8GB 可用内存;50GB 可用磁盘空间;稳定的网络连接。

4.1 安装 Docker Desktop 并启用 Kubernetes

Docker Desktop 是本地开发最常用的容器管理工具,内置了单节点 Kubernetes 集群,无需额外安装 Minikube 或 Kind。

4.1.1 安装步骤

  1. 访问 Docker Desktop 官方下载页,选择对应操作系统的安装包。
  2. 双击安装包,按向导完成安装(Windows 用户需确保已启用 WSL2 后端)。
  3. 启动 Docker Desktop,在 Settings > Kubernetes 中勾选 Enable Kubernetes,点击 Apply & Restart。
  4. 等待集群初始化完成(约 3-5 分钟),状态栏显示绿色 Kubernetes running 即表示成功。
验证命令:
# 检查 Docker 版本
docker --version

# 检查 Kubernetes 节点状态
kubectl get nodes

# 预期输出:一个 Ready 状态的节点(名称通常为 docker-desktop)

4.1.2 架构示意:Docker Desktop 与 Kubernetes 集成关系

Docker Desktop 本地开发环境架构 用户 CLI / IDE Docker Desktop 引擎 Kubernetes 集群 docker CLI containerd / runc kubelet / kube-apiserver 说明: Docker Desktop 在本地运行 containerd 作为容器运行时,同时启动单节点 Kubernetes 集群。

4.2 安装 kubectl 与 Helm

kubectl 是 Kubernetes 的命令行控制工具,Helm 是 Kubernetes 的包管理器。两者是后续部署策略引擎和资源配额模型的必备工具。

4.2.1 kubectl 安装

操作系统 安装方式 命令/步骤
macOS Homebrew brew install kubectl
Windows Chocolatey choco install kubernetes-cli
Linux curl 下载 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
验证 kubectl:
kubectl version --client
# 预期输出:Client Version: v1.28.x

4.2.2 Helm 安装

  1. macOS/Linux: brew install helm 或 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  2. Windows: choco install kubernetes-helm
  3. 验证: helm version 应输出 version.BuildInfo{Version: "v3.14.x"}

4.2.3 工具链关系图

kubectl + Helm 与 Kubernetes 交互关系 kubectl 直接管理 K8s 资源 Helm Chart 包管理 + 模板 Kubernetes API kube-apiserver 工作流: kubectl 直接操作 K8s 资源(Pod/Deployment/Namespace);Helm 通过 Chart 模板批量部署应用,底层仍调用 K8s API。

4.3 配置本地镜像仓库

本地镜像仓库用于存储策略引擎、配额控制器等自定义镜像,避免每次构建都推送到远程仓库,显著提升开发迭代速度。

4.3.1 使用 Docker Registry 官方镜像

# 拉取 registry 镜像
docker pull registry:2

# 启动本地仓库(端口映射到 5000)
docker run -d --name local-registry \
  -p 5000:5000 \
  -v /data/registry:/var/lib/registry \
  --restart=always \
  registry:2

4.3.2 验证仓库可用性

  1. 推送测试镜像:docker pull alpine:latest → docker tag alpine:latest localhost:5000/alpine:test → docker push localhost:5000/alpine:test
  2. 验证仓库内容:curl http://localhost:5000/v2/_catalog 应返回 {"repositories":["alpine"]}
重要:Kubernetes 默认使用 HTTPS 拉取镜像。若使用 HTTP 本地仓库,需在 Docker Desktop 的 Settings > Docker Engine 中添加 "insecure-registries": ["localhost:5000"],然后重启 Docker。

4.3.3 本地镜像仓库与 Kubernetes 集成流程

本地镜像仓库集成流程 开发机 docker build / tag 本地 Registry localhost:5000 Kubernetes 集群 Pod 拉取镜像 docker push 存储镜像层 kubelet 拉取并启动

4.4 环境验证清单

完成上述安装后,执行以下命令确认所有组件正常运行:

组件 验证命令 预期结果
Docker docker info 显示 Server Version >= 24.0
Kubernetes kubectl cluster-info 显示 Kubernetes control plane 地址
kubectl kubectl version --client Client Version 与集群版本偏差 < 1.2
Helm helm list 返回空列表(无报错)
本地仓库 curl -s http://localhost:5000/v2/_catalog 返回 JSON 格式仓库列表
快速诊断脚本:
#!/bin/bash
echo "=== Docker ===" && docker --version
echo "=== Kubernetes ===" && kubectl get nodes -o wide
echo "=== Helm ===" && helm version --short
echo "=== Registry ===" && curl -s http://localhost:5000/v2/_catalog
echo "=== 环境就绪 ==="