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

问题描述

因此,我们在europe-west3上有一个VPC宿主项目,在europe-west1上有一个服务项目。我正在尝试创建具有多个nodePort服务的L7 Ingress。

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

  1. myapp-node-subnets
  2. myapp-pods-子网
  3. myapp-internal-lb-subnets

当我尝试创建入口时。前端lb使用myapp-node-subnet中的IP之一,但我想要的是它应该使用myapp-internal-lb-subnets。

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

apiVersion: apps/v1
kind: Deployment
Metadata:
  labels:
    app: myapp-web
  name: myapp-web
  namespace: myapp-dev
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp-web
  template:
    Metadata:
      labels:
        app: myapp-web
    spec:
      containers:
          - name: myapp-web-dev
            image: 'docker-registry'
            imagePullPolicy: Always
            ports:
             - containerPort: 8080

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

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

------- Ingress --------

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

基本上,我想要这样的东西,但是具有多个后端服务和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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)