一般情况下,Nginx Ingress 与后端服务的对接使用的是 HTTP 协议,为保证后端通信安全,您可以通过 Annotation 配置使用 HTTPS 协议对接后端服务器。本文为您介绍如何通过 HTTPS 对接后端服务器。
tls.key
和tls.crt
为例。kubernetes.io/tls
的保密字典。kubectl create secret tls ingress-secret --key tls.key --cert tls.crt
nginx-ingress.yaml
代码如下:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress # 路由规则的名称 annotations: nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # 使用 HTTPS 协议对接后端服务器 spec: ingressClassName: nginx # 指定 Ingress Controller rules: - host: example.com # 转发规则域名 http: paths: - backend: service: name: service-demo # 请求被转发到的目标服务名称 port: number: 80 # 请求被转发到的目标服务开放端口号 path: / # 访问路径 pathType: Prefix # 路径类型:Exact(精确匹配)/Prefix(前缀匹配) tls: - secretName: ingress-secret # 指定 ingress 使用的保密字典名称
kubectl apply -f nginx-ingress.yaml