Você está na página 1de 33

5/14/22, 11:44 AM Tutoriais | Kubernetes

Tutoriais
1: Olá, Minikube!
2: Aprenda as noções básicas do Kubernetes
2.1: Crie um Cluster
2.1.1: Usando Minikube para criar um cluster
2.1.2: Tutorial interativo - Criando um cluster
2.2: Implantar um aplicativo
2.2.1: Usando kubectl para criar uma implantação
2.2.2: Tutorial interativo - implantando um aplicativo
2.3: Explore seu aplicativo
2.3.1: Visualizando Pods e Nós (Nodes)
2.3.2: Tutorial Interativo - Explorando seu aplicativo
2.4: Exponha publicamente seu aplicativo
2.4.1: Utilizando um serviço para expor seu aplicativo
2.4.2: Tutorial Interativo - Expondo seu aplicativo
2.5: Escale seu aplicativo
2.5.1: Executando múltiplas instâncias de seu aplicativo
2.5.2: Tutorial Interativo - Escalando seu aplicativo

o da documentação contém tutoriais (em inglês). Um tutorial mostra como realizar um objetivo
plexo que uma simples tarefa (/docs/tasks/). Eles podem ser divididos em diversas seções,
com uma sequência de passos e etapas a serem seguidos.
niciar um tutorial, é interessante que vocẽ salve a página de Glossário
reference/glossary/) para futuras referências.

os
ernetes básico (/docs/tutorials/kubernetes-basics/) é um tutorial interativo que auxilia no
ndimento do ecossistema Kubernetes, bem como te permite testar algumas funcionalidades
cas do Kubernetes.
dução ao Kubernetes (edX) (https://www.edx.org/course/introduction-kubernetes-
foundationx-lfs158x#) é um curso gratuíto da edX que te guia no entendimento do
ernetes, seus conceitos, bem como na execução de tarefas mais simples.
Minikube! (/pt/docs/tutorials/hello-minikube/) é um "Hello World" que te permite testar
damente o Kubernetes em sua estação com o uso do Minikube

guração
figurando o Redis usando um ConfigMap (/docs/tutorials/configuration/configure-redis-using-
gmap/)

ações stateless
ndo um Endereço de IP externo para acessar uma aplicação no Cluster
cs/tutorials/stateless-application/expose-external-ip-address/)
mplo: Implantando a aplicação de Livro de Visitas (Guestbook) em PHP com Redis
cs/tutorials/stateless-application/guestbook/)

