这里主要介绍如何构建这个项目的。主要分为几步:替换镜像,重新打标签上传到私有镜像仓库,生成安装文档。
运行命令:
python pre-install.py
python install.py
通过 kustomize build --load_restrictor=none
生成镜像目标yaml 文件
替换镜像主要是 replace.py
实现,主要从 deployment, statefulset 找到镜像字段,重新打标签替换成新的镜像仓库地址,push上传到私有镜像仓库
运行python install.py
安装文件。
patch文件主要针对官方yaml安装使用过程中的一些问题打的补丁
auth.yaml
主要用于创建用户自己的账号,用户名[email protected]
,密码password
主要是由于istio的JWT策略用到第三方鉴权,有些k8s版本不支持,可以将isito中的 third-party-jwt
改成 first-party-jwt
,详细见cluster-local-gateway.yaml
,istio-ingressgateway.yaml
,istiod.yaml
。
主要是由于jupyter-web-app的安全验证策略导致的,详细见kubeflow/kubeflow#5803
解决方案环境变量加上APP_SECURE_COOKIES=false
,修改见jupyter-web-app.yaml
因为 kind 使用的 containerd 作为容器运行时,而 argo workflow 默认 Workflow Executors使用的是 docker ,他会尝试挂载宿主机的 docker.sock
,如果不存在就会报错,这里尝试将workflow-controller-configmap
的containerRuntimeExecutor
改为 k8sapi
更换 Workflow Executors 来解决。详细见:https://argoproj.github.io/argo-workflows/workflow-executors/