我的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+中已被弃用。ingressClassName
在1.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 }}