Kubernetes 如何使用子网的IP创建L7内部入口

Kubernetes 如何使用子网的IP创建L7内部入口,kubernetes,google-kubernetes-engine,gke-networking,Kubernetes,Google Kubernetes Engine,Gke Networking,因此,我们在europe-west3上有一个VPC主机项目,在europe-west1上有一个服务项目。我正在尝试创建一个具有多个节点端口服务的L7入口 我创建的集群使用来自主机项目的共享VPC网络。 所以我在共享VPC中有3个子网 myapp节点子网 myapp pods子网 myapp内部lb子网 当我尝试创建入口时。前端lb使用myapp节点子网中的一个IP,但我希望它应该使用myapp内部lb子网 -------部署-------- -------服务-------- -------入口

因此,我们在europe-west3上有一个VPC主机项目,在europe-west1上有一个服务项目。我正在尝试创建一个具有多个节点端口服务的L7入口

我创建的集群使用来自主机项目的共享VPC网络。 所以我在共享VPC中有3个子网

  • myapp节点子网
  • myapp pods子网
  • myapp内部lb子网
  • 当我尝试创建入口时。前端lb使用myapp节点子网中的一个IP,但我希望它应该使用myapp内部lb子网

    -------部署--------

    -------服务--------

    -------入口--------

    基本上我想要这样的东西,但有多个后端服务和HTTPS

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: myapp-lb
      name: myapp-lb
      namespace: myapp-dev
      annotations:
        cloud.google.com/load-balancer-type: "Internal"
        networking.gke.io/internal-load-balancer-allow-global-access: "true"
        networking.gke.io/internal-load-balancer-subnet: "myapp-internal-lb-subnets"
    spec:
      type: LoadBalancer
      loadBalancerIP: XX.XX.XX.XX(IP I assign)
      ports:
      - name: myapp-lb
        port: 80
        protocol: TCP
        targetPort: 8080
      selector:
        app: myapp-web
    

    恐怕这目前是不可能的。您是否考虑过在所需区域中创建一个内部负载平衡器,该区域将指向集群中的
    nginx入口
    控制器?您可以在这两个文档中查找更多参考资料。恐怕这目前是不可能的。您是否考虑过在所需区域中创建一个内部负载平衡器,该区域将指向集群中的
    nginx入口
    控制器?您可以在这两个文档中查找更多参考。
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: myapp-web-service
      name: myapp-web-service
      namespace: myapp-dev
    spec:
      ports:
      - name: myapp-web-service
        port: 8080
        protocol: TCP
        targetPort: 80
      selector:
        app: myapp-web
      type: NodePort
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: myapp-api-service-1
      name: myapp-api-service-1
      namespace: myapp-dev
    spec:
      ports:
      - name: myapp-api-service-1
        port: 8081
        protocol: TCP
        targetPort: 8080
      selector:
        app: myapp-api-1
      type: NodePort
    
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: myapp-ingress
      namespace: myapp-dev
      annotations:
        kubernetes.io/ingress.regional-static-ip-name: "my-app-static-ip-1"
        kubernetes.io/ingress.class: "gce-internal"
    spec:
      rules:
      - http:
          paths:
          - path: /*
            backend:
              serviceName: myapp-web-service
              servicePort: 80
          - path: /api-service/*
            backend:
              serviceName: myapp-api-service-1
              servicePort: 8081
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: myapp-lb
      name: myapp-lb
      namespace: myapp-dev
      annotations:
        cloud.google.com/load-balancer-type: "Internal"
        networking.gke.io/internal-load-balancer-allow-global-access: "true"
        networking.gke.io/internal-load-balancer-subnet: "myapp-internal-lb-subnets"
    spec:
      type: LoadBalancer
      loadBalancerIP: XX.XX.XX.XX(IP I assign)
      ports:
      - name: myapp-lb
        port: 80
        protocol: TCP
        targetPort: 8080
      selector:
        app: myapp-web