2. 环境准备:安装 Minikube 或 Kind 集群、安装 kubectl 与 Helm 工具
在开始 KEDA 实战之前,我们需要搭建一个本地的 Kubernetes 实验环境。本章将指导你完成以下三个核心步骤:选择并安装一个轻量级集群(Minikube 或 Kind)、配置命令行工具 kubectl、以及安装包管理工具 Helm。这些工具是后续所有实验的基础。
💡 选择建议: 如果你的本地资源有限(如 4GB 内存),推荐使用 Kind;如果你需要完整的 Kubernetes 功能模拟(如 LoadBalancer、Dashboard),推荐使用 Minikube。本课程后续实验同时兼容两种集群。
2.1 集群方案对比与选择
Minikube 和 Kind 是目前最主流的本地 Kubernetes 方案。下表从关键维度进行了对比,帮助你快速决策:
| 特性 | Minikube | Kind (Kubernetes in Docker) |
|---|---|---|
| 底层技术 | 虚拟机(支持 Hyper-V、VirtualBox、KVM) | Docker 容器(节点以容器方式运行) |
| 启动速度 | 较慢(需下载 ISO 镜像并启动 VM) | 快(秒级启动,依赖 Docker 镜像) |
| 资源占用 | 较高(需分配固定 CPU/内存给 VM) | 较低(共享宿主机内核) |
| 多节点集群 | 支持(通过 minikube node add) |
原生支持(通过配置文件定义) |
| LoadBalancer 支持 | 内置 minikube tunnel |
需额外安装 MetalLB |
| 适用场景 | 功能验证、学习、演示 | CI/CD 集成、快速测试、资源受限环境 |
2.2 安装 kubectl
kubectl 是操作 Kubernetes 集群的命令行客户端。无论选择哪种集群,都必须先安装它。
步骤一:下载 kubectl
根据你的操作系统,执行以下命令安装最新稳定版:
# Linux (amd64)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# macOS (Intel)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
# macOS (Apple Silicon)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
# Windows (PowerShell)
curl.exe -LO "https://dl.k8s.io/release/$(curl.exe -L -s https://dl.k8s.io/release/stable.txt)/bin/windows/amd64/kubectl.exe"
步骤二:赋予执行权限并验证
# Linux/macOS
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kubectl version --client
# Windows (将 kubectl.exe 添加到 PATH 后)
kubectl version --client
✅ 验证输出示例:
Client Version: v1.28.3Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
2.3 安装 Minikube 集群
如果你选择 Minikube,请确保已安装虚拟机驱动(如 Docker、Hyper-V 或 VirtualBox)。以下以 Docker 驱动为例:
# 1. 安装 Minikube(Linux/macOS)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 2. 启动集群(指定 Docker 驱动,分配 2 核 4GB)
minikube start --driver=docker --cpus=2 --memory=4096
# 3. 验证集群状态
minikube status
kubectl get nodes
Minikube 常用管理命令
| 命令 | 说明 |
|---|---|
minikube start |
启动集群 |
minikube stop |
停止集群 |
minikube delete |
删除集群 |
minikube dashboard |
打开 Web 仪表盘 |
minikube tunnel |
为 LoadBalancer 服务分配外部 IP |
2.4 安装 Kind 集群
如果你选择 Kind,请确保已安装 Docker。Kind 的安装和启动更加简洁:
# 1. 安装 Kind(Linux/macOS)
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 create cluster --name keda-demo
# 3. 验证集群
kubectl cluster-info --context kind-keda-demo
kubectl get nodes
创建多节点 Kind 集群(可选)
创建一个 kind-config.yaml 文件:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
# 使用配置文件创建
kind create cluster --name keda-demo --config kind-config.yaml
⚠️ 注意: Kind 集群默认不安装 Metrics Server,而 KEDA 的 HPA 弹性伸缩依赖 Metrics Server 获取 Pod 资源指标。后续章节会单独安装 Metrics Server。
2.5 安装 Helm 包管理器
Helm 是 Kubernetes 的包管理工具,我们将使用它来安装 KEDA、RabbitMQ 等组件。Helm 的安装非常简单:
# Linux/macOS (使用官方脚本)
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
# macOS (使用 Homebrew)
brew install helm
# Windows (使用 Chocolatey)
choco install kubernetes-helm
验证 Helm 安装
helm version
# 输出示例: version.BuildInfo{Version:"v3.13.2", ...}
添加常用 Helm 仓库
后续实验需要用到以下仓库,建议提前添加:
# KEDA 官方仓库
helm repo add kedacore https://kedacore.github.io/charts
# Bitnami 仓库(包含 RabbitMQ、Metrics Server 等)
helm repo add bitnami https://charts.bitnami.com/bitnami
# 更新仓库
helm repo update
2.6 环境验证清单
完成上述安装后,请执行以下命令进行最终验证:
# 1. 验证 kubectl
kubectl version --client
# 2. 验证集群节点
kubectl get nodes
# 3. 验证 Helm
helm version
# 4. 验证 Helm 仓库
helm repo list
如果所有命令都返回正常结果,说明你的本地 Kubernetes 实验环境已经准备就绪。下一章我们将正式部署 RabbitMQ 并配置消息队列。