Terraform 0.11

kubernetes_service




terraform

kubernetes_service

एक सेवा एक अमूर्त है जो पॉड्स के एक तार्किक सेट और एक नीति को परिभाषित करती है जिसके द्वारा उन्हें एक्सेस किया जाता है - जिसे कभी-कभी माइक्रो-सर्विस भी कहा जाता है। यह डेटा स्रोत आपको ऐसी सेवा के बारे में डेटा खींचने की अनुमति देता है।

उदाहरण उपयोग

data "kubernetes_service" "example" {
  metadata {
    name = "terraform-example"
  }
}

resource "aws_route53_record" "example" {
  zone_id = "${data.aws_route53_zone.k8.zone_id}"
  name    = "example"
  type    = "CNAME"
  ttl     = "300"
  records = ["${data.kubernetes_service.example.load_balancer_ingress.0.hostname}"]
}

तर्क संदर्भ

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

गुण

नेस्टेड ब्लॉक

metadata

तर्क

  • name - (वैकल्पिक) सेवा का नाम, अद्वितीय होना चाहिए। अपडेट नहीं किया जा सकता। अधिक जानकारी: http://kubernetes.io/docs/user-guide/identifiers#names
  • namespace - (वैकल्पिक) नाम स्थान अंतरिक्ष को परिभाषित करता है जिसके भीतर सेवा का नाम अद्वितीय होना चाहिए।

गुण

  • annotations - (वैकल्पिक) मनमाने मेटाडेटा को संग्रहीत करने के लिए उपयोग की जा सकने वाली सेवा के साथ संग्रहित एक असंरक्षित कुंजी मान मानचित्र। अधिक जानकारी: http://kubernetes.io/docs/user-guide/annotations
  • labels - (वैकल्पिक) स्ट्रिंग कुंजियों और मूल्यों का मानचित्र जिसे सेवा को व्यवस्थित और वर्गीकृत करने (गुंजाइश और चयन) के लिए इस्तेमाल किया जा सकता है। प्रतिकृति नियंत्रकों और सेवाओं के चयनकर्ताओं का मिलान कर सकते हैं। अधिक जानकारी: http://kubernetes.io/docs/user-guide/labels
  • generation - एक अनुक्रम संख्या जो वांछित राज्य की एक विशिष्ट पीढ़ी का प्रतिनिधित्व करती है।
  • resource_version - एक अपारदर्शी मूल्य जो इस सेवा के आंतरिक संस्करण का प्रतिनिधित्व करता है जिसका उपयोग क्लाइंट द्वारा यह निर्धारित करने के लिए किया जा सकता है कि सेवा कब बदल गई है। और पढ़ें: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#concurrency-control-and-consistency
  • self_link - इस सेवा का प्रतिनिधित्व करने वाला URL।
  • uid - इस सेवा के लिए समय और अंतरिक्ष मूल्य में अद्वितीय। अधिक जानकारी: http://kubernetes.io/docs/user-guide/identifiers#uids

port

गुण

  • name - सेवा के भीतर इस बंदरगाह का नाम। सेवा के सभी बंदरगाहों में अद्वितीय नाम होने चाहिए। वैकल्पिक यदि केवल एक ServicePort इस सेवा पर परिभाषित किया गया है।
  • node_port - प्रत्येक नोड पर पोर्ट जिस पर यह सेवा उजागर होती है जब type होता है NodePort या LoadBalancer । आमतौर पर सिस्टम द्वारा सौंपा गया। यदि निर्दिष्ट किया जाता है, तो यह सेवा को आवंटित किया जाएगा यदि अप्रयुक्त या सेवा का निर्माण विफल हो जाएगा। यदि इस सेवा के type में किसी एक की आवश्यकता होती है, तो डिफ़ॉल्ट पोर्ट को ऑटो-आवंटित करना है। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#type--nodeport
  • port - वह पोर्ट जो इस सेवा द्वारा उजागर किया जाएगा।
  • protocol - इस पोर्ट के लिए आईपी प्रोटोकॉल। TCP और UDP का समर्थन करता है। डिफ़ॉल्ट TCP
  • target_port - सेवा द्वारा लक्षित पॉड्स तक पहुंचने के लिए पोर्ट का नंबर या नाम। संख्या 1 से 65535 तक होनी चाहिए। यह फ़ील्ड cluster_ip = "None" साथ सेवाओं के लिए अनदेखा है। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#defining-a-service