ações stateful
cos sobre StatefulSet (/docs/tutorials/stateful-application/basic-stateful-set/)
mplo: WordPress e MySQL com Volumes Persistentes (/docs/tutorials/stateful-
cation/mysql-wordpress-persistent-volume/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 1/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

mplo: Implantando Cassandra com Stateful Sets (/docs/tutorials/stateful-


cation/cassandra/)
utando ZooKeeper no Kubernetes (/docs/tutorials/stateful-application/zookeeper/)

ers
Armor (/docs/tutorials/clusters/apparmor/)
omp (/docs/tutorials/clusters/seccomp/)

ços / "Services"
do IP de origem (/docs/tutorials/services/source-ip/)

mos passos
esejar escrever um tutorial, veja a página
Utilizando templates (/docs/home/contribute/page-
/)
para informações sobre o tipo de página e o formato a ser utilizado.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 2/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

1 - Olá, Minikube!
Este tutorial mostra como executar uma aplicação exemplo no Kubernetes utilizando o
Minikube (https://minikube.sigs.k8s.io) e o Katacoda (https://www.katacoda.com). O Katacoda
disponibiliza um ambiente Kubernetes gratuito e acessível via navegador.

Nota: Você também consegue seguir os passos desse tutorial instalando o Minikube
localmente. Para instruções de instalação, acesse: iniciando com minikube
(https://minikube.sigs.k8s.io/docs/start/).

Objetivos
Instalar uma aplicação exemplo no minikube.
Executar a aplicação.
Visualizar os logs da aplicação.

Antes de você iniciar


Este tutorial disponibiliza uma imagem de contêiner que utiliza o NGINX para retornar todas
as requisições.

Criando um cluster do Minikube


1. Clique no botão abaixo para iniciar o terminal do Katacoda.
Launch Terminal

Nota: Se você instalou o Minikube localmente, execute: minikube start .

2. Abra o painel do Kubernetes em um navegador:

minikube dashboard

3. Apenas no ambiente do Katacoda: Na parte superior do terminal, clique em Preview


Port 30000.

Criando um Deployment
Um Pod (/docs/concepts/workloads/pods/) Kubernetes consiste em um ou mais contêineres
agrupados para fins de administração e gerenciamento de rede. O Pod desse tutorial possui
apenas um contêiner. Um Deployment (/docs/concepts/workloads/controllers/deployment/)
Kubernetes verifica a saúde do seu Pod e reinicia o contêiner do Pod caso o mesmo seja
finalizado. Deployments são a maneira recomendada de gerenciar a criação e escalonamento
dos Pods.
1. Usando o comando kubectl create para criar um Deployment que gerencia um Pod. O
Pod executa um contêiner baseado na imagem docker disponibilizada.

kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4

2. Visualizando o Deployment:

https://kubernetes.io/pt-br/docs/tutorials/_print/ 3/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

kubectl get deployments

A saída será semelhante a:

NAME READY UP-TO-DATE AVAILABLE AGE

hello-node 1/1 1 1 1m

3. Visualizando o Pod:

kubectl get pods

A saída será semelhante a:

NAME READY STATUS RESTARTS AGE

hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m

4. Visualizando os eventos do cluster:

kubectl get events

5. Visualizando a configuração do kubectl :

kubectl config view

Nota: Para mais informações sobre o comando kubectl , veja o kubectl overview
(/docs/reference/kubectl/overview/).

Criando um serviço
Por padrão, um Pod só é acessível utilizando o seu endereço IP interno no cluster
Kubernetes. Para dispobiblilizar o contêiner hello-node fora da rede virtual do Kubernetes,
você deve expor o Pod como um serviço (/docs/concepts/services-networking/service/)
Kubernetes.
1. Expondo o Pod usando o comando kubectl expose :

kubectl expose deployment hello-node --type=LoadBalancer --port=8080

O parâmetro --type=LoadBalancer indica que você deseja expor o seu serviço fora do
cluster Kubernetes.
A aplicação dentro da imagem k8s.gcr.io/echoserver "escuta" apenas na porta TCP
8080. Se você usou
kubectl expose para expor uma porta diferente, os clientes não
conseguirão se conectar a essa outra porta.
2. Visualizando o serviço que você acabou de criar:

kubectl get services

A saída será semelhante a:

https://kubernetes.io/pt-br/docs/tutorials/_print/ 4/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s

kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m

Em provedores de Cloud que fornecem serviços de balanceamento de carga para o


Kubernetes, um IP externo seria provisionado para acessar o serviço. No Minikube, o
tipo LoadBalancer torna o serviço acessível por meio do comando minikube service .
3. Executar o comando a seguir:

minikube service hello-node

4. (Apenas no ambiente do Katacoda) Clicar no sinal de mais e então clicar em Select


port to view on Host 1.
5. (Apenas no ambiente do Katacoda) Observe o número da porta com 5 dígitos exibido
ao lado de 8080 na saída do serviço. Este número de porta é gerado aleatoriamente e
pode ser diferente para você. Digite seu número na caixa de texto do número da porta e
clique em Display Port. Usando o exemplo anterior, você digitaria 30369 .

Isso abre uma janela do navegador, acessa o seu aplicativo e mostra o retorno da requisição.

Habilitando Complementos (addons)


O Minikube inclui um conjunto integrado de
complementos (/pt-br/docs/concepts/cluster-administration/addons/) que podem ser
habilitados, desabilitados e executados no ambiente Kubernetes local.
1. Listando os complementos suportados atualmente:

minikube addons list

A saída será semelhante a:

addon-manager: enabled

dashboard: enabled

default-storageclass: enabled

efk: disabled

freshpod: disabled

gvisor: disabled

helm-tiller: disabled

ingress: disabled

ingress-dns: disabled

logviewer: disabled

metrics-server: disabled

nvidia-driver-installer: disabled

nvidia-gpu-device-plugin: disabled

registry: disabled

registry-creds: disabled

storage-provisioner: enabled

storage-provisioner-gluster: disabled

2. Habilitando um complemento, por exemplo, metrics-server :

minikube addons enable metrics-server

A saída será semelhante a:

metrics-server was successfully enabled

3. Visualizando os Pods e os Serviços que você acabou de criar:


https://kubernetes.io/pt-br/docs/tutorials/_print/ 5/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

kubectl get pod,svc -n kube-system

A saída será semelhante a:

NAME READY STATUS RESTARTS AGE

pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m

pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m

pod/metrics-server-67fb648c5 1/1 Running 0 26s

pod/etcd-minikube 1/1 Running 0 34m

pod/influxdb-grafana-b29w8 2/2 Running 0 26s

pod/kube-addon-manager-minikube 1/1 Running 0 34m

pod/kube-apiserver-minikube 1/1 Running 0 34m

pod/kube-controller-manager-minikube 1/1 Running 0 34m

pod/kube-proxy-rnlps 1/1 Running 0 34m

pod/kube-scheduler-minikube 1/1 Running 0 34m

pod/storage-provisioner 1/1 Running 0 34m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)


service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/T
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8

4. Desabilitando o complemento metrics-server :

minikube addons disable metrics-server

A saída será semelhante a:

metrics-server was successfully disabled

Removendo os recursos do Minikube


Agora você pode remover todos os recursos criados no seu cluster:

kubectl delete service hello-node

kubectl delete deployment hello-node

(Opcional) Pare a máquina virtual (VM) do Minikube:

minikube stop

(Opcional) Remova a VM do Minikube:

minikube delete

Próximos passos
Aprender mais sobre Deployment objects
(/docs/concepts/workloads/controllers/deployment/).
Aprender mais sobre Deploying applications (/docs/tasks/run-application/run-stateless-
application-deployment/).
Aprender mais sobre Service objects (/docs/concepts/services-networking/service/).

https://kubernetes.io/pt-br/docs/tutorials/_print/ 6/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2 - Aprenda as noções básicas do


Kubernetes
do Kubernetes
rnece instruções básicas sobre o sistema de orquestração de cluster
. Cada módulo contém algumas informações básicas sobre os
rsos e conceitos do Kubernetes e inclui um tutorial online interativo.
interativos permitem que você mesmo gerencie um cluster simples e
s em contêineres.
oriais interativos, você pode aprender a:
r um aplicativo em contêiner em um cluster.
nar a implantação.
o aplicativo em contêiner com uma nova versão do software.
o aplicativo em contêiner.

am Katacoda para executar um terminal virtual em seu navegador da


o em Minikube, uma implantação local em pequena escala do
e pode ser executada em qualquer lugar. Não há necessidade de
m software ou configurar nada; cada tutorial interativo é executado
o navegador da web.

Kubernetes pode fazer por você?


s da Web modernos, os usuários esperam que os aplicativos estejam
horas por dia, 7 dias por semana, e os desenvolvedores esperam
s versões desses aplicativos várias vezes ao dia. A conteinerização
otar o software para atender a esses objetivos, permitindo que os
m lançados e atualizados de maneira fácil e rápida, sem tempo de
Kubernetes ajuda a garantir que esses aplicativos em contêiner sejam
de e quando você quiser e os ajuda a encontrar os recursos e
e que precisam para funcionar. Kubernetes é uma plataforma de
pronta para produção, projetada com a experiência acumulada do
uestração de contêineres, combinada com as melhores idéias da

básicos do Kubernetes

orials/kubernetes- (/pt/docs/tutorials/kubernetes- (/pt/docs/tutorials/kubernetes-


e-cluster/cluster- basics/deploy-app/deploy-intro/) basics/explore/explore-intro/)
2. Implantar um aplicativo 3. Explore seu aplicativo
uster Kubernetes (/pt/docs/tutorials/kubernetes- (/pt/docs/tutorials/kubernetes-
orials/kubernetes- basics/deploy-app/deploy-intro/) basics/explore/explore-intro/)
e-cluster/cluster-

https://kubernetes.io/pt-br/docs/tutorials/_print/ 7/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

orials/kubernetes- (/pt/docs/tutorials/kubernetes- (/docs/tutorials/kubernetes-


e/expose-intro/) basics/scale/scale-intro/) basics/update/update-intro/)
eu aplicativo 5. Escale seu aplicativo 6. Atualize seu aplicativo
e
(/pt/docs/tutorials/kubernetes- (/docs/tutorials/kubernetes-
orials/kubernetes- basics/scale/scale-intro/) basics/update/update-intro/)
e/expose-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 8/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.1 - Crie um Cluster


2.1.1 - Usando Minikube para criar um
cluster
o que é um cluster Kubernetes.
o que é o Minikube.
cluster Kubernetes usando um terminal online.

o Kubernetes
coordena um cluster com alta disponibilidade de
Resumo:
s conectados para funcionar como uma única unidade.
As Cluster do Kubernetes
Kubernetes permitem implantar aplicativos em contêineres Minikube
sem amarrá-los especificamente as máquinas individuais.
desse novo modelo de implantação, os aplicativos precisam
os de uma forma que os desacoplem dos hosts individuais:
ser empacotados em contêineres. Os aplicativos em O Kubernetes é uma plataforma
o mais flexíveis e disponíveis do que nos modelos de de código aberto de nível de
nteriores, nos quais os aplicativos eram instalados produção que orquestra o
m máquinas específicas como pacotes profundamente agendamento e a execução de
host.
O Kubernetes automatiza a distribuição e o contêineres de aplicativos
de contêineres de aplicativos em um cluster de maneira dentro e entre clusters de
. O Kubernetes é uma plataforma de código aberto e está computador.
odução.
bernetes consiste em dois tipos de recursos:
a de gerenciamento (Control Plane) coordena o cluster
Nodes) são os nós de processamento que executam
s

