Bereitstellen eines Clusters Kubernetes mit CoreOS
de:Bereitstellen eines Clusters Kubernetes mit CoreOS
he:לפרוס את אשכול Kubernetes עם CoreOS
ru:Развертывание кластера Kubernetes с CoreOS
ja:クラスター コア Os と Kubernetes を展開します。
ar:نشر مجموعة كوبيرنيتيس مع CoreOS
zh:部署群集与 CoreOS Kubernetes
ro:Implementaţi un cluster Kubernetes cu CoreOS
pl:Wdróż klaster Kubernetes z CoreOS
nl:Implementeer een cluster Kubernetes met CoreOS
it:Distribuire un cluster Kubernetes con CoreOS
pt:Implantar um cluster Kubernetes com CoreOS
es:Implementar un clúster Kubernetes con CoreOS
en:Deploy a cluster Kubernetes with CoreOS
fr:Deployer un cluster Kubernetes avec CoreOS
Dieser Artikel wurde maschinell übersetzt. Sie können den Artikel Quelle hier ansehen.
Dieses Verfahren beschreibt, wie schnell bereitstellen und einfach einen Clus Kubernetes Multi-Knoten mi 3 CoreOS-Instanzen. Kubernetes arbeiten im Clientmodus - Server, Client Kubernetes heißt "Kubernetes Diene" und dem Serv "Kubernetes Meist". Die Kubernetes Master-Instanz ist die Instanz, die Instanzen Kubernetes Schergen zentral koordiniert werden. In unserem Beispiel wird eine Instanz CoreOS die Rolle von Meister Kubernetes und die anderen beiden Instanzen werden die Rolle des Knotens Kubernetes (Diene).
Kubernetes ist ein System der offenen Orchestrierung Quellcode erstellt von Google zum Verwalten von Anwendungscontainer mit Docker auf einem Cluster von mehreren Hosts (3 VM CoreOS in unserem Beispi). Es ermöglicht die Bereitstellung, Wartung und Skalierbarkeit von Anwendungen. Weitere Informationen können Sie auf gehen GitHub Kubernetes
Wir gehen davon aus, dass Ihre 3 CoreOS Instanzen sind bereits bereitgestell'Sie können miteinander kommuniziere und dass man ssh mit dem Kern der Benutzer eingeloggt ist.
Wenn dies nicht bereits erfolgt, aktualisieren Ihre CoreOS Instanzen, so dass sie mindestens in der Version CoreOS 653.0.0 und beinhalten 2 (Siehe unsere CoreOS manuell aktualisieren). In unserem Fall sind alle unsere Körper in stabilen Cor 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"
Wir müssen auch sicherstellen, dass alle unsere CoreOS Instanzen die anderen Maschine für ordnungsgemäßen Betrieb Kontext Cluster-ID haben. Einfach die Datei löschen /etc/machine-id und starten Sie jede Ihrer Instanzen CoreOS ent :
$ sudo rm -f /etc/machine-id && sudo reboot
Kubernetes Master Instanzkonfiguration :
Überschreiben die Datei Cloud - Standard config.yml an unsere Kubernetes Master-Konfiguration durch Ausführen der folgenden Befehle (nur auf die Instanz, die als Master und in der gleichen Reihenfolge als unten handeln werden ) :
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
Wir unsere Instanz neu starten, damit die Konfiguration wirksam ist :
core@Kube-MASTER ~ $ sudo reboot
Wir überprüfen, dass unser Körper richtig initiali :
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
Sie sehen auch Dienste /hören Anschlü (Es gibt Serverkomponenten /Master Kubernete):
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
Konfiguration von Instanzen Kubernetes Scherg :
Überschreiben die Datei Cloud - Standard config.yml an unsere Kubernetes Minion-Konfiguration durch Ausführen einer der folgenden Befehle auf allen Ihrer Instanz, die die Rolle des Kubernetes Minion (nur auf Instanzen, die den Knoten Rolle spielen werden/Diener und in der gleichen Reihenfolge als unten ) :
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`
Vorsicht, es ist notwendig, die private Ip-Adresse von Ihrem master Kubernetes-Instanz im folgenden Befehl an (Ersetzen 10.1.1.138 von der privaten Ip von Ihrem master Kubernetes-Ins) Geben Sie folgenden B :
core@Kube-MINION1 ~ $ sudo sed -i 's#MASTER_PRIVATE_IP#10.1.1.138#g' /usr/share/oem/cloud-config.yml
Endlich einmal haben führen Sie diese Befehle identisch auf jeder Ihrer Instanzen /Knoten Kubernetes Diener, Neustarten, damit ihre Konfiguration sind effektiv und was dem Cluster beitreten.
core@Kube-MINION1 ~ $ sudo reboot
Wir überprüfen unser 2 Nun, Instanzen Kubernetes Diener trat unser Cluster (der folgende Befehl ausgeführt werden kann, auf jedes Mitglied Ihrer Cluster-Instanz ) :
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
Auf unsere Instanzen Kubernetes Minion hier Dienstlei/hören Anschlü (einschließlich des Kubelet-Dienstes, mit denen der Austausch von Informationen mit Meister K) :
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
Überprüfung der Kommunikation mit dem Master-Kubernetes-API :
Die UI-Kubernet :
Um das Dashboard Kubernetes zuzugreifen, müssen Sie Verbindungen zu Port zulassen 8080 (Kubernetes API-Masterserver) und einen Port durchgeführt, ggf. Weiterleit (Bereich weit) Hafen 8080 Ihr Kubernetes-master-Instanz. Dann, einfach gehen Sie zu der Url http://adresse_ip_publique_instance_kubernetes_master:8080/static/app/#/dashboard/ in Ihrem Browser :
Seit diesem Dashboard gehören Sie andere mögliche zum Anzeigen von Informationen auf Ihrem K (Kubernetes Minion). Klicken Sie hierzu auf "Anza" :
Klicken Si "Knot" :
Die Liste der Ihre Knoten Kubernetes Diener ers :
Klicken Sie auf einen von ihnen Informationen zu diesem Knoten angezeigt (Version von Docker, System, KubeProxy und Kubelet, etc. |) :
Kubernetes CLI :
Sie können auch die Tools Kubectl Seit Ihrem Kubernetes master-Instanz. Hierzu müssen Sie dieses Dienstprogramm wie folgt installieren :
Sobald in ssh auf Ihrem Meister Kubernetes-Instanztyp folgende Befehle eingeloggt :
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
Test der gute Kommunikation mit Ihren API-Kubernetes :
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
Wir können somit einen ersten Container Nginx in unserem Cluster bereits :
core@Kube-MASTER ~ $ kubectl run-container nginx --image=nginx
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
nginx nginx nginx run-container=nginx 1
Dann wir können oder sogar auf die unsere Gastgeber dieser Container bereitgestellt wird, den Namen der die Hülse und di :
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
Wir finden diese Informationen über die Kubernete UI-Dashboard in "Anza" Dan "Hü" :
Wir sehen die Ip des Hosts auf dem Container bereitgestellt, mit dem Namen der Pod und seine IP-Adresse :
Ein Klick darauf ruft weitere Details auf unserer Pod :
Wir können unsere Container einfach aufhören :
core@Kube-MASTER ~ $ kubectl stop rc nginx
replicationcontrollers/nginx
Wir können auch unsere Container mit bereitstellen 2 Replika :
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
Für weitere Informationen laden zur Architektur, Komponenten und zum Betrieb eines Clusters Kubernetes wir Sie, die offizielle Dokumentation zu lesen "Kubernetes Architektur" :









Die automatische Aktualisierung der Kommentare aktivieren.