Kubernetes ingress "kubernetes.io/ingress.class" vs "ingressClassName"



我的Kubernetes入口有以下内容:

ingress:
enabled: true
annotations: 
kubernetes.io/ingress.class: alb
...
...
# -- Defines which ingress controller will implement the resource
ingressClassName: ""

我对";kubernetes.io/ingress.class";以及";ingressClassName&";。

我相信";kubernetes.io/ingress.class";需要匹配AWS ALB入口控制器中定义的入口类。

然而,我对";ingressClassName"?这似乎是一回事。

如有任何澄清,我们将不胜感激。

实际上,两者指的是同一个东西,但kubernetes.io/ingress.class在Kubernetes v1.22+中已被弃用。ingressClassName1.18中引入,因此如果您使用更高版本,则可以使用ingressClassName

在Kubernetes 1.18中添加IngressClass资源和ingressClassName字段之前,Ingress类是用Ingress上的kubernetes.io/ingress.class注释指定的。这个注释从未被正式定义,但得到了Ingress控制器的广泛支持。

Ingress上较新的ingressClassName字段是该注释的替代项,但不是直接等效项。虽然注释通常用于引用应实现Ingress的Ingress控制器的名称,但该字段是对包含附加Ingress配置的IngressClass资源的引用

ingress不推荐使用的注释

你的例子是

ingress:
enabled: true
annotations: 
kubernetes.io/ingress.class: alb

其等效值为className: "nginx"

ingress:
enabled: true
className: "alb" -> ingressClassName

如果你检查ingress模板,它会像这个

ingressClassName: {{ .Values.ingress.className }}

相关内容

  • 没有找到相关文章

最新更新