如何通过 Terraform 管理多个 kubernetes 集群?

Ste*_* K. 4 kubernetes google-kubernetes-engine terraform

我想使用 Terraform 在 Google Kubernetes Engine 的几个 k8s 集群中创建一个秘密。

我知道我可以在“kubernetes”提供程序中使用“host”、“token”和其他一些参数,但是我只能描述这些参数一次,并且我不知道如何在terraform文件中连接到另一个集群。

我的问题是如何通过 Terraform 在多个 k8s 集群中创建秘密(或执行其他操作)。也许您知道 github 上的一些工具或其他通过单个 terraform 文件进行操作的技巧?

Jak*_*jny 8

您可以在 terraform 中为 provider 使用别名,如文档中所述

所以你可以为多个 k8s 集群定义多个 provider,然后通过别名引用它们。

例如

provider "kubernetes" {
  config_context_auth_info = "ops1"
  config_context_cluster   = "mycluster1"
  alias = "cluster1"
}

provider "kubernetes" {
  config_context_auth_info = "ops2"
  config_context_cluster   = "mycluster2"
  alias = "cluster2"
}

resource "kubernetes_secret" "example" {
  ...
  provider = kubernetes.cluster1
}
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法可以在循环中进行提供者声明?假设我有 50 个集群。使用您当前的方法手动声明所有这些将很困难。 (3认同)