常见的Ingress annotations及其作用
Ingress annotations在Kubernetes中扮演着重要角色,特别是当与Ingress控制器(如Nginx, Traefik等)结合使用时。Annotations允许用户在Ingress资源上附加额外的配置信息,这些信息可以被Ingress控制器用来修改负载均衡器、代理服务器或其他网络设备的行为。
以下是一些常见的Ingress annotations及其作用:
-
kubernetes.io/ingress.class:
- 指定应该使用哪个Ingress控制器来处理此Ingress资源。例如,如果你集群中有多个Ingress控制器(如Nginx和Traefik),你可以使用这个annotation来指定使用哪一个。
-
nginx.ingress.kubernetes.io/rewrite-target:
- 对于Nginx Ingress控制器,此annotation用于重写URL的路径部分。例如,如果你希望将所有到达
/app
路径的请求重定向到/
,你可以使用这个annotation。
- 对于Nginx Ingress控制器,此annotation用于重写URL的路径部分。例如,如果你希望将所有到达
-
nginx.ingress.kubernetes.io/ssl-redirect:
- 指示Nginx Ingress控制器将所有HTTP请求重定向到HTTPS。通常用于强制HTTPS。
-
nginx.ingress.kubernetes.io/affinity:
- 设置客户端IP的会话保持策略,以确保来自同一客户端的请求被路由到同一个后端Pod。
-
nginx.ingress.kubernetes.io/configuration-snippet:
- 允许你在Nginx的配置文件中插入自定义的片段。这可以用于实现Nginx的某些高级功能,这些功能不能通过标准的Ingress资源字段或annotations来实现。
-
nginx.ingress.kubernetes.io/force-ssl-redirect:
- 类似于
ssl-redirect
,但更为严格。它会强制将所有HTTP请求重定向到HTTPS,并拒绝任何非HTTPS的请求。
- 类似于
-
traefik.ingress.kubernetes.io/router.entrypoints:
- 对于Traefik Ingress控制器,此annotation用于指定入口点(即监听的网络地址和端口)。
-
traefik.ingress.kubernetes.io/router.middlewares:
- 允许你在Traefik Ingress上附加中间件,以处理诸如重定向、重写、认证等任务。
-
cert-manager.io/cluster-issuer:
- 当使用cert-manager来自动管理TLS证书时,此annotation指定了应该使用哪个ClusterIssuer来签发证书。
-
haproxy.org/ingress.class:
- 对于HAProxy Ingress控制器,类似于
kubernetes.io/ingress.class
,用于指定Ingress类。
- 对于HAProxy Ingress控制器,类似于
-
haproxy.org/path-rewrite:
- 在HAProxy Ingress控制器中,用于重写请求的路径。
这些annotations的具体可用性和行为可能因Ingress控制器的版本和配置而异。在使用之前,建议查阅相应Ingress控制器的官方文档以获取最准确的信息。此外,随着Kubernetes和Ingress控制器生态系统的不断发展,新的annotations可能会不断被引入。
本文来自博客园,作者:dashery,转载请注明原文链接:https://www.cnblogs.com/ydswin/p/18097824