Назначение ресурсов памяти для модулей из Terraform - PullRequest
0 голосов
/ 07 мая 2020

У меня есть кластер K8S на GCP, где мне нужно запустить рабочую нагрузку Data Science. Некоторые из них находятся в статусе «Выселены», потому что

Узлу не хватало ресурсов: памяти. База контейнеров использовала 5417924Ki, что превышает его запрос 0.

Я управляю своей архитектурой с помощью Terraform и знаю, как управлять автоматическим масштабированием кластера, но я понятия не имею, даже после прочтения do c, как это сделать на уровне пода

resource "google_container_cluster" "k8s_cluster" {
  name        = "my-cluster-name
  description = ""
  location = var.default_region
  network = var.network
  subnetwork = var.subnetwork

  initial_node_count = 1
  remove_default_node_pool = true

  ip_allocation_policy {
    # VPC-native cluster using alias IP addresses
    cluster_secondary_range_name = "gke-pods"
    services_secondary_range_name = "gke-services"
  }

  maintenance_policy {
    daily_maintenance_window {
      start_time = "03:00"
    }
  }

  master_authorized_networks_config {
    cidr_blocks {
      display_name = var.airflow.display_name
      cidr_block = var.airflow.cidr_block
    }

    cidr_blocks {
      display_name = var.gitlab.display_name
      cidr_block = var.gitlab.cidr_block
    }
  }

  network_policy {
    enabled = false
  }

  private_cluster_config {
    enable_private_endpoint = true
    enable_private_nodes = true
    master_ipv4_cidr_block = var.vpc_range_k8s_master
  }

  resource_labels = {
    zone = var.zone
    role = var.role
    env = var.environment
  }

  # Disable basic auth and client certificate
  master_auth {
    username = ""
    password = ""

    client_certificate_config {
      issue_client_certificate = false
    }
  }

  cluster_autoscaling {
    enabled = true
    resource_limits {
      resource_type = "cpu"
      minimum = 1
      maximum = 4
    }
    resource_limits {
      resource_type = "memory"
      minimum = 1
      maximum = 2
    }
  }
}
...