1

我已经在 KIND(Kubernetes In Docker)集群上并行安装了 Elyra(它是 JupyerLab + 一些以 AI 为中心的扩展,包括用于创建 Kubeflow 管道的可视化编辑器)和 KubeFlow 管道。

首先,我安装了 Kubeflow Pipelines,如此处所述

export PIPELINE_VERSION=1.4.1
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=$PIPELINE_VERSION"
kubectl wait --for 条件=建立 --timeout=60s crd/applications .app.k8s.io
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=$PIPELINE_VERSION"

然后,我安装了 NGINX 入口控制器,如此处所述

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml

最后,我使用以下步骤安装了 Elyra/JupyterLab

所以我需要的所有用户界面都已经创建了相应的服务:

k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elyra-ai NodePort 10.96.84.31 8888:32111/TCP 94m
kubernetes ClusterIP 10.96.0.1 443/TCP 105m

k get svc -n kubeflow |grep ml-pipeline-ui
ml-pipeline-ui ClusterIP 10.96.132.233 80/TCP 105m

因此,我创建了一个ingress.yaml以使 JupyterLab/Elyra 能够被访问。

如您所见,我添加了许多路径条目,例如 login、elyra、git、lsp、lab、kernelspecs、static、...

所以现在我被困在两个维度上。

  1. 我不想为我正在安装的每个 JupyterLab 扩展添加路径条目
  2. 我找不到使 Kubeflow Pipelines UI 也可以从集群外部访问的方法

虽然 Elyra Pipeline Editor 可以通过 ClusterIP 访问 Kubeflow Pipelines Endpoint,但也可以访问 Kubeflow Pipelines UI...

4

1 回答 1

1

最简单的方法是使用虚拟主机。因此,在 DNS 或 /etc/hosts 文件中添加例如:

127.0.0.1 elyra.local.host
127.0.0.1 kubeflow.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
于 2021-04-14T13:30:31.417 回答