环境准备
环境准备
在开始学习 Kubernetes 之前,我们需要搭建一个本地开发环境。本章将介绍几种常用的方式。
学习环境选择
本地环境(推荐初学者)
优点:
- 完全免费
- 可以随时实验
- 不依赖网络
缺点:
- 需要一定的电脑配置
- 单节点集群(功能受限)
云平台
优点:
- 真实的多节点环境
- 高性能
- 接近生产环境
缺点:
- 需要付费
- 依赖网络
方案一:Minikube(最简单)
Minikube 是官方提供的本地 Kubernetes 环境,非常适合学习。
系统要求
- CPU:2 核以上
- 内存:4GB 以上
- 磁盘:20GB 以上
- 支持虚拟化(VT-x/AMD-v)
Windows 安装
1. 安装 Docker Desktop
下载并安装 Docker Desktop
2. 安装 kubectl
# 使用 Chocolatey
choco install kubernetes-cli
# 或使用 scoop
scoop install kubectl
3. 安装 Minikube
# 使用 Chocolatey
choco install minikube
# 或直接下载安装
# https://minikube.sigs.k8s.io/docs/start/
4. 启动 Minikube
minikube start --driver=docker
# 指定 Kubernetes 版本
minikube start --kubernetes-version=v1.28.0
macOS 安装
# 安装 Docker Desktop
# 从官网下载安装
# 使用 Homebrew 安装
brew install kubectl
brew install minikube
# 启动 Minikube
minikube start
Linux 安装
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 安装 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 启动
minikube start
验证安装
# 查看集群状态
kubectl cluster-info
# 查看节点
kubectl get nodes
# 输出示例
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 1m v1.28.0
方案二:Docker Desktop Kubernetes
Docker Desktop 内置了 Kubernetes,开箱即用。
启用步骤
- 打开 Docker Desktop
- 点击设置(Settings)
- 选择 Kubernetes
- 勾选 "Enable Kubernetes"
- 点击 "Apply & Restart"
验证
kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 1m v1.28.2
方案三:Kind(Kubernetes in Docker)
Kind 使用 Docker 容器运行 Kubernetes 节点,支持多节点集群。
安装
# macOS/Linux
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
# Windows (PowerShell)
curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.20.0/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe c:\windows\system32\kind.exe
创建集群
# 单节点集群
kind create cluster
# 多节点集群
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
kubectl 基础命令
安装完成后,让我们熟悉一下 kubectl 基础命令。
集群信息
# 查看集群信息
kubectl cluster-info
# 查看集群版本
kubectl version
# 查看节点
kubectl get nodes
# 查看节点详情
kubectl describe node <node-name>
资源查看
# 查看所有命名空间
kubectl get namespaces
# 查看所有 Pod
kubectl get pods --all-namespaces
# 查看服务
kubectl get services
# 查看部署
kubectl get deployments
获取帮助
# 查看命令帮助
kubectl --help
# 查看子命令帮助
kubectl get --help
# 查看资源类型
kubectl api-resources
配置 kubectl
查看配置
# 查看当前配置
kubectl config view
# 查看当前上下文
kubectl config current-context
# 列出所有上下文
kubectl config get-contexts
切换上下文
# 切换到其他集群
kubectl config use-context minikube
设置命名空间
# 为当前上下文设置默认命名空间
kubectl config set-context --current --namespace=dev
命令行自动补全
Bash
# 安装
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
Zsh
# 安装
echo 'source <(kubectl completion zsh)' >> ~/.zshrc
source ~/.zshrc
PowerShell
kubectl completion powershell | Out-String | Invoke-Expression
可选工具
1. k9s - 终端 UI
k9s 提供了强大的终端界面管理 Kubernetes。
# macOS
brew install k9s
# Linux
curl -sS https://webinstall.dev/k9s | bash
# 运行
k9s
2. kubectx/kubens - 快速切换
# macOS
brew install kubectx
# 使用
kubectx # 列出上下文
kubectx minikube # 切换上下文
kubens dev # 切换命名空间
3. Helm - 包管理器
# macOS
brew install helm
# Windows
choco install kubernetes-helm
# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Minikube 常用命令
# 启动集群
minikube start
# 停止集群
minikube stop
# 删除集群
minikube delete
# 查看状态
minikube status
# SSH 到节点
minikube ssh
# 打开 Dashboard
minikube dashboard
# 查看服务 URL
minikube service <service-name>
# 启用插件
minikube addons list
minikube addons enable ingress
minikube addons enable metrics-server
验证环境
创建一个测试 Pod 验证环境:
# 运行测试 Pod
kubectl run nginx --image=nginx
# 查看 Pod
kubectl get pods
# 查看详情
kubectl describe pod nginx
# 访问 Pod
kubectl port-forward nginx 8080:80
# 在浏览器访问 http://localhost:8080
# 清理
kubectl delete pod nginx
常见问题
Minikube 启动失败
# 删除旧集群重新创建
minikube delete
minikube start
# 指定驱动
minikube start --driver=docker
kubectl 连接失败
# 检查配置
kubectl config view
# 重置 Minikube
minikube update-context
镜像拉取慢
# 配置国内镜像源
minikube start --image-mirror-country=cn
生产环境部署
对于生产环境或需要多节点集群的场景,请参考专门的部署教程:
在线部署
适用于有互联网连接的环境:
- ✅ 使用 kubeadm 快速部署 Kubernetes 1.30+
- ✅ 支持多种容器运行时(containerd/CRI-O)
- ✅ 多种网络插件(Calico/Flannel/Cilium)
- ✅ 高可用架构配置
- ✅ 完整的故障排查指南
离线部署
适用于内网或安全隔离环境:
- ✅ 完整的离线包制作流程
- ✅ 一键自动化部署脚本
- ✅ 离线升级方案
- ✅ 版本管理和维护
- ✅ 适合政企、金融等行业
小结
本章我们学习了:
- Minikube:最适合初学者的本地环境
- Docker Desktop:开箱即用的 Kubernetes
- Kind:支持多节点的轻量级方案
- kubeadm 1.30+:生产级部署方案,支持最新特性
- kubectl:Kubernetes 命令行工具
- 辅助工具:k9s、kubectx 等提升效率
选择建议:
- 🎓 学习阶段:Minikube 或 Docker Desktop
- 🧪 测试环境:Kind 或 kubeadm 单节点
- 🏭 生产环境:kubeadm 高可用集群
环境准备完成!接下来我们将开始学习 Kubernetes 的核心概念。