2015-12-24 5 views
12

पर कुबर्नेट्स मैंने एडब्ल्यूएस पर कुबर्नेट्स के लिए ऑपरेटिंग सिस्टम के रूप में सेंटोस परमाणु होस्ट स्थापित किया।AWS क्लाउड प्रदाता

सब कुछ ठीक काम करता है, लेकिन ऐसा लगता है कि मुझे कुछ याद आया।

मैंने क्लाउड प्रदाता को कॉन्फ़िगर नहीं किया है और उस पर कोई दस्तावेज नहीं मिल रहा है।

इस प्रश्न में मैं जानना चाहता हूं: 1. क्लाउड प्रदाता कुबर्नेट्स को क्या सुविधाएँ देता है? 2. AWS क्लाउड प्रदाता को कॉन्फ़िगर कैसे करें?

यूपीडी 1: बाहरी लोड बैलेंसर काम नहीं करता है; मैंने अभी तक awsElasticBlockStore का परीक्षण नहीं किया है, लेकिन मुझे यह भी संदेह है कि यह काम नहीं करता है।

युपीडी 2: सेवा विवरण:

$ kubectl get svc nginx-service-aws-lb -o yaml 
apiVersion: v1 
kind: Service 
metadata: 
    creationTimestamp: 2016-01-02T09:51:40Z 
    name: nginx-service-aws-lb 
    namespace: default 
    resourceVersion: "74153" 
    selfLink: /api/v1/namespaces/default/services/nginx-service-aws-lb 
    uid: 6c28b718-b136-11e5-9bda-06c2feb29b0d 
spec: 
    clusterIP: 10.254.172.185 
    ports: 
    - name: http-proxy-protocol 
    nodePort: 31385 
    port: 8080 
    protocol: TCP 
    targetPort: 8080 
    - name: https-proxy-protocol 
    nodePort: 31370 
    port: 8443 
    protocol: TCP 
    targetPort: 8443 
    selector: 
    app: nginx 
    sessionAffinity: None 
    type: LoadBalancer 
status: 
    loadBalancer: {} 

उत्तर

6

मैं प्रोजेक्ट एटॉमिक बिट्स से बात नहीं कर सकता, न ही KUBERNETES_PROVIDER env-var तक, क्योंकि मेरा अनुभव CoreOS प्रावधान के साथ रहा है। मैं अपने अनुभवों के बारे में बात करूंगा और देख सकता हूं कि इससे आपको अपने सेटअप में थोड़ा और खोदने में मदद मिलती है।

सबसे पहले, यह बिल्कुल जरूरी है कि नियंत्रक EC2 और कार्यकर्ता EC2 मशीनों सही IAM role कि मशीनों एडब्ल्यूएस अपने खाते की ओर से कॉल करने के लिए सक्षम हो जाएगा है। इसमें ईएलबी को प्रावधान करने और ईबीएस वॉल्यूम के साथ काम करने जैसी चीजें शामिल हैं (या कार्यकर्ता के मामले में स्वयं को ईबीएस वॉल्यूम संलग्न करना)। इसके बिना, आपका क्लाउड-कॉन्फ़िगर अनुभव कहीं भी नहीं जाएगा। मुझे पूरा यकीन है कि आईएएम पेलोड को .go फाइलों के अलावा कहीं और परिभाषित किया गया है, जो पढ़ना मुश्किल है, लेकिन यह सबसे तेज़ लिंक है जो मुझे दिखाने के लिए आसान था।

सौभाग्य से, उस प्रश्न का उत्तर, और जिस बारे में मैं बात करने जा रहा हूं, दोनों apiserver और controller-manager के आसपास केंद्रित हैं। उनके विन्यास और वे लॉग आउट वे आउटपुट।

दोनों apiserver और controller-manager एक तर्क है कि एक डिस्क पर बादल विन्यास फाइल है कि खेद है कि कहीं भी the source के लिए छोड़कर दर्ज नहीं किया है के लिए अंक की है। वह Zone फ़ील्ड, मेरे अनुभव में, वैकल्पिक है (जैसे वे टिप्पणियों में कहते हैं)। हालांकि, यह KubernetesClusterTag देख रहा था जिसने मुझे यह देखने के लिए कोड में चारों ओर उस क्षेत्र का पालन करने का नेतृत्व किया।

