我已经安装了Elyra(这是JupyerLab一些以AI为中心的扩展,包括用于创建Kubeflow管道的可视化编辑器)和KubeFlow管道并行在一个KIND(Docker中的库伯内特斯)集群上。
首先,我安装了这里记录的Kubeflow管道
导出PIPELINE_VERSION=1.4.1
kubectl应用-k"github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=$PIPELINE_VERSION"
kubectl等待条件=建立--timeout=60s crd/applications.app.k8s.io
kubectl应用-k"github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=$PIPELINE_VERSION"
然后,我安装了这里记录的NGINX入口控制器
Kubectl应用-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml
最后,我使用以下步骤安装了Elyra/JupyterLab
因此,我需要的所有UI都已经创建了相应的服务:
k get svc
NAME TYPE CLUSTER-IPEXTERNAL-IPPORT(S)AGE
elyra-ai NodePort10.96.84.318888:32111/TCP94m
kubernetes ClusterIP10.96.0.1443/TCP105m
k get svc-n kubeflow|grep ml-pieline-用户界面
ml-pieline-用户界面ClusterIP10.96.132.23380/TCP105m
因此,我创建了一个ingres. yaml来启用JupyterLab/Elyra。
如您所见,我正在添加许多路径条目,例如login、elyra、git、lsp、lab、kernelspes、静态、…
所以现在我被困在二维空间里了。
Elyra管道编辑器可以通过ClusterIP访问Kubeflow管道endpoint,但最好也能访问Kubeflow管道UI…
最简单的方法是使用虚拟主机。所以在DNS或 /etc/hosts文件中添加例如:
127.0.0.1elyra.local.host
127.0.0.1kubeflow.local.host
然后两个service. yaml变得简单,对于Elyra/JupyteLab:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: elyra-ingress
spec:
rules:
- host: "elyra.local.host"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: elyra-ai
port:
number: 8888
对于Kubeflow管道:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kfp-ingress
spec:
rules:
- host: "kubeflow.local.host"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: ml-pipeline-ui
port:
number: 80