Не удается удалить группы экземпляров, созданные пулом рабочих узлов GKE, который используется серверной службой - PullRequest
0 голосов
/ 29 мая 2019

Невозможно удалить группу экземпляров, которая используется серверной службой

Я использую terraform для управления настройкой кластера GKE. Я хочу обновить размер экземпляра рабочих узлов, чтобы заново создать google_container_node_popl, т. Е. Удалить существующие группы экземпляров и заново создать новые группы экземпляров для пула узлов. Но эти шаги не выполняются из-за следующей ошибки, поскольку старые группы экземпляров, которые связаны с бэкэндом GCP LB, не отсоединяются терраформой при повторном создании пула узлов.

 google_container_node_pool.new_container_cluster_node_pool.0: Error waiting for deleting GKE NodePool:
(1) Google Compute Engine: The instance_template resource 'projects/XXX-XXX-XXXX/global/instanceTemplates/gke-XXX-XXX-us-west-XXXXXX-53369325' is already being used by 'projects/XXXX-XXXX-XXXXX/zones/us-west1-b/instanceGroupManagers/gke-XXXXX-XXXX-us-west-XXXXX-XXXXX-us-west-53369325-grp'

Наконец, мы должны вручную удалить записи групп экземпляров из бэкэнда GCP LB, спланировать и применить снова, чтобы заново создать пул узлов с новым типом экземпляра.


resource "google_compute_backend_service" "default" {
project         = "${var.project}"
count           = "${length(var.backend_params)}"
name            = "${var.name}-backend-${count.index}"
port_name       = "${element(split(",", element(var.backend_params, count.index)), 1)}"
protocol        = "${var.backend_protocol}"
timeout_sec     = "${element(split(",", element(var.backend_params, count.index)), 3)}"
backend         = ["${var.backends["${count.index}"]}"]
health_checks   = ["${element(google_compute_health_check.default-tcp.*.self_link, count.index)}"]
security_policy = "${var.security_policy}"
enable_cdn      = "${var.cdn}"
}

Input variable ( getting the instance groups URL from GKE module)


backends = {
"0" = [
  # Have to use "element" because of nested lists
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[0],0), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  },
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[0],1), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  },
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[0],2), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  },
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[1],0), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  },
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[1],1), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  },
  {
    group = "${replace(element(module.gke.node_pool_instance_group_urls[1],2), "Manager", "")}",
    balancing_mode = "${var.lb_balancing_mode}",
    max_rate = "${var.lb_max_rate}",
    max_utilization = "${var.lb_max_utilization}"
  }
],

Сначала terraform отсоединит существующие группы экземпляров от настроек бэкэнда GCP LB при повторном создании пула узлов GKE.

...