📜  nginx.ingress.kubernetes.io 配置片段:(1)

📅  最后修改于: 2023-12-03 14:44:35.841000             🧑  作者: Mango

nginx.ingress.kubernetes.io 配置片段

nginx.ingress.kubernetes.io 是 Kubernetes Ingress 中可用的一组标记,用于在 Nginx Ingress Controller 中指定配置。

在这里,我们将提供一些常见的配置片段和用例。

1. 配置默认后端

如果你没有指定任何后端服务,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
2. 配置 SSL

你可以使用 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
3. 配置代理协议

你可以使用 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 的行为和性能。