1

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

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

  1. 我的应用程序节点子网
  2. myapp-pods-子网
  3. myapp-internal-lb-subnets

当我尝试创建入口时。前端 lb 使用 myapp-node-subnets 中的 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

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

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
4

0 回答 0