微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Terraform 管理 GCP Composer Kubernetes 集群

如何解决使用 Terraform 管理 GCP Composer Kubernetes 集群

我已经创建了一个 GCP Composer 环境 using Terraform

terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
      version = "3.5.0"
    }
  }
}

provider "google" {
  credentials = file("my_key.json")
  project = "my_project_id"
  region  = "us-east1"
  zone    = "us-east1-b"
}

resource "google_composer_environment" "my_composer_id" {
  name   = "my_composer_name"
  region = "us-east1"
  config {
    node_count = 3
    node_config {
      zone         = "us-east1-b"
      machine_type = "n1-standard-1"
    }
  }
}

Composer 还会自动创建 Kubernetes Engine 集群。这样的集群有一个名为 default-pool 的节点池。 我想在 Composer 创建的集群中create a new node pool。像这样:

resource "google_container_node_pool" "my_node_pool_id" {
  name       = "my_node_pool_name"
  location   = "us-east1"
  cluster    = ????
  node_count = 0
  node_config {
    preemptible  = true
    machine_type = "n1-standard-1"
  }
  autoscaling  {
    min_node_count = 0
    max_node_count = 3
  }
}

但是,由于我没有在 terraform 文件中创建集群(因为它是由 Composer 自动创建的),所以我没有引用它。

解决方法

可以通过 Cloud Composer 环境的密钥 gke_cluster available in the config section 访问集群名称:

resource "google_container_node_pool" "my_node_pool_id" {
  name       = "my_node_pool_name"
  location   = "us-east1-b"

  cluster    = element(
      split("/",lookup(
          google_composer_environment.my_composer_id.config[0],"gke_cluster"
        )
      ),5
    )

  // ...
}

第 5 个元素对应于 GKE 集群的名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?