SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Kubernetes
Iniciando com
Meetup GDG Uberlândia 2018
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
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
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
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
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
Chega de papo e
Mão na Massa
Meetup GDG Uberlândia 2018
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
Servidores
● 03 hosts - Servidores
Vamos utilizar 03 servidores no Google Cloud usando Ubuntu 16.04 LTS
com a seguintes nomenclaturas e configurações:
- Master - 2GB RAM - 1 vCPU
- Node1 - 2GB RAM - 1 vCPU
- Node2 - 2GB RAM - 1 vCPU
Meetup GDG Uberlândia 2018
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
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
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
E por fim instalando o Kubernetes
● Execute o seguinte comando:
# apt-get install -y kubelet kubeadm kubectl
Meetup GDG Uberlândia 2018
Iniciando o cluster
● Execute o seguinte comando:
# kubeadm init --apiserver-advertise-address $(hostname -i)
aguardar a saída...
Meetup GDG Uberlândia 2018
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
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
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
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
Gerenciando o Cluster
● Está ruim de ficar digitando? use o auto-complete:
# source <(kubectl completion bash)
Meetup GDG Uberlândia 2018
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
Finalmente nosso primeiro Deploy!
● Vamos subir nosso primeiro pod:
# kubectl run gdg-nginx --image nginx
# kubectl get deployments
Meetup GDG Uberlândia 2018
Escalando nosso Pod
● Execute o comando abaixo:
# kubectl scale deployment gdg-nginx --replicas=10
Meetup GDG Uberlândia 2018
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
Deletando nosso Pod
● Execute o comando abaixo:
# kubectl delete deployment gdg-nginx
Meetup GDG Uberlândia 2018
Dúvidas
Meetup GDG Uberlândia 2018
Kubernetes
Então #partiu ?
Meetup GDG Uberlândia 2018
Contatos
diogo.alves.barbosa@gmail.com
Instagram: @diogo.alvesoficial
linkedin.com/in/diogoalvesbarbosa
Referências:
https://kubernetes.io/docs/tutorials/kubernetes-basics/
https://kubernetes.io/docs/setup/independent/install-kubeadm/
Meetup GDG Uberlândia 2018

Mais conteúdo relacionado

Mais procurados

Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Ricardo Katz
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers tdc-globalcode
 
Drupal Camp CI&T - Kubernetes and Google Container Engine
Drupal Camp CI&T - Kubernetes and Google Container EngineDrupal Camp CI&T - Kubernetes and Google Container Engine
Drupal Camp CI&T - Kubernetes and Google Container EngineFrancis Fernandes da Luz
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...Renato Groff
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...tdc-globalcode
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhatdc-globalcode
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesWillian Azevedo
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!Evandro Couto
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoTobias Sette
 

Mais procurados (19)

Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022
 
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
 
Drupal Camp CI&T - Kubernetes and Google Container Engine
Drupal Camp CI&T - Kubernetes and Google Container EngineDrupal Camp CI&T - Kubernetes and Google Container Engine
Drupal Camp CI&T - Kubernetes and Google Container Engine
 
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - .NET SP...
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
 
TDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unhaTDC2018SP | Trilha Containers - Linux Conteineres na unha
TDC2018SP | Trilha Containers - Linux Conteineres na unha
 
Docker
DockerDocker
Docker
 
O poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e KubernetesO poder dos microsserviços com Docker e Kubernetes
O poder dos microsserviços com Docker e Kubernetes
 
Workshop Docker
Workshop DockerWorkshop Docker
Workshop Docker
 
iBeer: Docker
iBeer: DockeriBeer: Docker
iBeer: Docker
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 

Semelhante a Iniciando com kubernetes

ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...Renato Groff
 
Criando operators para kubernetes usando go
Criando operators para kubernetes usando goCriando operators para kubernetes usando go
Criando operators para kubernetes usando goMatheus Moraes
 
Curso de Verão - Aula 02 - Orquestração de Contêineres
Curso de Verão - Aula 02 - Orquestração de ContêineresCurso de Verão - Aula 02 - Orquestração de Contêineres
Curso de Verão - Aula 02 - Orquestração de ContêineresGuilhermeJorgeAragod
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no KubernetesKelvin Silva
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Renato Groff
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)WSO2
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Renato Groff
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018Renato Groff
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
Escalonando o mundo com kubernetes
Escalonando o mundo com kubernetesEscalonando o mundo com kubernetes
Escalonando o mundo com kubernetesMundo Docker
 
Acelerando sua startup com kubernetes
Acelerando sua startup com kubernetesAcelerando sua startup com kubernetes
Acelerando sua startup com kubernetesValdomiro Bilharvas
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Renato Groff
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaRenato Groff
 
Aplicações poderosas e elegantes aprenda a usar Kubernetes
Aplicações poderosas e elegantes aprenda a usar KubernetesAplicações poderosas e elegantes aprenda a usar Kubernetes
Aplicações poderosas e elegantes aprenda a usar KubernetesValdomiro Bilharvas
 

Semelhante a Iniciando com kubernetes (20)

ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
ASP.NET Core + Kubernetes + Azure: Orquestrando containers na nuvem - Develop...
 
Criando operators para kubernetes usando go
Criando operators para kubernetes usando goCriando operators para kubernetes usando go
Criando operators para kubernetes usando go
 
Curso de Verão - Aula 02 - Orquestração de Contêineres
Curso de Verão - Aula 02 - Orquestração de ContêineresCurso de Verão - Aula 02 - Orquestração de Contêineres
Curso de Verão - Aula 02 - Orquestração de Contêineres
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)Publicando WSO2 API Manager no Kubernetes (Portuguese)
Publicando WSO2 API Manager no Kubernetes (Portuguese)
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
DevOpsDays Brasilia 2017
DevOpsDays Brasilia 2017DevOpsDays Brasilia 2017
DevOpsDays Brasilia 2017
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
ASP.NET Core + Kubernetes + Azure - Community Bootcamp - Abril/2018
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Escalonando o mundo com kubernetes
Escalonando o mundo com kubernetesEscalonando o mundo com kubernetes
Escalonando o mundo com kubernetes
 
Acelerando sua startup com kubernetes
Acelerando sua startup com kubernetesAcelerando sua startup com kubernetes
Acelerando sua startup com kubernetes
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Aplicações poderosas e elegantes aprenda a usar Kubernetes
Aplicações poderosas e elegantes aprenda a usar KubernetesAplicações poderosas e elegantes aprenda a usar Kubernetes
Aplicações poderosas e elegantes aprenda a usar Kubernetes
 

Iniciando com kubernetes

  • 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
  • 9. Servidores ● 03 hosts - Servidores Vamos utilizar 03 servidores no Google Cloud usando Ubuntu 16.04 LTS com a seguintes nomenclaturas e configurações: - Master - 2GB RAM - 1 vCPU - Node1 - 2GB RAM - 1 vCPU - Node2 - 2GB RAM - 1 vCPU 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
  • 26. Kubernetes Então #partiu ? Meetup GDG Uberlândia 2018