使用 terraform 从外部创建的负载均衡器获取 IP
Get IP from externally created load balancers with terraform
我正在使用 terraform 模块来创建 GKE 集群。同一个模块调用执行应用程序 helm install
的配置器。
helm chart 创建负载均衡器。 Terraform 模块不知道负载均衡器,因此分配的 IP 地址不能在模块中重复使用。
问题:
如何使用负载均衡器的 IP 创建 DNS 条目并获取证书?
我认为这不是奇特的用例,但我还没有找到实现它的合适方法。
这道题的正确答案是:
kubernetes_service的数据源。
Data Source的概念正是解决了这里的问题。
Appart 从上面的 kubernetes_service 数据源我也可以 运行 一个 shell 脚本与 kubectl 查询 ip 并使用 External Data Source 作为通用解决方案。
从那里我可以在 dns 提供程序和 acme 提供程序中使用 IP 地址来创建 dns 条目和证书。
在我的例子中,云提供商没有公开 load_balancer_ip
所以我不得不通过 helm 创建服务 type: NodePort
并直接通过 terraform 手动创建负载均衡器。
我想这是在 由于这个特定原因而无法工作的情况下的有效解决方法,并且 helm chart 提供了将服务部署为不同 type
的方法。
我正在使用 terraform 模块来创建 GKE 集群。同一个模块调用执行应用程序 helm install
的配置器。
helm chart 创建负载均衡器。 Terraform 模块不知道负载均衡器,因此分配的 IP 地址不能在模块中重复使用。
问题:
如何使用负载均衡器的 IP 创建 DNS 条目并获取证书?
我认为这不是奇特的用例,但我还没有找到实现它的合适方法。
这道题的正确答案是:
kubernetes_service的数据源。
Data Source的概念正是解决了这里的问题。
Appart 从上面的 kubernetes_service 数据源我也可以 运行 一个 shell 脚本与 kubectl 查询 ip 并使用 External Data Source 作为通用解决方案。
从那里我可以在 dns 提供程序和 acme 提供程序中使用 IP 地址来创建 dns 条目和证书。
在我的例子中,云提供商没有公开 load_balancer_ip
所以我不得不通过 helm 创建服务 type: NodePort
并直接通过 terraform 手动创建负载均衡器。
我想这是在 type
的方法。