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.3
Kustomize 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 并配置消息队列。

本地 Kubernetes 实验环境架构 宿主机(macOS / Linux / Windows) Minikube 集群 虚拟机驱动(Docker/Hyper-V) Control Plane 节点 Worker 节点 kubectl + Helm 或 Kind 集群 Docker 容器化节点 Control Plane 容器 Worker 容器 kubectl + Helm 两种集群均支持 KEDA + RabbitMQ 实验,选择其一即可