Итак, у нас есть хост-проект VPC на европе-западе3 и сервисный проект на европе-западе1. Я пытаюсь создать L7 Ingress с несколькими службами nodePort.
Созданный мной кластер использует общую сеть VPC из основного проекта. так что у меня есть 3 подсети в общем VPC
- myapp-node-subnets
- myapp-pods-подсети
- myapp-internal-lb-подсети
Когда пытаюсь создать вход. Интерфейс lb использует один из IP-адресов в myapp-node-subnets, но я хочу, чтобы он использовал 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
nginx-ingress
в вашем кластере? Вы можете найти в этих двух документах дополнительную справочную информацию gke- ilb, nginx-ingres-internal. - person Dawid Kruk   schedule 04.11.2020