
Como usar Kubernetes na prática
Neste artigo iremos aprender como usar Kubernetes na prática, rodando uma simples aplicação WEB com Kubernetes. Será mostrado e explicado cada passo, com o objetivo de proporcionar maior conhecimento e experiência com a tecnologia.
Importante: este artigo é uma continuação do “Introdução ao Kubernetes“.
Como usar Kubernetes: primeiro objeto da aplicação – POD
No primeiro momento, depois de já ter tudo instalado em sua máquina e o diretório da aplicação criado, precisamos criar nosso objeto POD. Vamos criar o arquivo com as configurações do objeto então:
1 |
Arquivo aplicacao.yaml |
1 2 3 4 5 6 7 8 9 10 |
apiVersion: v1 #versão da API do Kubernetes kind: Pod #Tipo do objeto que será criado metadata: name: aplicacao #Nome de identificação para o objeto pod spec: #Características do objeto containers: - name: container-aplicacao image: php:5.6-apache ports: - containerPort: 80 |
Depois de criar o arquivo do objeto com suas especificações, precisamos rodar o comando que de fato é responsável por sua criação:
1 |
$ kubectl create -f aplicacao.yaml |
1 2 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl create -f aplicacao.yaml pod "aplicacao" created |
Pronto, agora que temos nosso objeto POD criado, será que já podemos testar uma das funcionalidades/vantagens do Kubernetes, que é sua regeneração própria? Bom, vamos testar removendo objeto que criamos e ver se o Kubernetes consegue regenerar ele sozinho:
1 2 |
$ kubectl delete pods aplicacao $ kubectl get pods |
1 2 3 4 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl delete pods aplicacao pod "aplicacao" deleted iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl get pods No resources found. |
Mas o que aconteceu? O Kubernetes deveria ter recriado o objeto não? Bom, acontece que até o momento foi criado apenas o objeto POD, que é um dos objetos mais básicos do kubernetes, sendo assim, ele não tem recursos suficientes para informar o Kubernetes do status de processamento da aplicação. Para que seja possível é necessário criarmos o objeto deployment, que será responsável por atualizar o Kubernetes sobre as informações de processamento.
O objeto Deployment
1 |
Arquivo deployment.yaml |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: aplicacao-deployment spec: template: metadata: labels: name: aplicacao-pod spec: containers: - name: container-aplicacao image: php:5.6-apache ports: - containerPort: 80 |
1 2 |
$ kubectl create -f deployment.yaml $ kubectl get pods |
1 2 3 4 5 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl create -f deployment.yaml deployment.apps "aplicacao-deployment" created iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl get pods NAME READY STATUS RESTARTS AGE aplicacao-deployment-787789445d-77l5r 0/1 ContainerCreating 0 7s |
1 2 |
$ kubectl delete pods aplicacao-deployment-787789445d-77l5r $ kubectl get pods |
1 2 3 4 5 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl delete pods aplicacao-deployment-787789445d-77l5r pod "aplicacao-deployment-787789445d-77l5r" deleted iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl get pods NAME READY STATUS RESTARTS AGE aplicacao-deployment-787789445d-5m6zz 1/1 Running 0 47s |
Obs: Repare na tag de identificação do objeto marcada em vermelho, elas são diferentes, realmente foi criado um novo objeto no lugar do removido.
Depois de tudo isso, queremos poder acessar nossa aplicação Web, mas como fazemos? Os objetos PODs são instáveis e sofrem constantes alterações, dessa forma, não podem ser acessados. Para isso é necessária a criação de mais um objeto, o objeto service ou, em português, serviço. Ele irá funcionar como um balanceador de cargas e nos permitirá o acesso a aplicação.
O objeto Service
1 |
Arquivo servico-aplicacao.yaml |
1 2 3 4 5 6 7 8 9 10 |
apiVersion: v1 kind: Service metadata: name: servico-aplicacao spec: type: LoadBalancer ports: - port: 80 selector: name: aplicacao-pod |
1 2 |
$ kubectl create -f servico-aplicacao.yaml $ minikube service servico-aplicacao --url |
1 2 3 4 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl create -f servico-aplicacao.yaml service "servico-aplicacao" created iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ minikube service servico-aplicacao --url http://192.168.99.100:31866 |
1 2 |
$ kubectl exec -it aplicacao-deployment-787789445d-5m6zz bash $ echo "<?php phpinfo(); ?>" > index.php |
1 2 |
iago@iagomachado ~/Desktop/Arquivos/kubernetes/app$ kubectl exec -it aplicacao-deployment-787789445d-5m6zz bash root@aplicacao-deployment-787789445d-5m6zz:/var/www/html# echo "<?php phpinfo(); ?>" > index.php |
1 2 |
root@aplicacao-deployment-787789445d-5m6zz:/var/www/html# ls index.php |
Conclusão: Como usar Kubernetes na Prática
Realizamos nesse artigo uma simples demonstração e funcionamento de como usar Kubernetes na prática, entretanto, suas funcionalidades se expandem muito além do que foi aqui visto, como questões de escalonamento, volumes, entre muitas outras.
Por esse motivo, caso você tenha interesse em continuar estudando sobre a tecnologia, é recomendado conferir a documentação, e se você ainda não viu, veja nosso Webinar – [Descomplicando Kubernetes].
É importante destacar também, que atualmente existem diversos cursos onlines que ensinam de uma forma mais aprofundada como usar e aproveitar os benefícios da tecnologia. Sendo assim, não pare aqui, siga em frente e aumente seus conhecimentos com Kubernetes!
E ah, fique ligado no Blog da KingHost para mais conhecimentos e dicas. 😉
- Como usar Kubernetes na prática - 29 de maio de 2018
- Kubernetes: uma introdução - 7 de maio de 2018
- Introdução ao Linux - 9 de abril de 2018

