资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

kubeflow国内单机本地安装(官网、kind、wsl2、jupyter notebook创建)

Python 更新时间: 发布时间: 计算机考试归档 最新发布

kubeflow国内单机本地安装(官网、kind、wsl2、jupyter notebook创建)

目录

  • 写在前面
  • 环境
  • 版本
  • 前置条件
      • kind
      • kubectl
      • kustomize
      • docker
      • python
  • 步骤
      • 第一步 克隆仓库
      • 第二步 添加失败镜像
      • 第三歩 复制文件
      • 第四步 执行.sh程序
      • 第五步 补充
  • Warning
      • warning1 解决没有auth(namespace)的问题
      • warning2 解决后面出现的镜像拉取镜像的问题
      • warning3 临时映射界面端口的问题
      • warning4 添加本地目录到持久卷的问题
  • 安装成功
      • 所有运行的pod
      • kubeflow界面
  • Create a new notebook
      • 步骤
      • 定义最小CPU和内存
      • 定义工作空间空白卷大小(建议默认)
      • 挂载本地路径的数据卷
      • 数据卷的相关配置文件
      • 在使用数据卷声明前

写在前面

这是Kubeflow Manifest地址 Kubeflow Manifest ,经过少量修改(只改了一个文件,添加了几个文件),可以在国内安装的笔记。

非常感谢public-image-mirror地址 public-image-mirror 提供的镜像加速,使得很多在国外的镜像,在国内也可以下载,只需要改变仓库名(添加.m.daocloud)。

这里也包括我安装时踩坑记录

这是国内单机本地安装

这是笔者源码在github上的地址modify_kubeflow_manifest

环境

Windows11专业版

WSL2

Ubuntu-22.04

WSL 版本: 1.1.6.0

内核版本: 5.15.90.1

WSLg 版本: 1.0.50

MSRDC 版本: 1.2.3770

Direct3D 版本: 1.608.2-61064218

DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp

Windows 版本: 10.0.23451.1000

docker-23.0.2(Linux安装,非windows桌面版)

kind-0.18.0

kubectl-1.25

kustomize-5.0.0

python3

版本


前置条件

kind

kind下载地址

kind version

kind v0.18.0 go1.20.2 linux/amd64

kind可以创建多个节点的集群或者多个集群(官网文档 )

kind是可以载入本地镜像到集群中的,但是速度好像没有快多少,所以笔者包载入镜像的Shell(在笔者的github中的pull_and_kind_load_dockerimages.sh)注释掉了,用docker拉取镜像到本地当然也注释掉了,有需要可以更改。

以下是复制官网的Linux下载命令

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64chmod +x ./kindsudo mv ./kind /usr/local/bin/kind

kubectl

官网要求(最多1.25)

kubectl下载地址 下载需要指定版本

kubectl version

Client Version: version.Info{Major:“1”, Minor:“25”, GitVersion:“v1.25.0”, GitCommit:“a866cbe2e5bbaa01cfd5e969aa3e033f3282a8a2”, GitTreeState:“clean”, BuildDate:“2022-08-23T17:44:59Z”, GoVersion:“go1.19”, Compiler:“gc”, Platform:“linux/amd64”}

Kustomize Version: v4.5.7

Server Version: version.Info{Major:“1”, Minor:“26”, GitVersion:“v1.26.3”, GitCommit:“9e644106593f3f4aa98f8a84b23db5fa378900bd”, GitTreeState:“clean”, BuildDate:“2023-03-30T06:34:50Z”, GoVersion:“go1.19.7”, Compiler:“gc”, Platform:“linux/amd64”}

以下是复制官网的Linux(x86-64)下载命令,安装1.25.0
需要root权限,没有的参考官网

curl -LO https://dl.k8s.io/release/v1.25.0/bin/linux/amd64/kubectlsudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kustomize

虽然kubectl中有kustomize,版本不对,要单独下载,根据官网要求至少5.0.0

kustomize下载地址

kustomize version

v5.0.0

根据系统选择,笔者选择的是kustomize_v5.0.0_linux_amd64.tar.gz

tar -zxvf kustomize_v5.0.0_linux_amd64.tar.gzchmod +x ./kustomizesudo mv kustomize /usr/local/bin

docker

docker version

Client: Docker Engine - Community

Version: 23.0.2

API version: 1.42

Go version: go1.19.7

Git commit: 569dd73

Built: Mon Mar 27 16:16:30 2023

