Bereitstellen eines Clusters Kubernetes mit CoreOS
Dieser Artikel wurde maschinell übersetzt. Sie können den Artikel Quelle hier ansehen.
[[:fr::nl:Implementeer een cluster Kubernetes met CoreO]][[:fr:nl:Implementeer een cluster Kubernetes met CoreO]] [[:fr::it:Distribuire un cluster Kubernetes con CoreO]]fr:it:Distribuire un cluster Kubernetes con CoreOS [[:fr::pt:Implantar um cluster Kubernetes com CoreO]]fr:pt:Implantar um cluster Kubernetes com CoreOS [[:fr::es:Implementar un clúster Kubernetes con CoreO]]fr:es:Implementar un clúster Kubernetes con CoreOS [[:fr::en:Deploy a cluster Kubernetes with CoreO]]fr:en:Deploy a cluster Kubernetes with CoreOS
Dieses Verfahren beschreibt, wie schnell bereitstellen und einfach einen Cluster Kubernetes Multi-Knoten mit 3 CoreOS-Instanzen. Kubernetes arbeiten im Clientmodus - Server, Client Kubernetes heißt "Kubernetes Diener " und dem Server "Kubernetes Meister ". 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 (Dieners ).
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 Beispiel ). 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 bereitgestellt, Qu 'Sie können miteinander kommunizieren 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 DCE 2 (Siehe unsere FAQ CoreOS manuell aktualisieren). In unserem Fall sind alle unsere Körper in stabilen 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"
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 entweder :
$ 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
On redémarre notre instance afin que sa configuration entweder effective :
core@Kube-MASTER ~ $ sudo reboot
Wir überprüfen, dass unser Körper richtig initialisiert wird :
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üsse (Es gibt Serverkomponenten /Master Kubernetes ):
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 Schergen :
Ü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 /Dieners et dans le même ordre d'exécution que celui ci-dessous) :
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 anzupassen (Ersetzen 10.1.1.138 von der privaten Ip von Ihrem master Kubernetes-Instanz ) Geben Sie folgenden Befehl :
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 /nodes kubernetes Dieners , redémarrez celles-ci afin que leur configuration soient effectives et quelles joignent le cluster.
core@Kube-MINION1 ~ $ sudo reboot
Wir überprüfen unsere 2 instances kubernetes Dieners ont bien rejoint notre cluster (Geben Sie folgenden Befehl peut être exécuté sur n'importe laquelle de vos instances membre de votre cluster) :
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 Dienstleistungen /hören Anschlüsse (dont le service Kubelet par lequel l'échange d'informations se fait avec le Kubernetes Meister ) :
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-Kubernetes :
Um das Dashboard Kubernetes zuzugreifen, müssen Sie Verbindungen zu Port zulassen 8080 (Kubernetes Meister API server) und einen Port durchgeführt, ggf. Weiterleitung (Bereich weiterleiten ) Hafen 8080 de votre instance Kubernetes Meister . Ensuite, il vous suffit d'accéder à l'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 Knoten (Kubernetes Minion ). Klicken Sie hierzu auf "Anzahl der Ansichten " :
Klicken Sie auf "Knoten " :
La liste de vos nodes Kubernetes Diener apparait :
Klicken Sie auf l'un d'eux pour afficher les informations relatives à ce node (Version von Docker, System, KubeProxy und Kubelet, etc. |) :
Kubernetes CLI :
Sie können auch die Tools Kubectl deDann votre instance Kubernetes Meister . Pour se faire, vous devez installer cette utilitaire comme suit :
Une fois connecté en ssh sur votre instance Kubernetes Meister saisissez les commandes suivantes :
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 bereitstellen, :
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 die Ip, die war war betroffen :
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 "Anzahl der Ansichten " Dann "Hülsen " :
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 Replikate :
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.