Wdróż klaster Kubernetes z CoreOS
de:Bereitstellen eines Clusters Kubernetes mit 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
ro:Implementaţi un cluster Kubernetes cu CoreOS
ru:Развертывание кластера Kubernetes с CoreOS
fr:Deployer un cluster Kubernetes avec CoreOS
Artykuł ten jest wynikiem translacji automatycznej wykonywane przez oprogramowanie. Możesz przeglądać źródła artykułu tutaj.
W tej procedurze opisano sposób wdrożyć szybko i po prostu klastra Kubernetes wielu węzłów z 3 przypadki CoreOS. Kubernetes działa w trybie klienckim - Serwer, klienta Kubernetes o nazwie "Kubernetes sługa " i serwer "Mistrz Kubernetes ". Kubernetes Master wystąpienie jest wystąpienie, które będzie centralnie orkiestrować wystąpień Kubernetes sługusów. W naszym przykładzie, wystąpienie CoreOS zagra rolę wzorca Kubernetes i innych dwóch wystąpień będzie odgrywać rolę węzła Kubernetes (ulubieniec ).
Kubernetes jest systemem aranżacji otwarte źródła stworzony przez Google do zarządzania aplikacji kontenera z Docker na grono wielu hostów (3 CoreOS VM w naszym przykładzie ). To pozwala na wdrożenie, utrzymanie i skalowalność aplikacji. Aby uzyskać więcej informacji można przejść GitHub Kubernetes
Zakładamy, że twój 3 CoreOS wystąpienia są już rozmieszczone, qu 'mogą się one komunikować ze sobą i że jesteś zalogowany ssh z rdzeniem użytkownika.
Jeśli nie jest to już zrobione, zaktualizować swoje wystąpienia CoreOS tak, że są one co najmniej w wersji CoreOS 653.0.0 i obejmują DCE 2 (Zobacz FAQ Ręczna aktualizacja CoreOS). W naszym przypadku wszystkie nasze ciała są w stabilnych 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"
Należy zapewnić, że wszystkie nasze wystąpienia CoreOS ma identyfikatora innej Maszyny dla prawidłowego działania kontekście klastra. Po prostu usunąć plik /etc/machine-id i ponownie uruchomić każdy z swoje wystąpienia CoreOS albo :
$ sudo rm -f /etc/machine-id && sudo reboot
Konfigurację wystąpienia Kubernetes Master :
Zastąpienie pliku chmura - domyślna config.yml do naszej konfiguracji Kubernetes Master wykonując następujące polecenia (tylko na wystąpienie, która będzie działać jako kapitan i w tej samej kolejności niż poniżej ) :
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
Możemy ponownie nasze wystąpienie tak, aby jego konfiguracja jest skuteczne :
core@Kube-MASTER ~ $ sudo reboot
Możemy sprawdzić, że nasz organizm jest prawidłowo zainicjowany :
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
Możesz również zobaczyć usługi /nasłuchiwać portów (Tam są składniki serwera /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
Konfigurację wystąpienia Kubernetes sługusów :
Zastąpienie pliku chmura - domyślna config.yml do naszej konfiguracji Kubernetes Minion wykonując następujące polecenia na wszystkie swoje wystąpienie, które będą odgrywać rolę Kubernetes Minion (tylko na przypadki, które będzie odgrywać rolę węzła /ulubieniec i w tej samej kolejności niż poniżej ) :
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`
Uwaga, to jest niezbędne, aby dostosować adres ip prywatne kubernetes wzorca wystąpienie w ten rozkazywać poniżej (zastąpić 10.1.1.138 przez prywatne ip kubernetes wzorca wystąpienie ) Poniższe polecenie :
core@Kube-MINION1 ~ $ sudo sed -i 's#MASTER_PRIVATE_IP#10.1.1.138#g' /usr/share/oem/cloud-config.yml
Wreszcie kiedyś mają wykonywania tych poleceń identycznie na każdym swoim wystąpień /węzłów kubernetes sługa, ponownie je tak, aby ich konfiguracja są skuteczne i co dołączyć do klastra.
core@Kube-MINION1 ~ $ sudo reboot
Sprawdzić, czy nasz 2 dobrze, wystąpienia kubernetes minion dołączył do naszego klastra (następujące polecenia mogą być uruchamiane na członka swojego wystąpienia klastra ) :
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
Na nasze wystąpienia usługi Kubernetes Minion tutaj /nasłuchiwać portów (włączając usługę Kubelet, przez co wymiana informacji odbywa się z głównego Kubernetes ) :
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
Weryfikacja komunikacji z Master Kubernetes API :
UI Kubernetes :
Aby uzyskać dostęp do panelu Kubernetes, należy zezwalać na połączenia z portem 8080 (Kubernetes serwer główny API ) i przeprowadzić portu, jeśli wymagane przekazywanie (do przodu obszaru ) portu 8080 Kubernetes wzorca wystąpienie. Następnie, po prostu przejdź do adresu url http://adresse_ip_publique_instance_kubernetes_master:8080/static/app/#/dashboard/ w przeglądarce :
Od ten deska rozdzielcza, jesteś wśród innych możliwych do wyświetlania informacji o węzły (Kubernetes Minion). Do tego, możesz kliknąć na "Widoki " :
Kliknij na "Węzły " :
Zostanie wyświetlona lista twój ulubieniec Kubernetes węzłów :
Kliknij na jeden z nich, aby wyświetlić informacje na temat tego węzła (wersja z Docker, system, KubeProxy i Kubelet, itp. |) :
Kubernetes CLI :
Można również użyć narzędzia Kubectl Od Kubernetes wzorca wystąpienie. Aby to zrobić, należy zainstalować narzędzie następujący :
Po zalogowaniu do ssh na swoje wystąpienie Kubernetes główny typ ten kolejne polecenia :
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 dobrej komunikacji z Twojej 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
Możemy w ten sposób wdrożyć pierwszy kontener Nginx naszego klastra :
core@Kube-MASTER ~ $ kubectl run-container nginx --image=nginx
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
nginx nginx nginx run-container=nginx 1
Wtedy możemy lub nawet na które nasi gospodarze tego kontenera jest wdrażana, nazwę pod i ip, która była wywarła :
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
Znajdujemy ten sam informacji poprzez panel Kubernete UI przechodząc "Widoki " Następnie "Strąki " :
Możemy zobaczyć ip hosta, na którym ten kontener rozmieszczone, z nazwą Pod i jego adres ip :
Klikając na niego dostaje więcej szczegółów na naszej Pod :
Możemy powstrzymać nasz kontener po prostu :
core@Kube-MASTER ~ $ kubectl stop rc nginx
replicationcontrollers/nginx
Możemy również wdrożyć nasz kontener z 2 repliki :
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
Aby uzyskać więcej informacji architektura, komponenty i funkcjonowania klastra Kubernetes Zapraszamy do czytania oficjalnej dokumentacji "Kubernetes architektura" :









Włącz automatyczne odświeżanie komentarzy