O documento apresenta uma introdução ao Kubernetes feita durante um meetup em Uberlândia. O palestrante explica o que são containers Docker, o que é o Kubernetes e como funciona, demonstrando na prática a instalação de um cluster Kubernetes com três nós e o deploy de um primeiro pod nginx.
2. Diogo Alves Miranda Barbosa
Prazer meu nome é
Atualmente sou
● Arquiteto de Soluções na Cedro Technologies;
● Entusiasta pela cultura DevOps;
● Possuo 13 anos de experiência em diversas empresas de TI e possuo
certificações como AWS Solutions Architect, Ethical Hacker(CEH), LPI e
Outras…
● Atuo como Instrutor em alguns treinamentos profissionais para certificação
LPI;
Meetup GDG Uberlândia 2018
3. Não tem como falar de Kubernetes sem
falar sobre Containers Docker...
● Docker surgiu em meados de 2013 como alternativa para virtualização para isolar e empacotar
aplicações, basicamente o Docker funciona em uma camada do Kernel chamada LXC(Linux
Container) permitindo a execução de processos de maneira isolada parcialmente ou totalmente,
e atualmente substituído pela LibContainer.
● Containers Docker são criados baseados a partir de imagens hospedadas em repositórios
providos pela empresa chamado “Dockerhub”
https://hub.docker.com/
Meetup GDG Uberlândia 2018Meetup GDG Uberlândia 2018
4. O que é Kubernetes?
Solução “Open Source” desenvolvida pela Google para orquestração do
cluster de containers para atender apenas demandas internas da própria
empresa, em 2014 foi concedido todo o projeto para iniciativa “Cloud
Native Computing Foundation” que atua junto com a “Linux Foundation”.
https://www.cncf.io/ https://www.linuxfoundation.org/
Meetup GDG Uberlândia 2018Meetup GDG Uberlândia 2018
5. Benefícios do Kubernetes?
● Container sempre online: verifica a saúde da aplicação e recria o container se identificar alguma
anomalia.
● Autoscaling: obtém métricas e verifica se há necessidade de crescer horizontalmente.
● Descoberta de Serviço: containers recebem um endereço IP e conseguem enxergar um ao outro
por meio de uma rede virtual.
● Crescimento Horizontal: com um simples comando é possível aumentar o número de
containers da mesma imagem.
● Balanceador de Carga: utiliza load balancer para dividir a carga de requisições recebidas entre
os containers.
● Rollbacks automáticos: se algo der errado, Kubernetes volta automaticamente à versão anterior
da aplicação.
● Execução em Batch: permite rodar comandos em batch como containers.
Meetup GDG Uberlândia 2018Meetup GDG Uberlândia 2018
6. Como o Kubernetes Funciona
● Master = Host que gerencia
Minions e Pods no cluster;
● Minions ou Nodes = São os
hosts partes do cluster;
● Pods = Grupos de Containers.
Meetup GDG Uberlândia 2018Meetup GDG Uberlândia 2018
7. Chega de papo e
Mão na Massa
Meetup GDG Uberlândia 2018
8. Para esta receita vamos precisar….
● 03 hosts - Servidores(Físico ou Virtual)
● Docker(Pode ser a última versão)
● Kubeadm(Para construir o cluster)
● Kubectl(Para gerenciar o cluster)
● Kubelet(Cliente que é instalado no cluster para obter as informações)
Meetup GDG Uberlândia 2018
10. Instalando o Docker
● Execute o seguinte comando:
# curl -fsSL https://get.docker.com | bash
● Verificando a versão do Docker:
# docker --version
Meetup GDG Uberlândia 2018
11. Atualizando o Sistema e pré requisitos
● Execute o seguinte comando:
# apt-get update && apt-get install -y apt-transport-https
● Instalando a chave para o repositório do Kubernetes
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg |
apt-key add -
Meetup GDG Uberlândia 2018
12. Atualizando o Sistema e pré requisitos
● Configurar o repositório do kubernetes:
# echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" >
/etc/apt/sources.list.d/kubernetes.list
● Atualizando o Sistema operacional:
# apt-get update
Meetup GDG Uberlândia 2018
13. E por fim instalando o Kubernetes
● Execute o seguinte comando:
# apt-get install -y kubelet kubeadm kubectl
Meetup GDG Uberlândia 2018
14. Iniciando o cluster
● Execute o seguinte comando:
# kubeadm init --apiserver-advertise-address $(hostname -i)
aguardar a saída...
Meetup GDG Uberlândia 2018
15. Iniciando o cluster
● Execute o seguinte comando:
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
Meetup GDG Uberlândia 2018
16. Configurando a rede virtual do cluster
● Execute o seguinte comando:
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64
| tr -d 'n')"
Meetup GDG Uberlândia 2018
17. Adicionando Minions ao Cluster
● Execute o seguinte comando:
# kubeadm join --token 39c341.a3bc3c4dd49758d5 IP_DO_MASTER:6443
--discovery-token-ca-cert-hash sha256:37092
Meetup GDG Uberlândia 2018
18. Gerenciando o Cluster
● Verificar se todos os nodes do nosso cluster estão ok:
# kubectl get nodes
# kubectl describe node node-name
Meetup GDG Uberlândia 2018
19. Gerenciando o Cluster
● Está ruim de ficar digitando? use o auto-complete:
# source <(kubectl completion bash)
Meetup GDG Uberlândia 2018
20. Gerenciando o Cluster
● Verificar se todos os Pods do nosso cluster estão ok::
# kubectl get pods
# kubectl get pods -n kube-system -o wide
Meetup GDG Uberlândia 2018
21. Finalmente nosso primeiro Deploy!
● Vamos subir nosso primeiro pod:
# kubectl run gdg-nginx --image nginx
# kubectl get deployments
Meetup GDG Uberlândia 2018
22. Escalando nosso Pod
● Execute o comando abaixo:
# kubectl scale deployment gdg-nginx --replicas=10
Meetup GDG Uberlândia 2018
23. Expondo nosso Pod
● Execute o comando abaixo:
# kubectl run gdg-nginx --image=nginx --port=80
--image-pull-policy=Never
# kubectl expose deployment gdg-nginx --type=LoadBalancer
Meetup GDG Uberlândia 2018
24. Deletando nosso Pod
● Execute o comando abaixo:
# kubectl delete deployment gdg-nginx
Meetup GDG Uberlândia 2018