返回首页

1.3 快速上手:搭建本地实验环境

1. 为什么先搭本地实验环境?

学 Kubernetes 最怕的一件事,就是只看概念不动手。Pod、Deployment、Service 这些对象,本质上都属于“看一遍不如跑一遍”的内容。所以在正式进入实操前,先准备一个本地实验环境非常重要。

官方工具说明页将 kindminikube 都列为本地学习与日常开发的常用方式:kind 依赖容器运行环境,适合快速起集群;minikube 则可以在个人电脑上运行单节点或多节点本地集群,非常适合入门练习::cite[293].

本章我们就围绕这两个工具展开。你不需要两个都装,任选其一即可开始学习;但为了后续查阅方便,我会把两套完整命令都给出来。

2. 为什么选择 kind 或 minikube

2.1 kind:轻、快、适合纯实验

kind 的名字来自 Kubernetes in Docker。它使用容器来模拟节点,创建集群速度快、销毁方便,非常适合做课堂实验、CI 测试和本地快速验证。kind 官方 Quick Start 明确指出,创建集群可以简单到一条 kind create cluster,而且集群访问配置会自动写入 kubeconfig::cite[306].

如果你的目标是:

  • 快速拉起一个临时集群;
  • 更频繁地创建、删除集群;
  • 主要做 YAML 练习与 API 学习;

那么 kind 往往是非常省心的选择。

2.2 minikube:更像“学习型单机实验室”

minikube 官方文档把它定义为“local Kubernetes”,强调的是让 Kubernetes 学习和开发更容易。它支持多种驱动方式,比如 Docker、Podman 或虚拟机管理器,执行 minikube start 就能创建集群::cite[152].

如果你的目标是:

  • 想要一个更完整的本地学习环境;
  • 希望顺手体验 dashboard、addons、service 访问;
  • 想在本机长期保留一个练习集群;

那么 minikube 会更友好一些。

2.3 怎么选?

可以直接用下面这张表:

场景 更推荐
想极简、快速创建和删除集群 kind
想长期保留一个本地学习环境 minikube
做 CI / 自动化测试场景 kind
想体验更多本地扩展功能 minikube

如果你拿不准,第一次学习建议先用 kind;后续如果想体验更多本地能力,再补充 minikube。

3. 使用 kind 快速创建本地集群(完整命令)

kind 官方文档说明,它不强制要求安装 kubectl,但如果没有 kubectl,你将无法完成大部分 Kubernetes 示例操作。同时,kind 的核心命令包括创建集群、查看集群、删除集群以及通过 kubeconfig 与集群交互::cite[306].

3.1 前置条件

你需要先准备:

  • 一个可用的容器运行环境(常见是 Docker Desktop);
  • kubectl
  • kind

3.2 安装 kind(macOS / Homebrew 示例)

brew install kind

3.3 安装 kubectl(macOS / Homebrew 示例)

brew install kubectl

3.4 创建一个基于 v1.32 的 kind 集群

kind create cluster --name unit1 --image kindest/node:v1.32.0 --wait 60s

说明:kind 官方文档支持通过 --image 指定不同 Kubernetes 版本对应的 node image,从而控制创建出来的集群版本::cite[306].

3.5 查看集群列表

kind get clusters

3.6 查看集群信息

kubectl cluster-info --context kind-unit1

3.7 查看节点状态

kubectl get nodes

3.8 查看客户端与服务端版本

kubectl version

3.9 删除集群

kind delete cluster --name unit1

3.10 kind 的几个实用说明

kind 官方文档指出,默认情况下,集群访问配置会写入 ${HOME}/.kube/config;如果设置了 KUBECONFIG 环境变量,则会按对应路径处理 kubeconfig。也就是说,创建完集群后通常不需要额外手动配置上下文,kubectl 就能直接用::cite[306].

如果你只想最快验证是否成功,可以把 kind 的最短路径记成下面三步:

kind create cluster --name unit1 --image kindest/node:v1.32.0 --wait 60s
kubectl get nodes
kubectl get pods -A

4. 使用 minikube 快速创建本地集群(完整命令)

