我想避免在GKE上使用K8S入口,而是通过Terraform手动管理所有的代理/规则/证书,而不是通过k8s。但是缺少的一环是如何获得用于创建LoadBalancer后端服务的k8s服务名称?它似乎是用随机后缀创建的,所以不可能将它硬编码到Terraform配置中。
发布于 2021-09-04 10:06:14
如果我理解正确的话,听起来你想自己创建负载均衡器(通过Terraform),而不是通过K8S入口来管理它?
我建议您考虑一下如何使用standalone NEGs with GKE服务。NEG (命名资源)可以是LoadBalancer的后端,并且可以映射到支持服务的pod端点。您将创建一个K8S服务资源,例如:
apiVersion: v1
kind: Service
metadata:
name: NEG_DEMO_SVC
annotations:
cloud.google.com/neg: '{"exposed_ports": {"80":{"name": "NEG_NAME"}}}'
spec:
type: ClusterIP
selector:
run: NEG_DEMO_APP # Selects Pods labelled run: NEG_DEMO_APP
ports:
- port: 80
protocol: TCP
targetPort: 9376然后,您将能够创建一个GCE loadbalancer with a backend that uses the NEG,并且您将拥有NEG的名称,因为您将在创建服务资源时传递该名称。不涉及Ingress。
https://stackoverflow.com/questions/69037233
复制相似问题