यदि आपका अनुभव मेरा जैसा कुछ है, तो आप controller-manager के डॉकर लॉग में देखेंगे कि यह कैसे ईएलबी बनाया गया है, लेकिन इसे जोड़ने के लिए कोई सबनेट नहीं मिला है; (कि "डॉकर लॉग" बिट अनुमान लगा रहा है, बेशक, प्रोजेक्टएटॉमिक कुबेरनेट डिमन्स चलाने के लिए डॉकर का भी उपयोग करता है)।

एक बार मैं एक TagKubernetesCluster नामित और एक ही स्ट्रिंग के लिए Tag के प्रत्येक उदाहरण सेट (यह कुछ भी, AFAIK हो सकता है) संलग्न है, तो aws_loadbalancer VPC में सबनेट ढूँढने में सक्षम था और यह करने के लिए नोड्स संलग्न ईएलबी और सबकुछ शांत था - इसके बारे में हिस्से को छोड़कर केवल इंटरनेट का सामना कर रहे ईएलबी का सामना करना पड़ सकता है। :-(

बस स्पष्टता के लिए

: aws.cfg एक क्षेत्र KubernetesClusterTag नामित कि आप कोTag कि Kubernetes के लिए दिखेगा को फिर से परिभाषित की अनुमति देता है शामिल है; बिना उस फ़ाइल में किसी भी मूल्य, Kuberenetes Tag नाम KubernetesCluster का प्रयोग करेंगे।

मुझे आशा है कि यह आप में मदद करता है और मुझे आशा है कि यह दूसरों में मदद करता है, क्योंकि एक बार Kubernetes निर्भर है, यह बिल्कुल आश्चर्यजनक है।

+0

हाय डैनियल, आपके उत्तर के लिए धन्यवाद। मुझे [Kubernetes भंडार] में AWS IAM भूमिकाएं मिलीं (https://github.com/kubernetes/kubernetes/tree/master/cluster/aws/templates/iam)। परमाणु होस्ट के बारे में –

+0

, इस दस्तावेज़ को चेक करें https://docs.openshift.org/latest/install_config/configuring_aws.html#configuring-aws-variables –

2
  1. क्या बादल प्रदाता Kubernetes के लिए देता है सुविधाएँ?

कुछ विशेषताएं है कि मैं जानता हूँ कि: external loadbalancer, persistent volumes

  1. AWS क्लाउड प्रदाता को कॉन्फ़िगर कैसे करें?

एक पर्यावरण वर KUBERNETES_PROVIDER कहा जाता है, लेकिन ऐसा लगता है env var केवल मायने रखती है, जब लोग एक k8s क्लस्टर शुरू करते हैं। चूंकि आपने कहा था "सब कुछ ठीक काम करता है", मैं अनुमान आपको ऊपर उल्लिखित सुविधाओं का उपयोग करने के लिए किसी और कॉन्फ़िगरेशन की आवश्यकता नहीं है।

+0

अपने जवाब के लिए धन्यवाद। मैं बाहरी पौंड और यह काम करता है नहीं परीक्षण किया गया। –

+0

आप getti का पालन किया एनजी के लिए गाइड शुरू किया? https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/aws.md#supported-procedure-get-kube। कृपया https://github.com/kubernetes/kubernetes/blob/4ca66d2aefa20c27b670b2fa890052daadc05294/docs/design/aws_under_the_hood.md का भी संदर्भ लें। यदि टाइप = लोडबलैंसर के साथ कोई सेवा बनाना एडब्ल्यूएस पर बाहरी लोडबलेंसर नहीं बनाता है, जो कि एक बग की तरह लगता है। कुबर्नेट्स में ईएलबी समर्थन होता है, जैसा कि "हुड के तहत" दस्तावेज़ में उल्लिखित है। –

+0

क्या आप और अधिक कह सकते हैं कि आपका क्या मतलब है कि एलबी काम नहीं कर रहा है? जब आप निम्न आदेश निष्पादित करते हैं तो यह दिखाता है: 'kubectl svc -o yaml' प्राप्त करें और देखें कि क्या यह 'होस्टनाम' विशेषता देता है? समस्या यह है कि एडब्ल्यूएस ईएलबी आईपी पते नहीं देता है, बस होस्ट नाम। – aronchick