minikube 官方文档说明,运行本地 Kubernetes 至少建议具备 2 个 CPU、2GB 可用内存、20GB 可用磁盘空间,并且准备好容器或虚拟机驱动环境。它的核心启动命令就是 minikube start::cite[152].

4.1 安装 minikube(macOS / Homebrew 示例)

brew install minikube

4.2 安装 kubectl(如果尚未安装)

brew install kubectl

4.3 使用 Docker 驱动启动一个 v1.32 集群

minikube start --driver=docker --kubernetes-version=v1.32.0

4.4 查看节点

kubectl get nodes

4.5 查看所有命名空间中的 Pod

kubectl get pods -A

4.6 查看 minikube 状态

minikube status

4.7 停止集群

minikube stop

4.8 删除集群

minikube delete

4.9 如果本机还没有 kubectl,minikube 也能临时代理调用

官方文档提到,如果你的机器上还没有独立安装 kubectl,也可以先用下面这种方式操作集群:

minikube kubectl -- get pods -A

你甚至可以在 shell 配置中加入一个别名,简化日常输入:

alias kubectl="minikube kubectl --"

这对于第一次入门特别友好,因为你可以先把集群跑起来,再慢慢补齐本地工具链::cite[152].

5. kubectl 基本配置:你到底在连哪个集群?

Kubernetes 官方工具页指出,kubectl 是 Kubernetes 的命令行工具,用来部署应用、检查与管理集群资源,以及查看日志。它是你和集群打交道最重要的入口之一::cite[293].

5.1 kubeconfig 是什么

kubectl 通过 kubeconfig 知道自己要连接哪个集群、使用什么认证信息、当前上下文是什么。无论是 kind 还是 minikube,在成功创建集群后,通常都会帮你把连接信息写到默认 kubeconfig 中。

最常见的默认路径是:

~/.kube/config

5.2 查看当前上下文

kubectl config current-context

5.3 查看所有上下文

kubectl config get-contexts

5.4 切换上下文

kubectl config use-context kind-unit1

如果你用的是 minikube,则上下文名称通常就是 minikube

6. kubectl 常用命令,建议一开始就会这几个

下面这组命令,属于学习 Kubernetes 的“新手高频工具箱”:

命令 作用
kubectl get nodes 查看节点
kubectl get pods -A 查看所有命名空间的 Pod
kubectl get svc -A 查看 Service
kubectl get deploy -A 查看 Deployment
kubectl describe pod <pod-name> 查看对象详细事件和状态
kubectl logs <pod-name> 查看容器日志
kubectl exec -it <pod-name> -- /bin/sh 进入容器
kubectl delete -f xxx.yaml 删除通过 YAML 创建的资源
kubectl apply -f xxx.yaml 按声明式方式创建/更新资源

建议你现在就先执行几条最基础的:

kubectl get nodes
kubectl get pods -A
kubectl get ns
kubectl cluster-info

如果这些命令都能正常返回,说明你的本地实验环境已经准备好了。

7. 一套推荐的入门动作顺序

如果你想少走弯路,可以按照下面顺序来:

  1. 选一种工具:kind 或 minikube;
  2. 拉起一个 v1.32 集群;
  3. kubectl get nodes 确认节点 Ready;
  4. kubectl get pods -A 看系统组件是否正常;
  5. 再开始写你的第一个 Pod YAML。

这也是为什么本教程把“本地环境”放在 Pod 实操之前——因为没有一个能随时试错的环境,很多概念都会停留在纸面上。

8. 本章小结

本章你应该完成两件事:

  • 知道 kind 和 minikube 各自适合什么场景;
  • 至少成功拉起一个 Kubernetes v1.32 本地集群,并用 kubectl 连上它。

只要这一关打通,后面的 YAML、Pod、Deployment、Service 都可以边学边验。下一章,我们就正式进入第一个真正运行起来的 Kubernetes 对象:Pod::cite[293].


📝 版权声明:本文为原创技术博客,转载请注明出处。

如文章中存在错误或不准确之处,欢迎在评论区指正,感谢您的阅读与支持!

上一篇

7.4 Kubernetes Events 与告警

下一篇

5.3:StatefulSet 与有状态应用