6

GKE の k8s に複数の MSA があります。それぞれが次のような個別のサブドメインにあります。

  • msa1.example.com
  • msa2.example.com

私は単一のイングレスでそれを持っています:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: main-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: lalala-ip-1
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  - hosts:
    - msa1.example.com
    secretName: msa1-tls
  backend:
    serviceName: sink
    servicePort: 80
  rules:
  - host: msa1.example.com
    http:
      paths:
      - path: /.well-known/*
        backend:
          serviceName: letsencrypt
          servicePort: 80
      - path: /*
        backend:
          serviceName: lalala
          servicePort: 80
  - host: msa2.example.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: lalala2
          servicePort: 80

...そしてすべてがいいです。

問題は、各 MSA を別々のファイルに入れたいということです。

問題はこのkubernetes.io/ingress.global-static-ip-name: lalala-ip-1行です。私が2つのイングレスでそれを持っている場合、最初に開始されたものだけがIPにバインドされますが、他のものはバインドされません.

2 つのイングレス間で GKE イングレス コントローラの IP を共有する方法はありますか?

4

3 に答える 3

9

これを回避するには、クラスターで独自の nginx-ingress コントローラーを実行し、LoadBalancer サービス タイプを介して公開します。次に、イングレス用に1つのIPを持ち、アノテーションを追加することでnginxコントローラーを介してすべてのイングレスを提供できますkubernetes.io/ingress.class: "nginx"

参考:https ://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/

于 2018-02-28T07:41:29.050 に答える