Kubernetes: Usando Kubernetes na IBM Cloud: Difference between revisions

From Wiki
No edit summary
Line 182: Line 182:
<br>
<br>
<br>
<br>
= Deploy de uma aplicação com IBM Watson =
1) Começando o Lab3
cd ..
cd Lab3
==Construindo as images do Watson==
1) Build das images
docker build -t registry.ng.bluemix.net/<namespace>/watson ./watson
docker build -t registry.ng.bluemix.net/<namespace>/watson-talk ./watson-talk
2) push da image Watson para o IBM Cloud Container Registry.
docker push registry.ng.bluemix.net/<namespace>/watson
docker push registry.ng.bluemix.net/<namespace>/watson-talk
3) Atualizar o watson-deployment.yml
Edite o arquivo watson-deployment.yml e altere a tag '''<namespace>'''.
==Criando uma instância do Watson service==
1) Verifique o space e o org
ibmcloud login
Se quiser alterar execute
ibmcloud target --cf
2) Criando o serviço
ibmcloud cf create-service tone_analyzer standard ''tone''
onde ''tone'' é o nome do serviço
Note: When you add the Tone Analyzer service to your account, a message is displayed that the service is not free. If you limit your API calls, this course does not incur charges from the Watson service.
3) Conferindo se o serviço foi criado
ibmcloud cf services
==Criando uma instância do Watson service==


= Ver também =
= Ver também =

Revision as of 15:30, 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


Importante: os comandos bx ou bluemix foram depreciados, agora utilizar o comando ibmcloud

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


No Lab1, temos o deploy de uma aplicação que exibe o hostname. Os arquivos principais do lab são:

  • Dockerfile : define os atributos da image. Busca uma image com o Node.js e instala a aplicação app.js
  • app.js : Aplicação em Node.js que pronta o hostmame
  • package.json: define as dependências necessários pela aplicação app.js

Clonando os exemplos do Github

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



Push da imagem para o IBM Cloud Container Registry

1) Começando o Lab1

cd Lab1

2) Login na IBM Cloud

ibmcloud login --sso

3) Login na IBM Cloud Container Registry.

ibmcloud cr login

4) Criando uma namespace

ibmcloud cr namespace-add <my_namespace>

namespaces é um forma de organização de cluster. No dia a dia, seria projeto1_prod, projeto1_dev, projeto2_prod, ...

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

1) Começando o Lab2

cd ..
cd Lab2

Adicionando Replicas

  • 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.


Deploy de uma aplicação com IBM Watson

1) Começando o Lab3

cd ..
cd Lab3

Construindo as images do Watson

1) Build das images

docker build -t registry.ng.bluemix.net/<namespace>/watson ./watson

docker build -t registry.ng.bluemix.net/<namespace>/watson-talk ./watson-talk

2) push da image Watson para o IBM Cloud Container Registry.

docker push registry.ng.bluemix.net/<namespace>/watson

docker push registry.ng.bluemix.net/<namespace>/watson-talk

3) Atualizar o watson-deployment.yml

Edite o arquivo watson-deployment.yml e altere a tag <namespace>.


Criando uma instância do Watson service

1) Verifique o space e o org

ibmcloud login

Se quiser alterar execute

ibmcloud target --cf

2) Criando o serviço

ibmcloud cf create-service tone_analyzer standard tone

onde tone é o nome do serviço

Note: When you add the Tone Analyzer service to your account, a message is displayed that the service is not free. If you limit your API calls, this course does not incur charges from the Watson service.

3) Conferindo se o serviço foi criado

ibmcloud cf services

Criando uma instância do Watson service

Ver também