ma de Cluster

Node

Control Plane

Node Processes

Kubernetes Cluster

gerenciamento é responsável por gerenciar o cluster. A


enciamento coordena todas as atividades em seu cluster, As camadas de gerenciamento
ação de aplicativos, manutenção do estado desejado dos gerenciam o cluster e os nós
alonamento de aplicativos e lançamento de novas que são usados ​para hospedar
os aplicativos em execução.
VM ou um computador físico que atua como um nó de
to em um cluster Kubernetes. Cada nó tem um Kubelet,
te para gerenciar o nó e se comunicar com a camada de
do Kubernetes. O nó também deve ter ferramentas para
https://kubernetes.io/pt-br/docs/tutorials/_print/ 9/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

ações de contêiner, como containerd ou Docker. Um cluster


e lida com o tráfego de produção deve ter no mínimo três

plicativos no Kubernetes, você diz à camada de


para iniciar os contêineres de aplicativos. A camada de
agenda os contêineres para serem executados nos nós do
se comunicam com o camada de gerenciamento usando
rnetes (/docs/concepts/overview/kubernetes-api/) , que a
enciamento expõe. Os usuários finais também podem usar a
etes diretamente para interagir com o cluster.
bernetes pode ser implantado em máquinas físicas ou
omeçar o desenvolvimento do Kubernetes, você pode usar o
nikube é uma implementação leve do Kubernetes que cria
a máquina local e implanta um cluster simples contendo
O Minikube está disponível para sistemas Linux, macOS e
ha de comando (cli) do Minikube fornece operações básicas
para trabalhar com seu cluster, incluindo iniciar, parar,
. Para este tutorial, no entanto, você usará um terminal
o com o Minikube pré-instalado.
ê sabe o que é Kubernetes, vamos para o tutorial online e
rimeiro cluster!

