背景
Kubeflow 是一种开源的 Kubernetes 原生框架,可用于开发、管理和运行机器学习工作负载,支持诸如 PyTorch、TensorFlow 等众多优秀的机器学习框架,本文介绍如何在 Mac 上搭建本地化的 kubeflow 机器学习平台。

注意:本文以 deyloyKF 发行版作为主要安装对象,本地环境仅适用于开发测试使用,不可用于生产环境!
更多 kubeflow 发行版参考官网介绍:https://www.kubeflow.org/docs/started/installing-kubeflow/
基本环境:
OS:macos 13.1 (amd64)
DockerDesktop:v4.15.0
尽管 K3s 自身需要的资源不多,但是 kubeflow 套件组件众多,需要设置 Docker 的资源分配,避免安装过程中发生 Pod Pending.
Docker 资源建议设置:CPU 8 核,Memory 10G,磁盘 40G

安装部署步骤
1. 安装依赖的 CLI
brew install bash argocd jq k3d kubectl kustomize
2. 创建 Kubernetes 集群
为了尽可能降低资源消耗,这里使用 K3s 运行本地集群:
k3d cluster create "kubeflow" --image "rancher/k3s:v1.27.10-k3s2"
通过如下命令检查集群是否就绪:
kubectl get -A pods
正常的输出结果类似如下这样:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-957fdf8bc-cj9l5 1/1 Running 0 2m30s
kube-system coredns-77ccd57875-xzzz4 1/1 Running 0 2m30s
kube-system metrics-server-648b5df564-gwnhq 1/1 Running 0 2m30s
kube-system helm-install-traefik-crd-49l4k 0/1 Completed 0 2m31s
kube-system helm-install-traefik-xrjtd 0/1 Completed 2 2m31s
kube-system svclb-traefik-a79cf0ef-lj4td 2/2 Running 0 89s
kube-system traefik-768bdcdcdd-mr8z8 1/1 Running 0 89s
3. 部署 ArgoCD
ArgoCD 是工作流编排工具,可以帮助我们实现 Kubeflow 的自动化部署
git clone -b main https://github.com/deployKF/deployKF.git
cd deployKF/argocd-plugin
chmod +x ./install_argocd.sh
bash ./install_argocd.sh
通过如下命令检查 ArgoCD 是否就绪:
kubectl get pod -n argocd
正常的输出结果类似如下这样:
NAME READY STATUS RESTARTS AGE
argocd-redis-69f8795dbd-7v4nn 1/1 Running 0 106s
argocd-applicationset-controller-7b9c4dfb77-7gsf2 1/1 Running 0 106s
argocd-notifications-controller-756764ddd5-jw92c 1/1 Running 0 106s
argocd-server-86f64667bc-7nt7d 1/1 Running 0 105s
argocd-application-controller-0 1/1 Running 0 105s
argocd-dex-server-9b5c6dccd-2p779 1/1 Running 0 106s
argocd-repo-server-5b55578f7c-sfzf4 2/2 Running 0 105s
4. 安装 kubeflow 套件
准备如下文件:deploykf-app-of-apps.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: deploykf-app-of-apps
namespace: argocd
labels:
app.kubernetes.io/name: deploykf-app-of-apps
app.kubernetes.io/part-of: deploykf
spec:
project: "default"
source:
## source git repo configuration
## - we use the 'deploykf/deploykf' repo so we can read its 'sample-values.yaml'
## file, but you may use any repo (even one with no files)
##
repoURL: "https://github.com/deployKF/deployKF.git"
targetRevision: "v0.1.4"
path: "."
## plugin configuration
##
plugin:
name: "deploykf"
parameters:
## the deployKF generator version
## - available versions: https://github.com/deployKF/deployKF/releases
##
- name: "source_version"</

本文详细介绍了如何在Mac环境中使用DockerDesktop和K3s搭建本地Kubeflow平台,包括安装依赖、创建Kubernetes集群、部署ArgoCD和Kubeflow套件,以及配置访问控制和Jupyter的使用。
最低0.47元/天 解锁文章
392

被折叠的 条评论
为什么被折叠?



