Diferenças entre edições de "Implantar um cluster Kubernetes com CoreOS"
| Linha 1: | Linha 1: | ||
| + | <span data-link_translate_ar_title="نشر مجموعة كوبيرنيتيس مع CoreOS" data-link_translate_ar_url="%D9%86%D8%B4%D8%B1+%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9+%D9%83%D9%88%D8%A8%D9%8A%D8%B1%D9%86%D9%8A%D8%AA%D9%8A%D8%B3+%D9%85%D8%B9+CoreOS"></span>[[:ar:نشر مجموعة كوبيرنيتيس مع CoreOS]][[ar:نشر مجموعة كوبيرنيتيس مع CoreOS]] | ||
<span data-link_translate_zh_title="部署群集与 CoreOS Kubernetes" data-link_translate_zh_url="%E9%83%A8%E7%BD%B2%E7%BE%A4%E9%9B%86%E4%B8%8E+CoreOS+Kubernetes"></span>[[:zh:部署群集与 CoreOS Kubernetes]][[zh:部署群集与 CoreOS Kubernetes]] | <span data-link_translate_zh_title="部署群集与 CoreOS Kubernetes" data-link_translate_zh_url="%E9%83%A8%E7%BD%B2%E7%BE%A4%E9%9B%86%E4%B8%8E+CoreOS+Kubernetes"></span>[[:zh:部署群集与 CoreOS Kubernetes]][[zh:部署群集与 CoreOS Kubernetes]] | ||
<span data-link_translate_ro_title="Implementaţi un cluster Kubernetes cu CoreOS" data-link_translate_ro_url="Implementa%C5%A3i+un+cluster+Kubernetes+cu+CoreOS"></span>[[:ro:Implementaţi un cluster Kubernetes cu CoreOS]][[ro:Implementaţi un cluster Kubernetes cu CoreOS]] | <span data-link_translate_ro_title="Implementaţi un cluster Kubernetes cu CoreOS" data-link_translate_ro_url="Implementa%C5%A3i+un+cluster+Kubernetes+cu+CoreOS"></span>[[:ro:Implementaţi un cluster Kubernetes cu CoreOS]][[ro:Implementaţi un cluster Kubernetes cu CoreOS]] | ||
Revisão das 15h06min de 18 de novembro de 2015
ar:نشر مجموعة كوبيرنيتيس مع CoreOS
zh:部署群集与 CoreOS Kubernetes
ro:Implementaţi un cluster Kubernetes cu CoreOS
pl: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
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 :
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 " :
Clique em "Nós " :
La liste de vos nodes Assecla kubernetes apparait :
Clique em l'un d'eux pour afficher les informations relatives à ce node (versão de Docker, sistema, KubeProxy e Kubelet, etc. |) :
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 " :
Podemos ver o ip do host no qual este recipiente implantado, com o nome da cápsula e seu endereço ip :
Clicando sobre ele obtém mais detalhes sobre nosso Pod :
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
Para obter mais informações, na arquitetura, componentes e funcionamento de um cluster Kubernetes, convidamos você a ler a documentação oficial "Arquitetura Kubernetes" :









Ativar a atualização automática de comentários