[在设置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
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 }}
入口和服务还不完整,仅强调了重要部分。