rial interativo › (/pt/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 10/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.1.2 - Tutorial interativo - Criando um


cluster

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 11/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 12/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

a Kubernetes cluster

r
minutes

interactive scenario is to deploy a local development Kubernetes cluster


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

ra o Módulo 2 › (/pt/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 13/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.2 - Implantar um aplicativo


2.2.1 - Usando kubectl para criar uma
implantação
s sobre implantações de aplicativos.
seu primeiro aplicativo no Kubernetes com o kubectl.

ões do Kubernetes
u cluster Kubernetes estiver em execução você pode
Resumo:
eu aplicativo em contêiners nele.
Para fazer isso, você Deployments
ma configuração do tipo Deployment do Kubernetes. O Kubectl
efine como criar e
atualizar instâncias do seu aplicativo.
r um Deployment, o Master do Kubernetes
agenda as
plicativo incluídas nesse Deployment para ser executado
uais do Cluster. O tipo Deployment é
responsável por criar e
instâncias do aplicativo são criadas, um Controlador do
atualizar instâncias de seu
ployment monitora continuamente essas instâncias.
Se o
aplicativo
a uma instância ficar inativo ou for excluído, o controlador
t substituirá a instância por uma instância em outro nó no
rnece um mecanismo de autocorreção para lidar com
nutenção da máquina.
de pré-orquestração, os scripts de instalação costumavam
a iniciar aplicativos, mas não permitiam a recuperação de
na.
Ao criar suas instâncias de aplicativo e mantê-las em
e nós, as implantações do Kubernetes fornecem uma
ndamentalmente diferente para o gerenciamento de

ar seu primeiro aplicativo no


etes

Node
containerized app

Deployment
Control Plane
node processes

bernetes Cluster

r e gerenciar uma implantação usando a interface de linha


o Kubernetes, Kubectl .
O Kubectl usa a API Kubernetes Os aplicativos precisam ser
com o cluster. Neste módulo, você aprenderá os comandos empacotados em um dos
omuns necessários para criar implantações que executam formatos de contêiner
s em um cluster Kubernetes. suportados para serem
implantados no Kubernetes
ria um Deployment, você precisa especificar a imagem do
seu aplicativo e o número de réplicas que deseja executar.
rar essas informações posteriormente, atualizando sua
https://kubernetes.io/pt-br/docs/tutorials/_print/ 14/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Módulos5 (/docs/tutorials/kubernetes-basics/scale/scale-
cs/tutorials/kubernetes-basics/update/update-intro/) do
ica como você pode dimensionar e atualizar suas

ira implantação, você usará um aplicativo Node.js


m um contêiner Docker.(Se você ainda não tentou criar um
e.js e implantá-lo usando um contêiner, você pode fazer
eguindo as instruções do tutorial Olá, Minikube!
ials/hello-minikube/)).
ê sabe o que são implantações (Deployment), vamos para o
e implantar nosso primeiro aplicativo!

