نشر مجموعة كوبيرنيتيس مع CoreOS
fr:Deployer un cluster Kubernetes avec CoreOS
هام: تمت ترجمة هذه المقال باستخدام برامج للترجمة الآلية أنقر على الرابط لية أنقر على الرابط
يصف هذا الإجراء كيفية نشر بسرعة وبساطة كتلة كوبيرنيتيس العقد متعددة مع 3 حالات CoreOS. كوبيرنيتيس العمل في وضع "العميل" - الملقم، يدعى العميل كوبيرنيتيس "العميل لحد كوبيرنيتيس " والخادم "سيد كوبيرنيتيس ". مثيل كوبيرنيتيس الرئيسي هو المثيل الذي ستلقى مركزياً على مثيلات "التوابع كوبيرنيتيس". في المثال الخاص بنا، مثيل CoreOS سوف تلعب دور رئيسي كوبيرنيتيس والمثيلين الآخرين سوف تلعب دور العقدة كوبيرنيتيس (العميل ).
كوبيرنيتيس نظام لتزامن فتح المصدر التي تم إنشاؤها بواسطة Google لإدارة تطبيق حاوية مع عامل الميناء على مجموعة من المضيفين متعددة (3 CoreOS VM في مثالنا ). أنه يسمح للنشر والصيانة، وقابلية للتطبيقات. لمزيد من المعلومات يمكنك الذهاب github كوبيرنيتيس
ونحن نفترض أن لديك 3 الفعل تنتشر حالات CoreOS، جامعة قطر 'يمكنهم الاتصال مع بعضها البعض وأن دخولك سة مع المستخدم الأساسية.
إذا لم يتم فعلا ذلك، تحديث مثيلات CoreOS الخاصة بك بحيث تكون على الأقل في الإصدار CoreOS 653.0.0 وتشمل DCE 2 (راجع الأسئلة المتداولة تحديث CoreOS يدوياً). في حالتنا هذه جميع أجسادنا في مستقر CoreOS 681.2.0.
$ cat /etc/lsb-release
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=681.2.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 681.2.0"
يجب علينا أيضا ضمان أن كافة مثيلات CoreOS لنا بمعرف الجهاز مختلفة للتشغيل السليم سياق الكتلة. بمجرد حذف الملف /etc/machine-id وقم بإعادة تشغيل كل من المثيلات الخاصة بك CoreOS أما :
$ sudo rm -f /etc/machine-id && sudo reboot
تكوين مثيل سيد كوبيرنيتيس :
الكتابة فوق الملف سحابة--الافتراضي config.yml للتكوين سيد كوبيرنيتيس لنا عن طريق تنفيذ الأوامر التالية (فقط على المثيل الذي سيعمل كسيد وفي نفس الترتيب من أدناه ) :
core@Kube-MASTER ~ $ sudo wget -O /usr/share/oem/cloud-config.yml http://mirror02.ikoula.com/priv/coreos/kubernetes-master.yaml
--2015-06-22 15:55:48-- http://mirror02.ikoula.com/priv/coreos/kubernetes-master.yaml
Resolving mirror02.ikoula.com... 80.93.X.X, 2a00:c70:1:80:93:81:178:1
Connecting to mirror02.ikoula.com|80.93.X.X|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8913 (8.7K) [text/plain]
Saving to: '/usr/share/oem/cloud-config.yml'
<!--T:11-->
/usr/share/oem/cloud-config.yml 100%[===================================================================================================>] 8.70K --.-KB/s in 0s
<!--T:12-->
2015-06-22 15:55:48 (148 MB/s) - '/usr/share/oem/cloud-config.yml' saved [8913/8913]
core@Kube-MASTER ~ $ export `cat /etc/environment`
core@Kube-MASTER ~ $ sudo sed -i 's#PRIVATE_IP#'$COREOS_PRIVATE_IPV4'#g' /usr/share/oem/cloud-config.yml
نحن إعادة تشغيل مثيل لدينا حتى لا يكون فعالاً في التكوين :
core@Kube-MASTER ~ $ sudo reboot
علينا التحقق من أن تتم تهيئة الجسم بشكل صحيح :
core@Kube-MASTER ~ $ sudo fleetctl list-machines
MACHINE IP METADATA
aee19a88... 10.1.1.138 role=master
core@Kube-MASTER ~ $ sudo etcdctl ls --recursive
/coreos.com
/coreos.com/updateengine
/coreos.com/updateengine/rebootlock
/coreos.com/updateengine/rebootlock/semaphore
/coreos.com/network
/coreos.com/network/config
/coreos.com/network/subnets
/coreos.com/network/subnets/10.244.69.0-24
/registry
/registry/ranges
/registry/ranges/serviceips
/registry/ranges/servicenodeports
/registry/namespaces
/registry/namespaces/default
/registry/services
/registry/services/endpoints
/registry/services/endpoints/default
/registry/services/endpoints/default/kubernetes
/registry/services/endpoints/default/kubernetes-ro
/registry/services/specs
/registry/services/specs/default
/registry/services/specs/default/kubernetes
/registry/services/specs/default/kubernetes-ro
/registry/serviceaccounts
/registry/serviceaccounts/default
/registry/serviceaccounts/default/default
يمكنك أيضا الاطلاع على خدمات /الاستماع المنافذ (وهناك مكونات الملقم /سيد كوبيرنيتيس ):
core@Kube-MASTER ~ $ sudo netstat -taupen | grep LISTEN
tcp 0 0 10.1.1.138:7001 0.0.0.0:* LISTEN 232 16319 634/etcd2
tcp 0 0 10.1.1.138:7080 0.0.0.0:* LISTEN 0 19392 1047/kube-apiserver
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 0 19142 973/python
tcp 0 0 127.0.0.1:10251 0.0.0.0:* LISTEN 0 20047 1075/kube-scheduler
tcp 0 0 10.1.1.138:6443 0.0.0.0:* LISTEN 0 19406 1047/kube-apiserver
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 245 14794 502/systemd-resolve
tcp 0 0 127.0.0.1:10252 0.0.0.0:* LISTEN 0 19653 1058/kube-controlle
tcp 0 0 10.1.1.138:2380 0.0.0.0:* LISTEN 232 16313 634/etcd2
tcp6 0 0 :::8080 :::* LISTEN 0 19390 1047/kube-apiserver
tcp6 0 0 :::22 :::* LISTEN 0 13647 1/systemd
tcp6 0 0 :::4001 :::* LISTEN 232 16321 634/etcd2
tcp6 0 0 :::2379 :::* LISTEN 232 16320 634/etcd2
tcp6 0 0 :::5355 :::* LISTEN 245 14796 502/systemd-resolve
تكوين مثيلات "التوابع كوبيرنيتيس" :
الكتابة فوق الملف سحابة--الافتراضي config.yml لتكوين العميل كوبيرنيتيس لنا بتنفيذ الأوامر التالية على كل من المثيل الخاص بك سوف تلعب دور العميل كوبيرنيتيس (فقط في الحالات التي سوف تلعب دور العقدة /العميل وفي نفس الترتيب من أدناه ) :
core@Kube-MINION1 ~ $ sudo wget -O /usr/share/oem/cloud-config.yml http://mirror02.ikoula.com/priv/coreos/kubernetes-minion.yaml
--2015-06-22 16:39:26-- http://mirror02.ikoula.com/priv/coreos/kubernetes-minion.yaml
Resolving mirror02.ikoula.com... 80.93.X.X, 2a00:c70:1:80:93:81:178:1
Connecting to mirror02.ikoula.com|80.93.X.X|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5210 (5.1K) [text/plain]
Saving to: '/usr/share/oem/cloud-config.yml'
<!--T:25-->
/usr/share/oem/cloud-config.yml 100%[===================================================================================================>] 5.09K --.-KB/s in 0s
<!--T:26-->
2015-06-22 16:39:26 (428 MB/s) - '/usr/share/oem/cloud-config.yml' saved [5210/5210]
core@Kube-MINION1 ~ $ export `cat /etc/environment`
احذر من الضروري التكيف مع عنوان ip الخاص بك مثيل كوبيرنيتيس الرئيسي في الأمر أدناه (استبدال 10.1.1.138 بالقطاع الخاص ip الخاص بك مثيل كوبيرنيتيس الرئيسي ) الأمر أدناه :
core@Kube-MINION1 ~ $ sudo sed -i 's#MASTER_PRIVATE_IP#10.1.1.138#g' /usr/share/oem/cloud-config.yml
وأخيراً مرة واحدة قد تقوم هذه الأوامر مطابق تماما في كل حالة من الحالات الخاصة بك /العقد كوبيرنيتيس العميل، أعد تشغيل عليها حيث أن التكوين الخاص بها بفعالية وما الانضمام إلى الكتلة.
core@Kube-MINION1 ~ $ sudo reboot
علينا التحقق من أن لدينا 2 كذلك، انضمت مثيلات كوبيرنيتيس العميل لدينا الكتلة (يمكن تشغيل الأمر التالي على أي عضو مثيل نظام المجموعة الخاصة بك ) :
core@Kube-MASTER ~ $ sudo fleetctl list-machines
MACHINE IP METADATA
5097f972... 10.1.1.215 role=node
aee19a88... 10.1.1.138 role=master
fe86214c... 10.1.1.83 role=node
core@Kube-MINION1 ~ $ sudo etcdctl ls --recursive
/coreos.com
/coreos.com/updateengine
/coreos.com/updateengine/rebootlock
/coreos.com/updateengine/rebootlock/semaphore
/coreos.com/network
/coreos.com/network/config
/coreos.com/network/subnets
/coreos.com/network/subnets/10.244.69.0-24
/coreos.com/network/subnets/10.244.38.0-24
/coreos.com/network/subnets/10.244.23.0-24
/registry
/registry/ranges
/registry/ranges/serviceips
/registry/ranges/servicenodeports
/registry/namespaces
/registry/namespaces/default
/registry/services
/registry/services/specs
/registry/services/specs/default
/registry/services/specs/default/kubernetes
/registry/services/specs/default/kubernetes-ro
/registry/services/endpoints
/registry/services/endpoints/default
/registry/services/endpoints/default/kubernetes
/registry/services/endpoints/default/kubernetes-ro
/registry/serviceaccounts
/registry/serviceaccounts/default
/registry/serviceaccounts/default/default
/registry/events
/registry/events/default
/registry/events/default/10.1.1.215.13ea16c9c70924f4
/registry/events/default/10.1.1.83.13ea16f74bd4de1c
/registry/events/default/10.1.1.83.13ea16f77a4e7ab2
/registry/events/default/10.1.1.215.13ea16c991a4ee57
/registry/minions
/registry/minions/10.1.1.215
/registry/minions/10.1.1.83
core@Kube-MINION2 ~ $ sudo etcdctl ls --recursive
/coreos.com
/coreos.com/updateengine
/coreos.com/updateengine/rebootlock
/coreos.com/updateengine/rebootlock/semaphore
/coreos.com/network
/coreos.com/network/config
/coreos.com/network/subnets
/coreos.com/network/subnets/10.244.69.0-24
/coreos.com/network/subnets/10.244.38.0-24
/coreos.com/network/subnets/10.244.23.0-24
/registry
/registry/ranges
/registry/ranges/serviceips
/registry/ranges/servicenodeports
/registry/namespaces
/registry/namespaces/default
/registry/services
/registry/services/specs
/registry/services/specs/default
/registry/services/specs/default/kubernetes
/registry/services/specs/default/kubernetes-ro
/registry/services/endpoints
/registry/services/endpoints/default
/registry/services/endpoints/default/kubernetes
/registry/services/endpoints/default/kubernetes-ro
/registry/serviceaccounts
/registry/serviceaccounts/default
/registry/serviceaccounts/default/default
/registry/events
/registry/events/default
/registry/events/default/10.1.1.83.13ea16f77a4e7ab2
/registry/events/default/10.1.1.215.13ea16c991a4ee57
/registry/events/default/10.1.1.215.13ea16c9c70924f4
/registry/events/default/10.1.1.83.13ea16f74bd4de1c
/registry/minions
/registry/minions/10.1.1.215
/registry/minions/10.1.1.83
لدينا حالات الخدمات العميل كوبيرنيتيس هنا /الاستماع المنافذ (بما في ذلك خدمة كوبيليت التي يتم تبادل المعلومات مع كوبيرنيتيس الرئيسي ) :
core@Kube-MINION1 ~ $ sudo netstat -taupen | grep LISTEN
tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 0 18280 849/kube-proxy
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 245 14843 500/systemd-resolve
tcp6 0 0 :::49005 :::* LISTEN 0 18284 849/kube-proxy
tcp6 0 0 :::10255 :::* LISTEN 0 19213 1025/kubelet
tcp6 0 0 :::47666 :::* LISTEN 0 18309 849/kube-proxy
tcp6 0 0 :::22 :::* LISTEN 0 13669 1/systemd
tcp6 0 0 :::4001 :::* LISTEN 232 16106 617/etcd2
tcp6 0 0 :::4194 :::* LISTEN 0 19096 1025/kubelet
tcp6 0 0 :::10248 :::* LISTEN 0 19210 1025/kubelet
tcp6 0 0 :::10250 :::* LISTEN 0 19305 1025/kubelet
tcp6 0 0 :::2379 :::* LISTEN 232 16105 617/etcd2
tcp6 0 0 :::5355 :::* LISTEN 245 14845 500/systemd-resolve
تحقق اتصال مع API كوبيرنيتيس سيد :
كوبيرنيتيس واجهة المستخدم :
للوصول إلى لوحة معلومات كوبيرنيتيس، كنت بحاجة للسماح بالاتصالات إلى المنفذ 8080 (ملقم API الرئيسية كوبيرنيتيس ) ويضطلع بمنفذ إذا اقتضى الأمر إعادة توجيه (إلى الأمام منطقة ) منفذ 8080 المثيل الرئيسي الخاص بك كوبيرنيتيس. ثم، انتقل ببساطة إلى url http://adresse_ip_publique_instance_kubernetes_master:8080/static/app/#/dashboard/ في المستعرض الخاص بك :
منذ لوحة المعلومات هذه، أنت بين المحتملة الأخرى لعرض المعلومات على العقد الخاص بك (العميل لحد كوبيرنيتيس ). لذلك، يمكنك النقر فوق "آراء " :
انقر فوق "العقد " :
تظهر قائمة للعميل كوبيرنيتيس العقد الخاص بك :
انقر على واحد منهم لعرض معلومات حول هذه العقدة (إصدار عامل الميناء، والنظام، وكوبيبروكسي، وكوبيليت، وما إلى ذلك. |) :
كوبيرنيتيس CLI :
يمكنك أيضا استخدام الأدوات كوبيكتل منذ المثيل الرئيسي الخاص بك كوبيرنيتيس. للقيام بذلك، يجب أن تقوم بتثبيت هذه الأداة المساعدة كما يلي :
وبمجرد دخولك إلى سة نوع الرئيسي الخاص بك مثيل كوبيرنيتيس الأوامر التالية :
core@Kube-MASTER ~ $ sudo wget -O /opt/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/v0.17.0/bin/linux/amd64/kubectl
--2015-06-23 11:39:09-- https://storage.googleapis.com/kubernetes-release/release/v0.17.0/bin/linux/amd64/kubectl
Resolving storage.googleapis.com... 64.233.166.128, 2a00:1450:400c:c09::80
Connecting to storage.googleapis.com|64.233.166.128|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20077224 (19M) [application/octet-stream]
Saving to: '/opt/bin/kubectl'
<!--T:54-->
/opt/bin/kubectl 100%[===================================================================================================>] 19.15M 1.18MB/s in 16s
<!--T:55-->
2015-06-23 11:39:26 (1.18 MB/s) - '/opt/bin/kubectl' saved [20077224/20077224]
core@Kube-MASTER ~ $ sudo chmod 755 /opt/bin/kubectl
اختبار اتصال جيدة مع كوبيرنيتيس API الخاص بك :
core@Kube-MASTER ~ $ kubectl get node
NAME LABELS STATUS
10.1.1.215 kubernetes.io/hostname=10.1.1.215 Ready
10.1.1.83 kubernetes.io/hostname=10.1.1.83 Ready
core@Kube-MASTER ~ $ kubectl cluster-info
Kubernetes master is running at http://localhost:8080
يمكننا وبالتالي نشر أول حاوية Nginx في جهودنا المجموعة :
core@Kube-MASTER ~ $ kubectl run-container nginx --image=nginx
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
nginx nginx nginx run-container=nginx 1
ثم نستطيع أو حتى على الذي تأثر مضيفينا وتنتشر هذه الحاوية، واسم جراب والملكية الفكرية التي كان :
core@Kube-MASTER ~ $ kubectl get pods
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE
nginx-zia71 10.244.38.2 10.1.1.215/10.1.1.215 run-container=nginx Running 3 minutes
nginx nginx Running 1 minutes
أننا نجد هذه المعلومات ذاتها عن طريق لوحة كوبيرنيتي واجهة المستخدم عن طريق الذهاب "آراء " ثم "القرون " :
ويمكننا أن نرى ip للمضيف الذي نشر هذه الحاوية، باسم جراب وعنوان ip الخاص به :
النقر فوق فإنه يحصل على مزيد من التفاصيل على لدينا جراب :
يمكننا أن نوقف جهودنا الحاوية ببساطة :
core@Kube-MASTER ~ $ kubectl stop rc nginx
replicationcontrollers/nginx
يمكننا أيضا نشر لدينا حاوية مع 2 النسخ المتماثلة :
core@Kube-MASTER ~ $ kubectl run-container nginx --image=nginx --replicas=2
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
nginx nginx nginx run-container=nginx 2
core@Kube-MASTER ~ $ kubectl get pods
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS CREATED MESSAGE
nginx-7gen5 10.244.38.3 10.1.1.215/10.1.1.215 run-container=nginx Running About a minute
nginx nginx Running 39 seconds
nginx-w4xue 10.244.23.3 10.1.1.83/10.1.1.83 run-container=nginx Running About a minute
nginx nginx Running About a minute
للحصول على مزيد من المعلومات، حول الهندسة المعمارية والمكونات وتشغيل كتلة كوبيرنيتيس ندعوك لقراءة الوثائق الرسمية "الهندسة المعمارية كوبيرنيتيس" :
تمكين المحدث التلقائي للتعليق