如果您想将 Ingress Controller 设置为默认控制器,请取消注释 ingressclass.kubernetes.io/is-default-class。 将此注释设置为 true 后,所有未指定 ingressClassName 字段的新 Ingress 都将分配此 IngressClass。
注意:如果没有 IngressClass 资源,Ingress Controller 将无法启动。
cat ingress-class.yaml apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: nginx annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: nginx.org/ingress-controller
或
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: labels: app.kubernetes.io/component: controller name: nginx-example annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: k8s.io/ingress-nginx
默认 IngressClass
您可以将特定的 IngressClass 标记为集群的默认值。 在 IngressClass 资源上将 ingressclass.kubernetes.io/is-default-class 注释设置为 true 将确保未指定 ingressClassName 字段的新 Ingress 将被分配此默认 IngressClass。
注意:如果您有多个 IngressClass 标记为集群的默认值,准入控制器会阻止创建未指定 ingressClassName 的新 Ingress 对象。 您可以通过确保在集群中最多将 1 个 IngressClass 标记为默认值来解决此问题。
有一些入口控制器,在没有定义默认 IngressClass 的情况下工作。 例如,可以使用标志--watch-ingress-without-class 配置 Ingress-NGINX 控制器。 但建议指定默认的 IngressClass:
请登录之后再进行评论