rial interativo › (/pt/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 15/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.2.2 - Tutorial interativo -


implantando um aplicativo
dade de execução básica de um aplicativo Kubernetes. Cada pod
parte de uma carga de trabalho em execução no cluster. Saiba mais
cs/concepts/workloads/pods/).

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 16/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 17/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

an app

r
minutes

scenario is to help you deploy your first app on Kubernetes using kubec
your application.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

ra o Módulo 3 › (/pt/docs/tutorials/kubernetes-basics/explore/explore-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 18/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.3 - Explore seu aplicativo


2.3.1 - Visualizando Pods e Nós (Nodes)

sobre Pods do Kubernetes.


sobre Nós do Kubernetes.
r problemas de aplicativos implantados no Kubernetes.

etes Pods Sumário:


riou um Deployment no Módulo 2
Pods
ials/kubernetes-basics/deploy-app/deploy-intro/), o
Nós (Nodes)
ou um Pod para hospedar a instância do seu aplicativo. Um
Principais comandos do
tração do Kubernetes que representa um grupo de um ou
Kubectl
es de aplicativos (como Docker) e alguns recursos
s para esses contêineres. Esses recursos incluem:
amento compartilhado, como Volumes
mo um endereço IP único no cluster Um Pod é um grupo de um ou
ões sobre como executar cada contêiner, como a versão da mais contêineres de aplicativos
do contêiner ou portas específicas a serem usadas (como Docker) que inclui
um "host lógico" específico para o aplicativo e pode conter armazenamento
têineres que, na maioria dos casos, são fortemente compartilhado (volumes),
exemplo, um Pod pode incluir o contêiner com seu endereço IP e informações
e.js, bem como um outro contêiner que alimenta os dados a sobre como executá-los.
dos pelo servidor web Node.js. Os contêineres de um Pod
um endereço IP e intervalo de portas; são sempre
ogramados e executam em um contexto compartilhado no

dade atômica na plataforma Kubernetes. Quando criamos


nt no Kubernetes, esse Deployment cria Pods com
ntro dele (em vez de você criar contêineres diretamente).
vinculado ao nó onde está programado (scheduled) e lá
o encerramento (de acordo com a política de
ou exclusão. Em caso de falha do nó, Pods idênticos são
em outros nós disponíveis no cluster.

eral sobre os Pods

des) Os contêineres só devem ser


e será executando em um Nó. Um Nó é uma máquina de agendados juntos em um único
o em um cluster Kubernetes e pode ser uma máquina física Pod se estiverem fortemente
a Nó é gerenciado pelo Control Plane. Um Nó pode possuir acoplados e precisarem
e o Control Plane do Kubernetes gerencia compartilhar recursos, como
disco e IP.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 19/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

nte o agendamento dos Pods nos nós do cluster. Para o


automático dos Pods, o Control Plane leva em consideração
poníveis em cada Nó.
bernetes executa pelo menos:
o processo responsável pela comunicação entre o Control
Nó; gerencia os Pods e os contêineres rodando em uma

