Diferenças entre edições de "Implantar um cluster Kubernetes com CoreOS"

Fonte: Pt Ikoula wiki
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 +
<span data-link_translate_es_title="Implementar un clúster Kubernetes con CoreOS"  data-link_translate_es_url="Implementar+un+cl%C3%BAster+Kubernetes+con+CoreOS"></span>[[:es:Implementar un clúster Kubernetes con CoreOS]][[es:Implementar un clúster Kubernetes con CoreOS]]
 
<span data-link_translate_en_title="Deploy a cluster Kubernetes with CoreOS"  data-link_translate_en_url="Deploy+a+cluster+Kubernetes+with+CoreOS"></span>[[:en:Deploy a cluster Kubernetes with CoreOS]][[en:Deploy a cluster Kubernetes with CoreOS]]
 
<span data-link_translate_en_title="Deploy a cluster Kubernetes with CoreOS"  data-link_translate_en_url="Deploy+a+cluster+Kubernetes+with+CoreOS"></span>[[:en:Deploy a cluster Kubernetes with CoreOS]][[en:Deploy a cluster Kubernetes with CoreOS]]
 
<span data-link_translate_fr_title="Deployer un cluster Kubernetes avec CoreOS"  data-link_translate_fr_url="Deployer_un_cluster_Kubernetes_avec_CoreOS"></span>[[:fr:Deployer un cluster Kubernetes avec CoreOS]][[fr:Deployer un cluster Kubernetes avec CoreOS]]
 
<span data-link_translate_fr_title="Deployer un cluster Kubernetes avec CoreOS"  data-link_translate_fr_url="Deployer_un_cluster_Kubernetes_avec_CoreOS"></span>[[:fr:Deployer un cluster Kubernetes avec CoreOS]][[fr:Deployer un cluster Kubernetes avec CoreOS]]

Revisão das 16h23min de 29 de setembro de 2015

es:Implementar un clúster Kubernetes con CoreOS en:Deploy a cluster Kubernetes with CoreOS fr:Deployer un cluster Kubernetes avec CoreOS

Este artigo foi traduzido por um sistema de tradução automática. Você pode visualizar a fonte do artigo aqui.




Este procedimento descreve como implantar rapidamente e simplesmente um cluster Kubernetes multi sistema autônomo nós com 3 CoreOS de instâncias. Kubernetes trabalhar em modo cliente - Servidor, cliente Kubernetes é denominado "Assecla kubernetes " e o servidor "Mestre kubernetes ". A mestre Kubernetes instância é a instância que vai orquestrar centralmente instâncias Kubernetes asseclas. No nosso exemplo, uma instância CoreOS irá desempenhar o papel de mestre Kubernetes e as outras duas instâncias irão desempenhar o papel de nó Kubernetes (Assecla ).


Kubernetes é um sistema de fonte aberta orquestração criado pelo Google para gerenciar o Contêiner aplicativo com Docker em um cluster de vários hosts (3 CoreOS VM em nosso exemplo ). Permite a escalabilidade de aplicativos, implantação e manutenção. Para obter mais informações, você pode ir GitHub Kubernetes


Presumimos que seu 3 CoreOS instâncias são já implantadas, qu 'Eles podem se comunicar uns com os outros e se você está conectado ssh com o núcleo do usuário.


Se isto não for feito já, atualizar seus CoreOS instâncias para que eles sejam, pelo menos na versão CoreOS 653.0.0 e incluem DCE 2 (Veja nosso FAQ Atualizar CoreOS manualmente). No nosso caso, todos os nossos corpos são em estável 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"


Temos também de garantir que todas as nossas instâncias CoreOS têm um ID de máquina diferente para cluster de contexto de operação adequada. Basta excluir o arquivo /etc/machine-id e reiniciar a cada uma das suas instâncias CoreOS qualquer :


$ sudo rm -f /etc/machine-id && sudo reboot


Configuração da instância kubernetes mestre :

Substituir a nuvem de arquivo - padrão config.yml para nossa configuração mestre Kubernetes executando os seguintes comandos (somente na instância que atuará como o mestre e na mesma ordem do que abaixo ) :


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 qualquer effective :