spec

गुण

  • cluster_ip - सेवा का आईपी पता। यह आमतौर पर मास्टर द्वारा यादृच्छिक रूप से सौंपा जाता है। यदि कोई पता मैन्युअल रूप से निर्दिष्ट किया गया है और दूसरों द्वारा उपयोग में नहीं है, तो यह सेवा को आवंटित किया जाएगा; अन्यथा, सेवा का निर्माण विफल हो जाएगा। जब प्रॉक्सी की आवश्यकता न हो तो हेडलेस सेवाओं के लिए None भी निर्दिष्ट None जा सकता है। यदि टाइप किया जाता है तो अनदेखा किया जाता है। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies
  • external_ips - आईपी पतों की एक सूची जिसके लिए क्लस्टर में नोड्स भी इस सेवा के लिए ट्रैफ़िक स्वीकार करेंगे। ये IP Kubernetes द्वारा प्रबंधित नहीं हैं। उपयोगकर्ता यह सुनिश्चित करने के लिए ज़िम्मेदार है कि ट्रैफ़िक इस आईपी के साथ नोड पर आता है। एक सामान्य उदाहरण बाहरी लोड-बैलेन्सर्स हैं जो कुबेरनेट्स प्रणाली का हिस्सा नहीं हैं।
  • बाहरी_नाम - बाहरी संदर्भ जो कुब्डन्स या समतुल्य है, इस सेवा के लिए CNAME रिकॉर्ड के रूप में वापस आएगा। कोई भी सम्‍मिलित नहीं होगा। एक मान्य DNS नाम होना चाहिए और ExternalName नाम type करना होगा।
  • load_balancer_ip - केवल type = LoadBalancer पर लागू होता है। LoadBalancer इस क्षेत्र में निर्दिष्ट IP के साथ बनाया जाएगा। यह सुविधा इस बात पर निर्भर करती है कि लोड बैलेंसर बनाते समय अंतर्निहित क्लाउड-प्रदाता इस फ़ील्ड को निर्दिष्ट करने का समर्थन करता है या नहीं। यदि क्लाउड-प्रदाता सुविधा का समर्थन नहीं करता है तो इस फ़ील्ड को अनदेखा कर दिया जाएगा।
  • load_balancer_source_ranges - यदि प्लेटफ़ॉर्म द्वारा निर्दिष्ट और समर्थित है, तो यह क्लाउड-प्रदाता लोड-बैलेंसर के माध्यम से ट्रैफ़िक को प्रतिबंधित करेगा और निर्दिष्ट क्लाइंट IP पर प्रतिबंधित होगा। यदि क्लाउड-प्रदाता सुविधा का समर्थन नहीं करता है तो इस फ़ील्ड को अनदेखा कर दिया जाएगा। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services-firewalls
  • port - इस सेवा द्वारा उजागर किए गए बंदरगाहों की सूची। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies
  • selector - इस चयनकर्ता से मेल खाते हुए कुंजियों और मानों के साथ पॉड्स के लिए मार्ग सेवा यातायात। केवल ClusterIP , NodePort और LoadBalancer प्रकारों पर लागू होता है। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#overview
  • session_affinity - सत्र आत्मीयता बनाए रखने के लिए उपयोग किया जाता है। ClientIP और None का समर्थन करता है। किसी के लिए चूक। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies
  • type - निर्धारित करता है कि सेवा कैसे उजागर हुई है। ClusterIP लिए चूक। वैध विकल्प ExternalName , NodePort , LoadBalancer और LoadBalancer । निर्दिष्ट external_name लिए ExternalName मानचित्र। अधिक जानकारी: http://kubernetes.io/docs/user-guide/services#overview

load_balancer_ingress

गुण

  • hostname - होस्टनाम जो लोड-बैलेंसर इंग्रेस बिंदुओं के लिए निर्धारित है जो DNS आधारित हैं (आमतौर पर AWS लोड-बैलेंसर)
  • ip - आईपी जो लोड-बैलेंसर इनग्रेन्स पॉइंट्स के लिए सेट किया गया है, जो कि आईपी आधारित हैं (आमतौर पर जीसीई या ओपनस्टैक लोड-बैलेंसर्स)