簡體   English   中英

哪個 Kubernetes 入口“獲勝”(tls 和同一主機的多個入口)?

[英]Which Kubernetes ingress "wins" (tls and multiple ingresses for same host)?

假設我有兩個入口 ingress-aingress-b用於同一主機但路徑不同:

入口-a

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: app-a
  namespace: namespace-a
spec:
  rules:
  - host: myhost.com
    http:
      paths:
      - backend:
          serviceName: app-a
          servicePort: 8080
        path: /path-a
  tls:
  - hosts:
    - myhost.com
    secretName: tls-a

入口-b :

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: app-b
  namespace: namespace-b
spec:
  rules:
  - host: myhost.com
    http:
      paths:
      - backend:
          serviceName: app-b
          servicePort: 8080
        path: /path-b
  tls:
  - hosts:
    - myhost.com
    secretName: tls-b

現在我需要更新證書。 假設我在tls-new 中創建了新的秘密,但只更新ingress-a來指向那個。 兩個入口中的哪一個會獲勝

我想我應該簡單地覆蓋現有的秘密,但我試圖了解入口規則在上述場景中如何工作,其中兩個不同的 tls 秘密被同一主機引用。

Kubernetes 的 NGINX 和 NGINX Plus入口控制器支持可合並的入口類型。

Master 使用nginx.org/mergeable-ingress-type: master聲明。 Master 將處理主機級別的所有配置,包括 TLS 配置以及將應用於整個主機的任何注釋。 在包含主值的唯一主機上只能有一個入口資源。 路徑不能是入口資源的一部分。

Minion 使用nginx.org/mergeable-ingress-type: minion聲明。 Minion 將用於將不同的位置附加到具有 Master 值的入口資源。 不允許 TLS 配置。 只要它們沒有沖突的路徑,就可以為每個 master 應用多個 minion。 如果存在沖突路徑,則將使用在最舊的 minion 上定義的路徑。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress-master
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.org/mergeable-ingress-type: "master"
spec:
  tls:
  - hosts:
    - cafe.example.com
    secretName: cafe-secret
  rules:
  - host: cafe.example.com

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress-coffee-minion
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.org/mergeable-ingress-type: "minion"
spec:
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

minion 不能有 TLS,只有 master 可以有 TLS,你在 master 中更改 TLS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM