Kubernetes: Usando Kubernetes na IBM Cloud

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 


 * 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

ibmcloud login --sso

3) Login na IBM Cloud Container Registry.

ibmcloud cr login

4) Criando uma namespace

ibmcloud cr namespace-add 

5) Criando uma docker image

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

6) Verificando a imagem

docker images

7) Fazendo o push da image

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

8) Verifique que o cluster está pronto pra uso

ibmcloud cs clusters

verificar se o estado está NORMAL ibmcloud cs workers

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

Exemplo no Mac:

export KUBECONFIG=/Users//.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//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

 * 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/

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 =


 * Docker: Trabalhando com Containers
 * Artigos sobre Cloud
 * Mais Artigos sobre Cloud / WebDev / Tecnologias