所以我们在 europe-west3 上有一个 VPC 宿主项目,在 europe-west1 上有一个服务项目。我正在尝试创建具有多个 nodePort 服务的 L7 Ingress。
我创建的集群使用来自宿主项目的共享 VPC 网络。所以我在共享 VPC 中有 3 个子网
- 我的应用程序节点子网
- myapp-pods-子网
- 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