me de contêiner (por exemplo o Docker) é responsável por


magem do contêiner de um registro de imagens (por
o Docker Hub (https://hub.docker.com/)), extrair o
e executar a aplicação.

eral sobre os Nós

nar problemas usando o Um nó é uma máquina


o kubectl operária do Kubernetes e pode
ser uma VM ou máquina física,
pt/docs/tutorials/kubernetes-basics/deploy-app/deploy-
dependendo do cluster. Vários
ou o comando Kubectl. Você pode continuar utilizando o
Pods podem ser executados em
dulo 3 para obter informação sobre Deployment realizado e
um nó.
As operações mais comuns podem ser realizadas com os
ixo:
get - listar recursos
describe - mostrar informações detalhadas sobre um

ogs - mostrar os logs de um container em um Pod


exec - executar um comando em um contêiner em um Pod

r esses comandos para verificar quando o Deployment foi


seu status atual, ondes os Pods estão rodando e qual são
urações.
emos mais sobre os componentes de um cluster
o comando kubectl, vamos explorar a nossa aplicação.

orial Interativo › (/pt/docs/tutorials/kubernetes-basics/explore/explore-interactive/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 20/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.3.2 - Tutorial Interativo - Explorando


seu aplicativo

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 21/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 22/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

e your app

r
minutes

you will learn how to troubleshoot Kubernetes applications using the ku


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

ra o Módulo 4 › (/pt/docs/tutorials/kubernetes-basics/expose/expose-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 23/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.4 - Exponha publicamente seu


aplicativo
2.4.1 - Utilizando um serviço para
expor seu aplicativo
sobre um Serviço no Kubernetes
como os objetos labels e LabelSelector se relacionam a
ço
uma aplicação externamente ao cluster Kubernetes usando
ço

al de Serviços Kubernetes
ncepts/workloads/pods/) Kubernetes são efêmeros. Na
Resumo
possuem um ciclo de vida Expõe Pods ao tráfego
s/workloads/pods/pod-lifecycle/). Quando um nó de externo
o morre, os Pods executados no nó também são perdidos. A Tráfego de
ReplicaSet balanceamento de
s/workloads/controllers/replicaset/) pode dinamicamente carga entre múltiplos
ter ao estado desejado através da criação de novos Pods Pods
ua aplicação em execução. Como outro exemplo, considere Uso de rótulos labels
e processamento de imagens com 3 réplicas. Estas réplicas
áveis; o sistema front-end não deveria se importar com as
nd ou ainda se um Pod é perdido ou recriado. Dito isso,
m cluster Kubernetes tem um único endereço IP, mesmo Um serviço Kubernetes é uma
o nó, então há necessidade de ter uma forma de reconciliar camada de abstração que
nte mudanças entre Pods de modo que sua aplicação define um conjunto lógico de
onando. Pods e habilita a exposição ao
Kubernetes é uma abstração que define um conjunto tráfego externo,
e uma política pela qual acessá-los. Serviços permitem um balanceamento de carga e
ento entre os Pods dependentes. Um serviço é definido descoberta de serviço para
preferencialmente) esses Pods.
s/configuration/overview/#general-configuration-tips) ou
dos objetos Kubernetes. O conjunto de Pods selecionados
é geralmente determinado por um seletor de rótulos
eja abaixo o motivo pelo qual você pode querer um Serviço
seletor selector na especificação spec ).
od tenha um endereço IP único, estes IPs não são expostos
ao cluster sem um Serviço. Serviços permitem que suas
ebam tráfego. Serviços podem ser expostos de formas
ecificando um tipo type na especificação do serviço

padrão) - Expõe o serviço sob um endereço IP interno no


ste tipo faz do serviço somente alcançável de dentro do

- Expõe o serviço sob a mesma porta em cada nó


do no cluster usando NAT. Faz o serviço acessível
ente ao cluster usando <NodeIP>:<NodePort> .
junto de ClusterIP.
ncer - Cria um balanceador de carga externo no provedor de
ual (se suportado) e assinala um endereço IP fixo e externo
rviço. Superconjunto de NodePort.
ame - Expõe o serviço usando um nome arbitrário
ado através de externalName na especificação spec )
do um registro de CNAME com o nome. Nenhum proxy é
Este tipo requer v1.7 ou mais recente de kube-dns .

