2、环境准备:安装Docker、kubectl、以及配置Kubernetes集群(Minikube或Kind)
好,咱们正式开始动手了。
这一章说白了,就是搭台子。Kubeflow 跑在 Kubernetes 上,而 Kubernetes 又需要容器运行时。所以咱们得先把这三样东西搞定:Docker、kubectl、以及一个本地 Kubernetes 集群(Minikube 或 Kind)。
我个人习惯在本地开发环境用 Kind,因为它启动快、资源占用少。但如果你需要完整的集群体验,Minikube 会更接近生产环境。嗯,这里我两种都会讲,你自己选。
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 --version 和 docker run hello-world。看到 "Hello from Docker!" 就说明成了。
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
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
如果以上全部通过,恭喜你,环境准备完毕!
公众号:蓝海资料掘金营,微信deep3321