2、环境准备:安装Docker、kubectl、以及配置Kubernetes集群(Minikube或Kind)

好,咱们正式开始动手了。

这一章说白了,就是搭台子。Kubeflow 跑在 Kubernetes 上,而 Kubernetes 又需要容器运行时。所以咱们得先把这三样东西搞定:Dockerkubectl、以及一个本地 Kubernetes 集群(Minikube 或 Kind)。

我个人习惯在本地开发环境用 Kind,因为它启动快、资源占用少。但如果你需要完整的集群体验,Minikube 会更接近生产环境。嗯,这里我两种都会讲,你自己选。

核心逻辑: Docker 提供容器运行环境 → kubectl 作为控制工具 → Kubernetes 集群作为最终平台。三者缺一不可。
Docker 容器运行时 kubectl 集群控制工具 K8s 集群 Minikube / Kind 安装顺序:Docker → kubectl → 集群 Kubeflow 最终运行在 K8s 集群之上

2.1 安装 Docker

Docker 是基石。没有它,容器跑不起来。

我建议你直接用 Docker Desktop,省心。Linux 用户可以用包管理器装 Docker Engine。

Ubuntu / Debian 系:

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# 退出终端重新登录,让用户组生效

macOS / Windows:

直接去 Docker 官网 下载 Docker Desktop 安装包,双击安装就行。安装完后打开,等右下角鲸鱼图标稳定下来。

验证安装: 打开终端,输入 docker --versiondocker run hello-world。看到 "Hello from Docker!" 就说明成了。
注意: 我曾经遇到过 Docker Desktop 占用资源过高的情况。如果你电脑内存只有 8GB,建议在 Docker Desktop 设置里把内存限制调到 4GB 以内,不然跑 Minikube 时会卡死。

2.2 安装 kubectl

kubectl 是 Kubernetes 的命令行工具。说白了,它就是你和集群对话的翻译官。

Linux 安装:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

macOS 安装:

brew install kubectl

Windows 安装:

用 Chocolatey:choco install kubernetes-cli,或者直接下载 exe 放到 PATH 里。

验证: kubectl version --client。看到客户端版本号就对了。注意,现在还没连集群,所以服务端版本会显示 "unknown",别慌。

2.3 配置 Kubernetes 集群

这里有两个选择:Minikube 和 Kind。我分别讲一下。

方案 A:Minikube(推荐新手)

Minikube 会创建一个真正的单节点集群。它支持很多特性,比如 Dashboard、Ingress、存储卷等。我个人觉得它更适合学习,因为体验更接近生产环境。

安装 Minikube:

# Linux / macOS
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# macOS 也可以用 brew
brew install minikube

启动集群:

minikube start --driver=docker --cpus=4 --memory=8192

这里我踩过坑:--cpus--memory 别给太少。Kubeflow 组件很多,至少 4 核 8G 内存。如果你电脑配置低,可以给 2 核 4G,但后面跑 Kubeflow 可能会慢。

验证集群: kubectl get nodes。看到状态为 "Ready" 的节点,就说明集群起来了。

方案 B:Kind(推荐老手)

Kind 是用 Docker 容器模拟节点。启动速度极快,资源占用也小。我平时做测试、写 demo 都用它。

安装 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

# macOS 也可以用 brew
brew install kind

创建集群:

kind create cluster --name kubeflow-cluster

默认情况下,Kind 只创建一个控制节点。如果你需要多节点,可以写一个配置文件:

# kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

然后执行:kind create cluster --config kind-config.yaml --name kubeflow-cluster

验证: kubectl cluster-info。看到控制平面和 CoreDNS 的地址,就说明集群正常。

2.4 配置 kubectl 上下文

安装完集群后,kubectl 会自动配置好上下文。你可以用以下命令查看:

kubectl config get-contexts
kubectl config current-context

如果你有多个集群,切换上下文用:

kubectl config use-context kind-kubeflow-cluster
避坑指南: 我曾经同时开了 Minikube 和 Kind,结果 kubectl 上下文混乱,导致操作错了集群。建议你一次只用一个集群。如果必须切换,记得用 kubectl config use-context 明确指定。

2.5 验证整体环境

最后,咱们跑一个完整的验证流程:

# 1. 验证 Docker
docker --version

# 2. 验证 kubectl
kubectl version --client

# 3. 验证集群节点
kubectl get nodes

# 4. 查看集群信息
kubectl cluster-info

# 5. 部署一个测试 Pod
kubectl run nginx-test --image=nginx --restart=Never
kubectl get pods
kubectl delete pod nginx-test

如果以上全部通过,恭喜你,环境准备完毕!

总结一下: 咱们装了 Docker 作为容器引擎,装了 kubectl 作为控制工具,然后用 Minikube 或 Kind 搭了一个本地 Kubernetes 集群。这三样东西,就是 Kubeflow 的底座。底座稳了,后面装 Kubeflow 才不慌。

公众号:蓝海资料掘金营,微信deep3321