2. 环境准备:安装 Minikube、kubectl、Docker

说实话,很多新手在学 K8s 时,第一步就被环境搭建劝退了。

我当年也一样。记得第一次在自己笔记本上搭集群,折腾了整整一个周末,最后发现是 Docker 版本不兼容。嗯,那种感觉,你懂的。

所以这一章,咱们稳扎稳打。把 Minikube、kubectl、Docker 这三个家伙伺候好,后面的路就顺了。

2.1 整体思路:先搞清楚我们要装什么

在动手之前,我建议你先想明白一件事:我们为什么要装这三个东西?

  • Docker:容器运行时。说白了,你的 vLLM 模型最终是跑在容器里的。没有 Docker,容器就起不来。
  • Minikube:本地 K8s 集群。它帮你在本机模拟一个单节点的 K8s 环境。我项目中经常用它做快速验证,比上生产环境省心多了。
  • kubectl:K8s 的命令行工具。你所有对集群的操作,比如部署应用、查看 Pod 状态,都靠它。

它们的关系是这样的:Docker 是地基,Minikube 是房子,kubectl 是钥匙。缺一不可。

核心逻辑图:

Docker (容器运行时) Minikube (本地集群) kubectl (管理工具) 安装顺序:Docker → Minikube → kubectl 三者协作,才能在本机跑起 K8s 集群

2.2 安装 Docker

我个人习惯用 Docker Desktop,因为它自带图形界面,对新手友好。当然,你用命令行装也行,看个人喜好。

步骤:

  1. 去 Docker 官网下载 Docker Desktop(选择对应你操作系统的版本)。
  2. 双击安装,一路默认就行。
  3. 安装完成后,打开终端,验证一下:
docker --version
# 输出示例:Docker version 24.0.7, build afdd53b

如果能看到版本号,说明 Docker 装好了。

小提示: 我在项目中遇到过一个问题——Docker Desktop 启动后,终端里却提示“Cannot connect to the Docker daemon”。别慌,重启一下 Docker Desktop 就好。这是它的老毛病了。

2.3 安装 Minikube

Minikube 的安装方式很多。我推荐用二进制下载,简单直接。

步骤:

  1. 打开终端,执行以下命令(以 Linux/macOS 为例):
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Windows 用户可以用 Chocolatey 安装:

choco install minikube
  1. 安装完成后,验证一下:
minikube version
# 输出示例:minikube version: v1.32.0

注意: Minikube 默认需要 2 个 CPU 核心和 2GB 内存。如果你的电脑配置比较低,启动时可能会报错。我曾经在一台 4GB 内存的旧笔记本上试过,结果 Minikube 启动到一半就挂了。后来我加了参数:minikube start --memory=2048 --cpus=2,才搞定。

2.4 安装 kubectl

kubectl 是 K8s 的瑞士军刀。你想想看,后面所有操作都离不开它。

步骤:

  1. 下载 kubectl 二进制文件:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  1. 赋予执行权限并移动到 PATH 目录:
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
  1. 验证安装:
kubectl version --client
# 输出示例:Client Version: v1.28.3

避坑指南: 我曾经遇到过 kubectl 版本和 Minikube 版本不匹配的情况。结果执行 kubectl get pods 时,一直报版本错误。后来我养成了一个习惯:安装前先查一下兼容性列表。一般来说,kubectl 的版本不要比 Minikube 的版本高太多,差一个次版本号以内最安全。

2.5 验证环境:启动 Minikube 集群

三个工具都装好了,现在我们来验证一下它们能不能协同工作。

步骤:

  1. 启动 Minikube 集群:
minikube start

第一次启动会下载一些镜像,稍微等一会儿。如果看到类似这样的输出,就说明启动成功了:

😄  minikube v1.32.0 on Ubuntu 20.04
✨  Automatically selected the docker driver
👍  Starting control plane node minikube in cluster minikube
🔥  Creating docker container (CPUs=2, Memory=2200MB)
🐳  Preparing Kubernetes v1.28.3 on Docker 24.0.7
🔗  Configuring bridge CNI (Container Networking Interface)
🌟  Enabled addons: storage-provisioner, default-storageclass
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  Done! kubectl is now configured to use "minikube" cluster
  1. 用 kubectl 检查集群状态:
kubectl cluster-info
# 输出示例:
# Kubernetes control plane is running at https://127.0.0.1:32768
# CoreDNS is running at https://127.0.0.1:32768/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  1. 查看节点状态:
kubectl get nodes
# 输出示例:
# NAME       STATUS   ROLES           AGE   VERSION
# minikube   Ready    control-plane   2m    v1.28.3

看到 Ready 状态,说明你的 K8s 集群已经跑起来了。

环境验证总结:

组件 验证命令 预期结果
Docker docker --version 显示版本号
Minikube minikube version 显示版本号
kubectl kubectl version --client 显示客户端版本
集群状态 kubectl get nodes 节点状态为 Ready

2.6 常见问题与解决

说实话,环境搭建这一步,我见过太多人卡在这里了。下面列几个我遇到过的高频问题:

  • Minikube 启动超时:多半是网络问题。可以试试 minikube start --image-mirror-country=cn,用国内镜像加速。
  • kubectl 命令找不到集群:检查一下 ~/.kube/config 文件是否存在。如果不存在,执行 minikube update-context 重新生成。
  • Docker 和 Minikube 冲突:有时候 Docker Desktop 更新后,Minikube 会连不上。重启大法好——先重启 Docker,再重启 Minikube。

重要提醒: 如果你用的是 Windows,记得在安装 Docker Desktop 时勾选“启用 WSL 2”。否则 Minikube 可能会抱怨找不到合适的驱动。我有个同事就是没注意这个,折腾了俩小时才发现。

好了,环境准备就到这里。现在你的电脑上已经有了一个可以跑 K8s 的本地集群。接下来,我们就可以往里面部署 vLLM 了。


专注资料整理