Kubernetes: Usando Kubernetes na IBM Cloud: Difference between revisions

From Wiki
No edit summary
Line 45: Line 45:


= Deploy da sua Primeira aplicação no IBM Cloud=
= Deploy da sua Primeira aplicação no IBM Cloud=
<br>


== Push da imagem para o IBM Cloud Container Registry ==
== Push da imagem para o IBM Cloud Container Registry ==


Clonando os exemplos do Github
1) Clonando os exemplos do Github


  mkdir Curso
  mkdir Curso
  <nowiki>git clone https://github.com/IBM/container-service-getting-started-wt.git</nowiki>
  <nowiki>git clone https://github.com/IBM/container-service-getting-started-wt.git</nowiki>


Login na IBM Cloud
2) Login na IBM Cloud


  bx login --sso
  bx login --sso


Login na IBM Cloud Container Registry.
3) Login na IBM Cloud Container Registry.


  bx cr login
  bx cr login


Criando uma namespace
4) Criando uma namespace


  bx cr namespace-add <my_namespace>
  bx cr namespace-add <my_namespace>


Criando uma docker image
5) Criando uma docker image


  docker build --tag registry.ng.bluemix.net/<my_namespace>/hello-world:1 .
  docker build --tag registry.ng.bluemix.net/<my_namespace>/hello-world:1 .


Verificando a imagem
6) Verificando a imagem


  docker images
  docker images


Fazendo o push da image
7) Fazendo o push da image


  docker push registry.ng.bluemix.net/<my_namespace>/hello-world:1
  docker push registry.ng.bluemix.net/<my_namespace>/hello-world:1


Verifique que o cluster está pronto pra uso
8) Verifique que o cluster está pronto pra uso


  bx cs clusters
  ibmcloud cs clusters
# verificar se o estado está normal
 
: verificar se o estado está NORMAL
   
   
  bx cs workers <yourclustername>
  ibmcloud cs workers <yourclustername>
# Verifica se os workers estão no estado "Normal" com o status "Ready"
 
: Verifica se os workers estão no estado NORMAL com o status READY


Anotar o ip público do '''worker'''.
Anotar o ip público do '''worker'''.
<br>


== Deploy da aplicação ==
== Deploy da aplicação ==


Execute o comando e defina as variáveis de ambiente
1) Execute o comando e defina as variáveis de ambiente


  bx cs cluster-config <yourclustername>
  ibmcloud cs cluster-config <yourclustername>


Exemplo no Mac
Exemplo no Mac:


  export KUBECONFIG=/Users/<user_name>/.bluemix/plugins/container-service/clusters/pr_firm_cluster/kube-config-prod-par02-pr_firm_cluster.yml
  export KUBECONFIG=/Users/<user_name>/.bluemix/plugins/container-service/clusters/pr_firm_cluster/kube-config-prod-par02-pr_firm_cluster.yml


Iniciando a aplicação
2) Iniciando a aplicação


  kubectl run hello-world --image=registry.ng.bluemix.net/<my_namespace>/hello-world:1
  kubectl run hello-world --image=registry.ng.bluemix.net/<my_namespace>/hello-world:1


Verifique o status pelo comando
3) Verifique o status pelo comando


  kubectl get pods
  kubectl get pods


Quando o status estiver como '''Running''', execute
4) Quando o status estiver como RUNNING, execute


  kubectl expose deployment/hello-world --type="NodePort" --port=8080
  kubectl expose deployment/hello-world --type="NodePort" --port=8080
Line 113: Line 117:


