google-kubernetes-engine - 如何手动重新创建 Ingress 部件(为 k8s 服务随机生成后端名称)?
问题描述
我想避免在 GKE 上使用 k8s Ingress,而是通过 Terraform 手动管理所有代理/规则/证书,而不是通过 K8S。但是缺少的链接是我将如何获得用于创建 LoadBalancer 后端服务的 k8s 服务名称?它似乎是使用随机后缀创建的,因此无法将其硬编码为 Terraform 配置。
解决方案
如果我理解正确,听起来您想自己(通过 Terraform)创建负载均衡器,而不是通过 K8S 入口对其进行管理?
我建议看看将独立 NEG 与 GKE服务一起使用。NEG(这是一个命名资源)可以是 LoadBalancer 的后端,并且可以映射到支持 Service 的 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 负载均衡器,其后端使用 NEG,并且您将拥有 NEG 的名称,因为您在创建服务资源时将其传入。不涉及 Ingress。
推荐阅读
- python - 如何通过python应用为列中的每个值分配不同的颜色
- azure - 如何修复 AKS for Apache Ignite 上的 CrashBackLoopOff 问题?
- javascript - 查找纯文本中的链接并将其转换为超链接
- python - 如何从视频中提取特征并将特征存储到单个 H5 文件中
- rest - 如何在通过surgemail调用rest api时删除.htaccess身份验证
- python - 在测试功能中使用夹具
- javascript - 如果行数大于 x,Github 会阻止提交更改
- java - 在 Java 应用程序中的硬编码端点上返回 HTTP 200
- javascript - JavaScript:页面加载时隐藏滚动条
- python - Python:将 json 发布到 MySql 数据库