Terraform 0.11

google_compute_autoscaler




terraform

google_compute_autoscaler

एक कम्प्यूट इंजन ऑटोकैसलर स्वचालित रूप से वर्चुअल मशीन को एक प्रबंधित इंस्टेंस समूह से जोड़ता या हटाता है जो लोड में वृद्धि या कमी के आधार पर होता है। यह आपके अनुप्रयोगों को ट्रैफ़िक में इज़ाफ़ा करने और संसाधनों की आवश्यकता कम होने पर लागत को कम करने की अनुमति देता है। आप बस ऑटोसालिंग नीति को परिभाषित करते हैं और ऑटोस्कोलर मापा लोड के आधार पर स्वचालित स्केलिंग करता है। अधिक जानकारी के लिए, आधिकारिक दस्तावेज और API

उदाहरण उपयोग

resource "google_compute_instance_template" "foobar" {
  name           = "foobar"
  machine_type   = "n1-standard-1"
  can_ip_forward = false

  tags = ["foo", "bar"]

  disk {
    source_image = "debian-cloud/debian-8"
  }

  network_interface {
    network = "default"
  }

  metadata {
    foo = "bar"
  }

  service_account {
    scopes = ["userinfo-email", "compute-ro", "storage-ro"]
  }
}

resource "google_compute_target_pool" "foobar" {
  name = "foobar"
}

resource "google_compute_instance_group_manager" "foobar" {
  name = "foobar"
  zone = "us-central1-f"

  instance_template  = "${google_compute_instance_template.foobar.self_link}"
  target_pools       = ["${google_compute_target_pool.foobar.self_link}"]
  base_instance_name = "foobar"
}

resource "google_compute_autoscaler" "foobar" {
  name   = "scaler"
  zone   = "us-central1-f"
  target = "${google_compute_instance_group_manager.foobar.self_link}"

  autoscaling_policy = {
    max_replicas    = 5
    min_replicas    = 1
    cooldown_period = 60

    cpu_utilization {
      target = 0.5
    }
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) ऑटोकार का नाम।

  • target - (आवश्यक) उदाहरण समूह प्रबंधक का पूर्ण URL जिसका आकार हम नियंत्रित करते हैं।

  • zone - (आवश्यक) लक्ष्य का क्षेत्र।

  • autoscaling_policy - (आवश्यक) ऑटोस्कोलिंग एल्गोरिथम के पैरामीटर। संरचना नीचे प्रलेखित है।

  • description - (वैकल्पिक) उदाहरण समूह प्रबंधक का एक वैकल्पिक पाठ्य विवरण।

  • project - (वैकल्पिक) उस परियोजना की आईडी जिसमें संसाधन है। यदि यह प्रदान नहीं किया जाता है, तो प्रदाता परियोजना का उपयोग किया जाता है।

autoscaling_policy ब्लॉक में शामिल हैं:

  • max_replicas - (आवश्यक) समूह इससे बड़ा कभी नहीं होगा।

  • min_replicas - (आवश्यक) समूह कभी भी इससे छोटा नहीं होगा।

  • cooldown_period - (वैकल्पिक) परिवर्तनों के बीच प्रतीक्षा करने की अवधि। यह उस समय कम से कम दोगुना होना चाहिए जब आपके इंस्टेंस को शुरू होने में समय लगता है।

  • cpu_utilization - (वैकल्पिक) एक पॉलिसी जो स्केल का औसत सीपीयू दिए गए सीमा से ऊपर या नीचे होने पर होती है। संरचना नीचे प्रलेखित है।

  • metric - (वैकल्पिक) एक नीति जो Google क्लाउड मॉनिटरिंग मेट्रिक्स संरचना के अनुसार मापी जाती है, उसे नीचे दर्ज़ किया गया है।

  • load_balancing_utilization - (वैकल्पिक) एक नीति जो लोड होने पर HTTP लोड load_balancing_utilization में परिभाषित सीमा के अनुपात में पहुंचती है। संरचना नीचे प्रलेखित है।

cpu_utilization ब्लॉक में शामिल हैं:

  • target - फ्लोटिंग पॉइंट थ्रेसहोल्ड जहां CPU उपयोग होना चाहिए। उदाहरण के लिए, 50% में 0.5 निर्दिष्ट होगा।

metric ब्लॉक में ( here अधिक दस्तावेज़ here ):

  • name - Google क्लाउड मॉनिटरिंग मीट्रिक का नाम अनुसरण करने के लिए, उदा। compute.googleapis.com/instance/network/received_bytes_count

  • type - या तो "संचयी", "डेल्टा", या "गेज"।

  • target - प्रति उदाहरण वांछित मीट्रिक मान। एक सकारात्मक मूल्य होना चाहिए।

load_balancing_utilization ब्लॉक में शामिल हैं:

  • target - फ्लोटिंग पॉइंट थ्रेशोल्ड जहां लोड बैलेंस उपयोग होना चाहिए। उदाहरण के लिए, यदि लोड बैलेंसर का maxRatePerInstance 10 अनुरोध प्रति सेकंड (आरपीएस) है तो इसे 0.5 पर सेट करने से समूह को स्केल किया जाएगा ताकि प्रत्येक उदाहरण में 5 आरपीएस प्राप्त हो।

संदर्भ संदर्भित करता है

ऊपर सूचीबद्ध तर्कों के अलावा, निम्नलिखित गणना की गई विशेषताएँ निर्यात की जाती हैं:

  • self_link - निर्मित संसाधन का URL।

आयात

Autoscalers name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import google_compute_autoscaler.foobar scaler