环境准备

环境准备

在开始学习 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,开箱即用。

启用步骤

  1. 打开 Docker Desktop
  2. 点击设置(Settings)
  3. 选择 Kubernetes
  4. 勾选 "Enable Kubernetes"
  5. 点击 "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

生产环境部署

对于生产环境或需要多节点集群的场景,请参考专门的部署教程:

在线部署

👉 Kubernetes 在线部署

适用于有互联网连接的环境:

  • ✅ 使用 kubeadm 快速部署 Kubernetes 1.30+
  • ✅ 支持多种容器运行时(containerd/CRI-O)
  • ✅ 多种网络插件(Calico/Flannel/Cilium)
  • ✅ 高可用架构配置
  • ✅ 完整的故障排查指南

离线部署

👉 Kubernetes 离线部署

适用于内网或安全隔离环境:

  • ✅ 完整的离线包制作流程
  • ✅ 一键自动化部署脚本
  • ✅ 离线升级方案
  • ✅ 版本管理和维护
  • ✅ 适合政企、金融等行业

小结

本章我们学习了:

  • Minikube:最适合初学者的本地环境
  • Docker Desktop:开箱即用的 Kubernetes
  • Kind:支持多节点的轻量级方案
  • kubeadm 1.30+:生产级部署方案,支持最新特性
  • kubectl:Kubernetes 命令行工具
  • 辅助工具:k9s、kubectx 等提升效率

选择建议

  • 🎓 学习阶段:Minikube 或 Docker Desktop
  • 🧪 测试环境:Kind 或 kubeadm 单节点
  • 🏭 生产环境:kubeadm 高可用集群

环境准备完成!接下来我们将开始学习 Kubernetes 的核心概念。