core@Kube-MASTER ~ $ sudo reboot


Verificamos que o nosso corpo é inicializado corretamente :


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


Você também pode ver serviços /Escuta portas (Há componentes de servidor /Mestre 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


Configuração de instâncias Kubernetes asseclas :

Substituir a nuvem de arquivo - padrão config.yml para nossa configuração Minion kubernetes executando os seguintes comandos em todos os da sua instância que irá desempenhar o papel de Minion kubernetes (somente em instâncias que vão jogar o nó da função /Assecla 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`


Atenção é necessário adaptar o endereço de ip privado da sua instância do mestre kubernetes no comando abaixo (Substitua 10.1.1.138 pelo ip privado da sua instância do mestre kubernetes ) o comando abaixo :


core@Kube-MINION1 ~ $ sudo sed -i 's#MASTER_PRIVATE_IP#10.1.1.138#g' /usr/share/oem/cloud-config.yml


Finalmente uma vez você tem executar esses comandos forma idêntica em cada uma das suas instâncias /nodes kubernetes Assecla , redémarrez celles-ci afin que leur configuration soient effectives et quelles joignent le cluster.


core@Kube-MINION1 ~ $ sudo reboot


Verificamos que nosso 2 instances kubernetes Assecla ont bien rejoint notre cluster (o comando abaixo 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


Em nossas instâncias Minion kubernetes aqui serviços /Escuta portas (dont le service Kubelet par lequel l'échange d'informations se fait avec le Mestre 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


Verificação de comunicação com o mestre Kubernetes API :

A interface do usuário Kubernetes :

Para acessar o painel de controle Kubernetes, você precisa permitir conexões a porta 8080 (Mestre kubernetes API server) e realizada uma porta se necessário encaminhamento (encaminhar a área ) Porto 8080 de votre instance Mestre kubernetes . Ensuite, il vous suffit d'accéder à l'url http://adresse_ip_publique_instance_kubernetes_master:8080/static/app/#/dashboard/ em seu navegador :


Kubernetes-UI.png


Desde este painel de controle, você está entre outros possíveis para exibir informações sobre os nós (Minion kubernetes ). Para isso, você pode clicar em "Vistas " :


Kubernetes-UI-2.png


Clique em "Nós " :


Kubernetes-UI-3.png


La liste de vos nodes Assecla kubernetes apparait :


Kubernetes-UI-4.png


Clique em l'un d'eux pour afficher les informations relatives à ce node (versão de Docker, sistema, KubeProxy e Kubelet, etc. |) :


Kubernetes-UI-5.png


Kubernetes CLI :


Você também pode usar as ferramentas Kubectl deEntão votre instance Mestre kubernetes . Pour se faire, vous devez installer cette utilitaire comme suit :


Une fois connecté en ssh sur votre instance Mestre kubernetes 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


Teste de boa comunicação com sua 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


Estamos, portanto, pode implantar um recipiente primeiro Nginx no nosso cluster :


core@Kube-MASTER ~ $ kubectl run-container nginx --image=nginx
CONTROLLER   CONTAINER(S)   IMAGE(S)   SELECTOR              REPLICAS
nginx        nginx          nginx      run-container=nginx   1


Então nós podemos ou até mesmo em que nossos anfitriões deste recipiente é implantado, o nome da cápsula e o ip que foi foi afetado :


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


Podemos encontrar esta mesma informação através do painel de controle Kubernete UI indo "Vistas " Então "Vagens " :


Kubernetes-UI-6.png


Podemos ver o ip do host no qual este recipiente implantado, com o nome da cápsula e seu endereço ip :


Kubernetes-UI-7.png


Clicando sobre ele obtém mais detalhes sobre nosso Pod :


Kubernetes-UI-8.png


Podemos parar nosso recipiente simplesmente :


core@Kube-MASTER ~ $ kubectl stop rc nginx
replicationcontrollers/nginx


Nós também podem implantar o nosso contentor com 2 réplicas :


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


Kubernetes-UI-9.png


Para obter mais informações, na arquitetura, componentes e funcionamento de um cluster Kubernetes, convidamos você a ler a documentação oficial "Arquitetura Kubernetes" :


Não tem permissão para colocar comentários.