【问题标题】:Multiple ingress-nginx controllers - how does the class annotation work?多个 ingress-nginx 控制器 - 类注释如何工作?
【发布时间】:2021-03-09 20:46:55
【问题描述】:

这个https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/ 说:

当运行多个 ingress-nginx 控制器时,它只会处理一个未设置的类 如果其中一个控制器使用默认的 --ingress-class 值,则注释

  1. 这个类注释集在哪里,它是如何工作的?
  2. 什么是默认的 --ingress-class 值?

【问题讨论】:

    标签: kubernetes-ingress


    【解决方案1】:

    1.这个类注释集在哪里,它是如何工作的?

    ingress class 注释是在定义入口对象时设置的。这一概念为您提供了一种多控制器共存的方式,而不是试图竞相满足一个特定的入口对象。

    2。什么是默认的 --ingress-class 值?

    NGINX Ingress Controller 的默认 Ingress 类是nginx,这意味着它只处理class 设置为nginx 的配置资源。您可以通过-ingress-class 命令行参数自定义类。

    参考:Configuring Ingress Class

    所以为了有不同的入口类,如下例所示:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: hello-world
      annotations:
        kubernetes.io/ingress.class: "nginx-controller-1"
    spec:
      rules:
      - http:
          paths:
          - backend:
              serviceName: hello-world
              servicePort: 8080
    

    您需要为 nginx 控制器定义相同的类,以满足该入口:

    spec:
      template:
         spec:
           containers:
             - name: nginx-ingress-internal-controller
               args:
                 - /nginx-ingress-controller
                 - '--ingress-class=nginx-controller-1'
                 - '--configmap=ingress/nginx-ingress-internal-controller'
    

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 2021-02-15
      • 2021-06-17
      • 2021-07-21
      • 2018-08-31
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多