【问题标题】:configuring ingress for dask-jupyter helm chart deployment为 dask-jupyter helm chart 部署配置入口
【发布时间】:2022-01-06 00:49:46
【问题描述】:

我在 k8s 集群上部署了一个单用户 dask-jupyter helm chart (https://github.com/dask/helm-chart/tree/main/dask)。

$ helm ls

NAME    NAMESPACE       REVISION    UPDATED                                 STATUS      CHART           APP VERSION
pangeo  wifire-quicfire 6           2021-11-22 15:29:38.809774 -0800 PST    deployed    dask-2021.11.2  2021.11.2  

$ kubectl get svc pangeo-dask-jupyter pangeo-dask-scheduler

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
pangeo-dask-jupyter     ClusterIP   10.105.206.19   <none>        80/TCP            20h
pangeo-dask-scheduler   ClusterIP   10.107.121.88   <none>        8786/TCP,80/TCP   20h

我正在尝试公开一个外部 IP。我的 k8s 不允许使用 LoadBalancer 服务,所以我尝试启用入口。

为了暴露一个外部 ip,我正在尝试按照这个模板启用入口: https://github.com/dask/helm-chart/blob/main/dask/templates/dask-jupyter-ingress.yaml

这是我的 values.yaml 的入口部分:

  ingress:
    enabled: true  
    tls:   
      - hosts: 
        - wifire-commons-pangeo-jupyter.nrp-nautilus.io
        secretName: dask-jupyter-tls
    hostname: wifire-commons-pangeo-jupyter.nrp-nautilus.io  # Ingress hostname.
    annotations:  
      kubernetes.io/ingress.class: haproxy

当我运行更新时,我的错误如下: $ helm upgrade pangeo -f values.yaml dask/dask

错误:升级失败:dask/templates/dask-jupyter-ingress.yaml 上的 YAML 解析错误:将 YAML 转换为 JSON 时出错:yaml:第 19 行:此上下文中不允许映射值

有人对配置 YAML 以进行入口有任何建议吗?

【问题讨论】:

    标签: jupyter-notebook kubernetes-helm dask


    【解决方案1】:

    如果您仔细检查图表文档,您会发现您的values.yaml 不正确。 要为您正在使用的图表启用入口,请在 values.yaml 中使用以下内容

    dask:
      webUI:
        ingress:
          enabled: true
          tls: true
          secretName: dask-jupyter-tls
          hostname: wifire-commons-pangeo-jupyter.nrp-nautilus.io
          annotations:
            kubernetes.io/ingress.class: haproxy
    

    这将生成正确的 Ingress 为:

    # Source: ingresscontroller/charts/dask/templates/dask-scheduler-ingress.yaml
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: dask-scheduler
      labels:
        app: dask-scheduler
        chart: "dask-4.5.7"
        release: "dask"
        heritage: "Helm"
      annotations:
        kubernetes.io/ingress.class: haproxy
    spec:
      tls:
        - hosts:
          - "wifire-commons-pangeo-jupyter.nrp-nautilus.io"
          secretName: dask-jupyter-tls
      rules:
      - host: wifire-commons-pangeo-jupyter.nrp-nautilus.io
        http:
          paths:
          - backend:
              serviceName: dask-scheduler
              servicePort: 80
    

    【讨论】:

    • 注意我使用的是图表版本 dask-2021.12.0。
    • 运行您建议的 values.yaml 时,我没有看到生成的 Ingress。但是,当删除第一行并使用以下 ``` webUI: ingress: enabled: true tls: true secretName: dask-scheduler-tls hostname: wifire-commons-pangeo-jupyter.nrp-nautilus.io annotations: kubernetes. io/ingress.class: haproxy ``` 并运行 $ helm upgrade pangeo -f values.yaml dask/dask --namespace wifire-quicfire 我收到此错误:``` 错误:升级失败:无法识别“”:否匹配版本“extensions/v1beta1”中的种类“Ingress”```
    • 你的 Kubernetes 版本是多少?
    • $ kubectl 版本Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:32:32Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"linux/amd64"}
    • 掌舵版本 3.7.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多