首页 文章

kubernetes gke multiple ingresses single global ip

提问于
浏览
2

我在GKE上的k8上有多个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 行 . 如果我在两个入口中有它只有第一次启动是有限的IP,但其他没有 .

有没有办法在两个入口之间共享GKE入口控制器上的IP?

2 回答

  • 5

    解决它的方法可能是在您的集群中运行您自己的nginx-ingress控制器并通过LoadBalancer服务类型公开它 . 那么你的入口就有1个IP,并且能够通过添加注释来通过nginx控制器为所有入口提供服务 kubernetes.io/ingres.class: nginx

  • 1

    确认我的评论:

    Only one resource at a time can use a static external IP address.
    

    https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address

相关问题