如何手动重新创建 Ingress 部分(后端名称是为 k8s 服务随机生成的)?

How to manually re-create Ingress parts (Backend name is generated randomly for k8s Service)?

我想避免在 GKE 上使用 k8s Ingress,而是通过 Terraform 手动管理所有 proxies/rules/certificates,而不是通过 K8S。但是缺少 link 是我如何获得用于创建 LoadBalancer 后端服务的 k8s 服务名称?它似乎是用随机后缀创建的,所以不可能将它硬编码到 Terraform 配置中。

如果我没理解错的话,听起来你想自己创建负载均衡器(通过 Terraform)而不是通过 K8S ingress 管理它?

我建议看看使用 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。