OS/Arch: linux/amd64

Context: default


Server: Docker Engine - Community

Engine:

Version: 23.0.2

API version: 1.42 (minimum version 1.12)

Go version: go1.19.7

Git commit: 219f21b

Built: Mon Mar 27 16:16:30 2023

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.6.20

GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38

runc:

Version: 1.1.5

GitCommit: v1.1.5-0-gf19387a

docker-init:

Version: 0.19.0

GitCommit: de40ad0

python

python3

步骤

第一步 克隆仓库

克隆笔者github上源码modify_kubeflow_manifest

  • errimages.txt是放置不能拉取的镜像
  • erim.py是按照errimages.txt修改example/kustomization.yaml和产生pullimages.txt的python程序。
  • kind-ingress-config.yaml是用kind创建节点的配置文件
  • ori_kustomization.yaml是kubeflow git官网原本example/kustomization.yaml的配置文件
  • pull_and_kind_load_dockerimages.sh是要执行的Shell文件

第二步 添加失败镜像

只要填写errimages.txt,也就是将不能拉取的gcr.io、quay.io、ghcr.io开头的镜像复制进去

原本是笔者不能拉取的镜像列表

还有不能拉取的加入errimages.txt,查看上面的加速镜像的git网站,手动更改一下erim.py代码(修改改变仓库名的逻辑)

第三歩 复制文件

解压manifests.tar.gz(这是kubeflow manifests的源文件)

将这里的除README.md、.git、屏幕截图、压缩包外的文件复制到解压的官网manifests目录下

第四步 执行.sh程序

注意:在运行前,如果对挂载、节点等有要求,先修改kind-ingress-config.yaml(里面笔者挂载了本地的jupyterlab的目录)

注意:用docker拉取镜像到本地和用kind载入本地镜像到集群已经注释了。(因为速度没快多少。)

注意:要在解压后的官网manifests目录下(复制好上一步的文件)执行。(当然也可以自己克隆官网,在复制文件到它目录下面,再执行。)

这步包括:修改宿主机打开文件个数限制----导出镜像列表,更改配置文件(example/kustomization.yaml)----建立集群(一个节点)----启动(初始化)kubeflow(无限循环,不会结束,可以手动结束)

在解压的官网manifests目录下运行pull_and_kind_load_dockerimage.sh

第五步 补充

根据下面的Warning进行补充操作

Warning

warning1 解决没有auth(namespace)的问题

如果没有auth(namespace),重新用这条命令加载,在打开另一个终端输入

kustomize build common/dex/overlays/istio | kubectl apply -f -

warning2 解决后面出现的镜像拉取镜像的问题

记得如果kubeflow-user-example-com 或者 auth (两个都是namespace) 中的pod 镜像加载错误,就手动修改(添加.m.daocloud)

因为可能后面加载的pod,image还是拉取国外

kubectl edit pod -n namespace podname

warning3 临时映射界面端口的问题

踩坑踩坑,注意是对ingressgateway服务(svc)进行端口映射,不是对pod…

临时端口映射,登录浏览器(127.0.0.1:8080)输入账号user@example.com 输入密码12341234

kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80

warning4 添加本地目录到持久卷的问题

补充

从本地(宿主机)将目录挂载到集群中,笔者要用到本地的jupyterlab目录的代码和数据,所以声明到pvc中,使用时引用pvc的name。

kubectl create -f data-pv-hostpath.yaml (其中持久卷挂载的源目录是/home,和上面kind-ingress-config.yaml中的containerPath: /home要一样)

kubectl create -f data-pvc.yaml (持久卷声明,使用了上面的持久卷,当要使用的时候就将它的name声明在volumns中)

安装成功

所有运行的pod

kubeflow界面

使用kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80进行临时端口映射,访问本地浏览器127.0.0.1:8080,出现界面。

Create a new notebook

步骤


定义最小CPU和内存

定义工作空间空白卷大小(建议默认)

挂载本地路径的数据卷

添加已有的volume
使用Custom类型

数据卷的相关配置文件


在使用数据卷声明前

先创建笔者github中的data-pv-hostpath.yaml和data-pvc.yaml。
然后在claimName填上data-pvc.yaml中的name。
最后LAUNCH

kubectl create -f data-pv-hostpath.yamlkubectl create -f data-pvc.yaml
转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1096190.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【kubeflow国内单机本地安装(官网、kind、wsl2、jupyter notebook创建)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2