https://kubernetes.io/pt-br/docs/tutorials/_print/ 24/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

ões sobre diferentes tipos de Serviços podem ser


o tutorial Utilizando IP de origem
s/services/source-ip/). Também confira Conectando
m serviços (/docs/concepts/services-networking/connect-
rvice).
e, note que existem alguns casos de uso com serviços que
o definição de selector em spec . Serviços criados sem
bém não criarão objetos Endpoints correspondentes. Isto
os mapear manualmente um serviço a endpoints
tra possibilidade na qual pode não haver seletores é ao se
mente type: ExternalName .

Rótulos
eia tráfego entre um conjunto de Pods. Serviço é a
permite pods morrerem e se replicarem no Kubernetes
sua aplicação. A descoberta e o roteamento entre Pods
tal como componentes frontend e backend dentro de uma
controlados por serviços Kubernetes.
onam um conjunto de Pods usando Rótulos e seletores
s/overview/working-with-objects/labels), um agrupamento
permite operações lógicas sobre objetos Kubernetes.
res de chave/valor anexados à objetos e podem ser usados
rmas:
objetos para desenvolvimento, teste e produção
tags de versão
r um objeto usando tags

m ser anexados à objetos no momento de sua criação ou


e. Eles podem ser modificados a qualquer tempo. Vamos
a aplicação usando um serviço e aplicar alguns rótulos.

rial interativo › (/pt/docs/tutorials/kubernetes-basics/expose/expose-interactive/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 25/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.4.2 - Tutorial Interativo - Expondo


seu aplicativo

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 26/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 27/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

your app publicly

r
minutes

you will learn how to expose Kubernetes applications outside the cluste
w and apply labels to objects with the kubectl label command.
is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

ra o Módulo 5 › (/pt/docs/tutorials/kubernetes-basics/scale/scale-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 28/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.5 - Escale seu aplicativo


2.5.1 - Executando múltiplas instâncias
de seu aplicativo
ma aplicação usando kubectl.

uma aplicação
nteriores nós criamos um Deployment
Resumo:
s/workloads/controllers/deployment/), e então o Escalando um
blicamente através de um serviço (Service Deployment
s/services-networking/service/)). O Deployment criou
co Pod para executar nossa aplicação. Quando o tráfego
precisaremos escalar a aplicação para suportar a demanda
Você pode criar desde o início
um Deployment com múltiplas
nto é obtido pela mudança do número de réplicas em um
instâncias usando o parâmetro
--replicas para que o
kubectl crie o comando de
deployment

eral sobre escalonamento

ployment garantirá que novos Pods serão criados e


a nós de processamento com recursos disponíveis. O O Escalonamento é obtido pela
o aumentará o número de Pods para o novo estado mudança do número de
bernetes também suporta o auto-escalonamento réplicas em um Deployment.
docs/user-guide/horizontal-pod-autoscaling/)) de Pods, mas
o escopo deste tutorial. Escalar para zero também é
terminará todos os Pods do Deployment especificado.
plas instâncias de uma aplicação irá requerer uma forma de
fego entre todas elas. Serviços possuem um balanceador de
o que distribuirá o tráfego de rede entre todos os Pods de

https://kubernetes.io/pt-br/docs/tutorials/_print/ 29/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

nt exposto. Serviços irão monitorar continuamente os Pods


sando endpoints para garantir que o tráfego seja enviado
ods disponíveis.

m que múltiplas instâncias de uma aplicação estiverem em


possível realizar atualizações graduais no cluster sem que
nibilidade. Nós cobriremos isso no próximo módulo. Agora,
inal online e escalar nossa aplicação.

rial interativo › (/pt/docs/tutorials/kubernetes-basics/scale/scale-interactive/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 30/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

2.5.2 - Tutorial Interativo - Escalando


seu aplicativo

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 31/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

https://kubernetes.io/pt-br/docs/tutorials/_print/ 32/33
5/14/22, 11:44 AM Tutoriais | Kubernetes

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

Connect
ractive Environment

p your app

r
minutes

interactive scenario is to scale a deployment with kubectl scale and to s


is a pre-configured Linux environment that can be used as a regular console (you can ty
xecute that command in the terminal.

ra o Módulo 6 › (/docs/tutorials/kubernetes-basics/update/update-intro/)

https://kubernetes.io/pt-br/docs/tutorials/_print/ 33/33

Você também pode gostar