Outros comandos: [[Kubernetes:_Trabalhando_com_o_kubectl#Para_achar_a_porta|Para achar a porta]], [[Kubernetes:_Trabalhando_com_o_kubectl#Para_remover_o_Deployment|Para remover o Deployment]] , [[Kubernetes:_Trabalhando_com_o_kubectl#Para_remover_o_Service|Para remover o Service]]
Outros comandos: [[Kubernetes:_Trabalhando_com_o_kubectl#Para_achar_a_porta|Para achar a porta]], [[Kubernetes:_Trabalhando_com_o_kubectl#Para_remover_o_Deployment|Para remover o Deployment]] , [[Kubernetes:_Trabalhando_com_o_kubectl#Para_remover_o_Service|Para remover o Service]]
<br>


= Escalando e atualizando aplicações -- services, replica sets e health checks =
= Escalando e atualizando aplicações -- services, replica sets e health checks =

Revision as of 14:07, 28 October 2018

Existe um curso sobre Kubernetes na IBM Cloud, o link é o seguinte https://courses.cognitiveclass.ai/

Os exemplos do curso estão no GitHub https://github.com/IBM/container-service-getting-started-wt


Pré-requisitos

1) Instalando os pré-requisitos no MacOS

brew install kubectl 
brew cask install ibm-cloud-cli
brew install cfssl
brew install docker

2) Login na IBM Cloud

 ibmcloud login

Para Login Federado ou para Funcionário IBM use "ibmcloud login -sso"

3) Adicionando os plugins para criar e gerenciar clusters Kubernetes

ibmcloud plugin install container-service -r Bluemix
ibmcloud plugin install container-registry -r Bluemix

4) Listando plug-ins instalados...

ibmcloud plugin list




Provisionando um Cluster na IBM Cloud

  • Via linha de comando
ibmcloud cs cluster-create --name <name-of-cluster>
  • Via console
Vá no endereço https://console.bluemix.net/catalog/ e localize a entrada IBM Cloud Kubernetes Service.




Deploy da sua Primeira aplicação no IBM Cloud


Push da imagem para o IBM Cloud Container Registry

1) Clonando os exemplos do Github

mkdir Curso
git clone https://github.com/IBM/container-service-getting-started-wt.git

2) Login na IBM Cloud

bx login --sso

3) Login na IBM Cloud Container Registry.

bx cr login

4) Criando uma namespace

bx cr namespace-add <my_namespace>

5) Criando uma docker image

docker build --tag registry.ng.bluemix.net/<my_namespace>/hello-world:1 .

6) Verificando a imagem

docker images

7) Fazendo o push da image

docker push registry.ng.bluemix.net/<my_namespace>/hello-world:1

8) Verifique que o cluster está pronto pra uso

ibmcloud cs clusters
verificar se o estado está NORMAL
ibmcloud cs workers <yourclustername>
Verifica se os workers estão no estado NORMAL com o status READY

Anotar o ip público do worker.

Deploy da aplicação

1) Execute o comando e defina as variáveis de ambiente

ibmcloud cs cluster-config <yourclustername>

Exemplo no Mac:

export KUBECONFIG=/Users/<user_name>/.bluemix/plugins/container-service/clusters/pr_firm_cluster/kube-config-prod-par02-pr_firm_cluster.yml

2) Iniciando a aplicação

kubectl run hello-world --image=registry.ng.bluemix.net/<my_namespace>/hello-world:1

3) Verifique o status pelo comando

kubectl get pods

4) Quando o status estiver como RUNNING, execute

kubectl expose deployment/hello-world --type="NodePort" --port=8080


Com o navegador, acesse o ip e porta para visualizar

Outros comandos: Para achar a porta, Para remover o Deployment , Para remover o Service

Escalando e atualizando aplicações -- services, replica sets e health checks

Adicionando replicas via linha de comando

Adicionando via linha de comando

$ kubectl scale --replicas=10 deployment hello-world


Adicionando replicas via arquivo de configuração

Adicionando via edição da configuração

kubectl edit deployment/<name-of-deployment>

Alterar o item replicas

...
   spec:
     replicas: 1

Salve e feche o arquivo

Verificando o rollout da alteração

Verificando o rollout da alteração

kubectl rollout status deployment/hello-world

Após o rollout verifique se os pods estão executando.

kubectl get pods

o STATUS deve ser RUNNING.

Ver também