如何使用 terraform 在 gke 中显式更新集群和节点版本

问题描述 投票:0回答:1

我正在使用 terraform 创建 gke 集群,我的要求是明确提供集群和节点版本。我正在使用数据源来获取这些版本,尝试了很多选项,但无法提供集群和节点版本

数据块

data "google_container_engine_versions" "gke_version" {
  location       = us-central1-a
  version_prefix = "1.25."
}

集群创建资源块

resource "google_container_cluster" "gke" {
  name     = var.cluster_name
  location = var.cluster_location
  networking_mode = var.networking_mode
  network         = var.network
  subnetwork      = var.subnetwork
  remove_default_node_pool = var.remove_default_node_pool
  initial_node_count       = var.initial_node_count 
  ip_allocation_policy {
    cluster_secondary_range_name  = var.cluster_secondary_range_name
    services_secondary_range_name = var.services_secondary_range_name
  }
}

节点创建资源块

resource "google_container_node_pool" "permanent" {
  name       = var.permanent_pool_name
  cluster    = google_container_cluster.gke.id
  node_count = var.permanent_node_count
  management {
    auto_repair  = var.auto_repair
    auto_upgrade = var.auto_upgrade
  }
  node_config {
    preemptible = var.permanent_preemptible
    machine_type = var.permanent_machine_type
    disk_size_gb = var.permanent_disk_size_gb
    disk_type = var.gke_disk_type
    labels = {
      type = var.permanent_labels
    }
    
    service_account = var.svc_account
    oauth_scopes = [var.oauth_scopes]
  }
}

如何在这些各自的资源块上提供集群和节点版本?

terraform google-kubernetes-engine terraform-provider-gcp
1个回答
0
投票

如果进行以下更改,您应该能够使用最新的 1.25.x 版本创建集群和节点池:

集群创建资源块

resource "google_container_cluster" "gke" {
  name     = var.cluster_name
  location = var.cluster_location
  networking_mode    = var.networking_mode
  network            = var.network
  subnetwork         = var.subnetwork
  initial_node_count = var.initial_node_count

  ip_allocation_policy {
    cluster_secondary_range_name  = var.cluster_secondary_range_name
    services_secondary_range_name = var.services_secondary_range_name
  }

  // changed:
  remove_default_node_pool = true
  min_master_version       = data.google_container_engine_versions.gke_version.latest_master_version
  release_channel {
    channel = "UNSPECIFIED"
  }
}

节点创建资源块

resource "google_container_node_pool" "permanent" {
  name       = var.permanent_pool_name
  cluster    = google_container_cluster.gke.id
  node_count = var.permanent_node_count
  
  node_config {
    preemptible = var.permanent_preemptible
    machine_type = var.permanent_machine_type
    disk_size_gb = var.permanent_disk_size_gb
    disk_type = var.gke_disk_type
    labels = {
      type = var.permanent_labels
    }
    
    service_account = var.svc_account
    oauth_scopes = [var.oauth_scopes]
  }


  //changed:
  management {
    auto_repair  = var.auto_repair
    auto_upgrade = false
  }
  version = data.google_container_engine_versions.gke_version.latest_node_version
}
© www.soinside.com 2019 - 2024. All rights reserved.