Helm Chart ServicePort和带有Https的入口

问题描述 投票:1回答:1

[在设置Ingress并使用Helm 3中的Deployment和Service资源进行映射时,使用https进行Web应用程序的配置应该是什么?

我应该在Service.ports下定义https端口和名称,还是只更改Service.Port名称和端口?或使用TLS已经涵盖了这一点?

   ports:
      port: {{ .Values.service.port }}
      targetPort: 80
      protocol: TCP
      name: http

      name:https
      port:443

Service.yaml

  spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80
      protocol: TCP
      name: http
  selector:
    app.kubernetes.io/name: {{ include "road-dashboard.name" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}

Ingress.yaml

  ingress:
  enabled: false
  annotations: 
    kubernetes.io/ingress.class: traefik
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: chart-example.local
      paths: []
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local



    kubectl get ingress

    NAME                        HOSTS   ADDRESS   PORTS   AGE
    ingress-traefik-dashboard   *                 80      42h
kubernetes-helm kubernetes-ingress
1个回答
3
投票

Tls设置是通过入口完成的。因此,您需要将入口重定向到您的服务。您无需在服务中创建https端口,这是入口的工作。

您的配置将是这样:

入口:

rules:
 - host: example.com
   http:
    paths:
    - path: /api($|/)(.*)
      backend:
        serviceName: "{{ .Release.Name }}-api-service"
        servicePort: {{ .Values.service.port }}

服务:

metadata:
  name: "{{ .Release.Name }}-api-service"
spec:
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80
      name: http
  type: {{ .Values.service.type }}

入口和服务还不完整,仅强调了重要部分。

© www.soinside.com 2019 - 2024. All rights reserved.