📅  最后修改于: 2023-12-03 14:44:35.841000             🧑  作者: Mango
nginx.ingress.kubernetes.io 是 Kubernetes Ingress 中可用的一组标记,用于在 Nginx Ingress Controller 中指定配置。
在这里,我们将提供一些常见的配置片段和用例。
如果你没有指定任何后端服务,Nginx Ingress Controller 将会使用默认后端服务。你可以使用 nginx.ingress.kubernetes.io/default-backend 配置片段来指定默认后端服务。
nginx.ingress.kubernetes.io/default-backend: <namespace>/<service name>
例如,下面的配置指定默认后端服务为 default namespace 中的 default-http-backend:
nginx.ingress.kubernetes.io/default-backend: default/default-http-backend
你可以使用 nginx.ingress.kubernetes.io/ssl-redirect 配置片段来实现 SSL 重定向。该标记将重定向 HTTP 请求到 HTTPS。你还可以使用 nginx.ingress.kubernetes.io/secure-backends 来指定 SSL 后端服务。
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/secure-backends: "true"
如果你需要设置证书,则可以使用 tls 选项。
tls:
- secretName: <secret name>
hosts:
- <host name>
例如,下面的配置使用 SSL 重定向,并将证书应用到主机名为 www.example.com 的 Ingress:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: main-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- secretName: example-tls
hosts:
- www.example.com
rules:
- host: www.example.com
http:
paths:
- path: /
backend:
serviceName: web
servicePort: 80
你可以使用 nginx.ingress.kubernetes.io/proxy-protocol 配置片段来启用 PROXY 协议。该协议可用于在负载均衡器和后端服务器之间传递客户端的真实 IP 地址。
nginx.ingress.kubernetes.io/proxy-protocol: "true"
例如,下面的配置启用了 PROXY 协议,并将请求转发到后端服务中的 /api。注意到我们使用了 serviceName 和 servicePort 指定了后端服务的名称和端口号。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: main-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-protocol: "true"
spec:
rules:
- host: www.example.com
http:
paths:
- path: /api
backend:
serviceName: api-service
servicePort: 80
总之,我们可以使用 nginx.ingress.kubernetes.io 配置片段来控制 Nginx Ingress Controller 的行为和性能。