Skip to content

Commit d53d7bc

Browse files
[pt-br] Update deploy-intro tutorial.
* Update the deploy intro tutorial to both reflect the latest English version and remove references to Katacoda.
1 parent 96893f8 commit d53d7bc

File tree

1 file changed

+270
-86
lines changed

1 file changed

+270
-86
lines changed

content/pt-br/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.html

Lines changed: 270 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,297 @@
11
---
2-
title: Usando kubectl para criar uma implantação
2+
title: Usando kubectl para criar um Deployment
33
weight: 10
4+
description: |-
5+
Aprenda sobre objetos Deployment do Kubernetes.
6+
Implante seu primeiro aplicativo no Kubernetes utilizando o kubectl.
47
---
58

69
<!DOCTYPE html>
710

8-
<html lang="en">
11+
<html lang="pt-BR">
912

1013
<body>
1114

12-
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
15+
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
1316

1417
<div class="layout" id="top">
1518

16-
<main class="content">
17-
18-
<div class="row">
19-
20-
<div class="col-md-8">
21-
<h3>Objetivos</h3>
22-
<ul>
23-
<li> Saiba mais sobre implantações de aplicativos. </li>
24-
<li> Implante seu primeiro aplicativo no Kubernetes com o kubectl. </li>
25-
</ul>
26-
</div>
27-
28-
<div class="col-md-8">
29-
<h3>Implantações do Kubernetes</h3>
30-
<p>
31-
Assim que o seu cluster Kubernetes estiver em execução você pode implementar seu aplicativo em contêiners nele.
32-
Para fazer isso, você precisa criar uma configuração do tipo <b> Deployment </b> do Kubernetes. O Deployment define como criar e
33-
atualizar instâncias do seu aplicativo. Depois de criar um Deployment, o Master do Kubernetes
34-
agenda as instâncias do aplicativo incluídas nesse Deployment para ser executado em nós individuais do Cluster.
35-
</p>
36-
37-
<p> Depois que as instâncias do aplicativo são criadas, um Controlador do Kubernetes Deployment monitora continuamente essas instâncias.
38-
Se o nó que hospeda uma instância ficar inativo ou for excluído, o controlador de Deployment substituirá a instância por uma instância em outro nó no cluster.
39-
<b> Isso fornece um mecanismo de autocorreção para lidar com falhas ou manutenção da máquina. </b> </p>
40-
41-
<p>Em um mundo de pré-orquestração, os scripts de instalação costumavam ser usados ​​para iniciar aplicativos, mas não permitiam a recuperação de falha da máquina.
42-
Ao criar suas instâncias de aplicativo e mantê-las em execução entre nós, as implantações do Kubernetes fornecem uma abordagem fundamentalmente diferente para o gerenciamento de aplicativos. </p>
43-
44-
</div>
45-
46-
<div class="col-md-4">
47-
<div class="content__box content__box_lined">
48-
<h3>Resumo:</h3>
49-
<ul>
50-
<li>Deployments</li>
51-
<li>Kubectl</li>
52-
</ul>
53-
</div>
54-
<div class="content__box content__box_fill">
55-
<p><i>
56-
O tipo Deployment é responsável por criar e atualizar instâncias de seu aplicativo
57-
</i></p>
58-
</div>
59-
</div>
60-
</div>
61-
<br>
19+
<main class="content">
6220

63-
<div class="row">
64-
<div class="col-md-8">
65-
<h2 style="color: #3771e3;">Implantar seu primeiro aplicativo no Kubernetes</h2>
66-
</div>
67-
</div>
21+
<div class="row">
6822

69-
<div class="row">
70-
<div class="col-md-8">
71-
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg"></p>
72-
</div>
73-
</div>
74-
<br>
23+
<div class="col-md-8">
24+
<h3>Objetivos</h3>
25+
<ul>
26+
<li> Saiba mais sobre implantações de aplicativos.</li>
27+
<li> Implante seu primeiro aplicativo no Kubernetes com o kubectl.
28+
</li>
29+
</ul>
30+
</div>
7531

76-
<div class="row">
77-
<div class="col-md-8">
32+
<div class="col-md-8">
33+
<h3>Deployments do Kubernetes</h3>
34+
<p>
35+
Assim que o seu <a href="/pt-br/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/">cluster
36+
Kubernetes estiver em execução</a> você pode implantar seu aplicativo
37+
contêinerizado nele.
38+
Para fazer isso, você precisa criar um objeto <b>Deployment</b> do Kubernetes.
39+
O Deployment instrui o Kubernetes sobre como criar e atualizar instâncias
40+
do seu aplicativo. Depois de criar um Deployment, a camada de gerenciamento
41+
do Kubernetes aloca as instâncias do aplicativo incluídas nesse Deployment
42+
para serem executadas em nós individuais do cluster.
43+
</p>
7844

79-
<p>Você pode criar e gerenciar uma implantação usando a interface de linha de comando do Kubernetes, <b> Kubectl </b>.
80-
O Kubectl usa a API Kubernetes para interagir com o cluster. Neste módulo, você aprenderá os comandos Kubectl mais comuns necessários para criar implantações que executam seus aplicativos em um cluster Kubernetes.</p>
45+
<p>
46+
Depois que as instâncias do aplicativo são criadas, o controlador de
47+
Deployment do Kubernetes monitora continuamente essas instâncias.
48+
Se o nó em que uma instância está alocada ficar indisponível ou for
49+
excluído, o controlador de Deployment substituirá a instância por uma
50+
instância em outro nó no cluster.
51+
<b>Isso fornece um mecanismo de autocorreção para lidar com falhas ou
52+
manutenção da máquina.</b>
53+
</p>
8154

82-
<p>Quando você cria um Deployment, você precisa especificar a imagem do contêiner para seu aplicativo e o número de réplicas que deseja executar.
83-
Você pode alterar essas informações posteriormente, atualizando sua implantação; Módulos<a href="/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a> e <a href="/docs/tutorials/kubernetes-basics/update/update-intro/">6</a> do bootcamp explica como você pode dimensionar e atualizar suas implantações.</p>
55+
<p>
56+
Em um mundo de pré-orquestração, os scripts de instalação eram utilizados
57+
para iniciar aplicativos, mas não permitiam a recuperação de falha da máquina.
58+
Ao criar suas instâncias de aplicativo e mantê-las em execução entre nós,
59+
os Deployments do Kubernetes fornecem uma abordagem fundamentalmente
60+
diferente para o gerenciamento de aplicativos.
61+
</p>
62+
</div>
8463

85-
</div>
86-
<div class="col-md-4">
87-
<div class="content__box content__box_fill">
88-
<p><i> Os aplicativos precisam ser empacotados em um dos formatos de contêiner suportados para serem implantados no Kubernetes</i></p>
89-
</div>
90-
</div>
64+
<div class="col-md-4">
65+
<div class="content__box content__box_lined">
66+
<h3>Resumo:</h3>
67+
<ul>
68+
<li>Deployments</li>
69+
<li>Kubectl</li>
70+
</ul>
71+
</div>
72+
<div class="content__box content__box_fill">
73+
<p><i>
74+
O objeto Deployment é responsável por criar e atualizar instâncias
75+
de seu aplicativo
76+
</i></p>
9177
</div>
78+
</div>
79+
80+
</div>
81+
82+
<br>
83+
84+
<div class="row">
85+
<div class="col-md-8">
86+
<h2 style="color: #3771e3;">Implante seu primeiro aplicativo no
87+
Kubernetes</h2>
88+
</div>
89+
</div>
90+
91+
<div class="row">
92+
<div class="col-md-8">
93+
<p><img
94+
src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg">
95+
</p>
96+
</div>
97+
</div>
98+
<br>
9299

93-
<div class="row">
94-
<div class="col-md-8">
95-
<p>
96-
Para sua primeira implantação, você usará um aplicativo Node.js empacotado em um contêiner Docker.(Se você ainda não tentou criar um aplicativo Node.js e implantá-lo usando um contêiner, você pode fazer isso primeiro seguindo as instruções do <a href="/pt/docs/tutorials/hello-minikube/">tutorial Olá, Minikube!</a>).
97-
<p>
98-
99-
<p>Agora que você sabe o que são implantações (Deployment), vamos para o tutorial online e implantar nosso primeiro aplicativo!</p>
100-
</div>
100+
<div class="row">
101+
<div class="col-md-8">
102+
<p>
103+
Você pode criar e gerenciar uma implantação usando a interface
104+
de linha de comando do Kubernetes, o <b>kubectl</b>.
105+
O kubectl usa a API do Kubernetes para interagir com o cluster.
106+
Neste módulo, você aprenderá os comandos Kubectl mais comuns
107+
necessários para criar Deployments que executam seus aplicativos
108+
em um cluster Kubernetes.
109+
</p>
110+
111+
<p>
112+
Quando você cria um Deployment, você precisa especificar a imagem
113+
de contêiner para seu aplicativo e o número de réplicas que deseja executar.
114+
Você pode alterar essas informações posteriormente, atualizando seu Deployment;
115+
os Módulos <a href="/pt-br/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a>
116+
e <a href="/docs/tutorials/kubernetes-basics/update/update-intro/">6</a>
117+
do bootcamp explicam como você pode dimensionar e atualizar seus Deployments.
118+
</p>
119+
</div>
120+
<div class="col-md-4">
121+
<div class="content__box content__box_fill">
122+
<p><i> Os aplicativos precisam ser empacotados em um dos formatos de
123+
contêiner suportados para serem implantados no Kubernetes </i></p>
101124
</div>
102-
<br>
125+
</div>
126+
</div>
127+
128+
<div class="row">
129+
<div class="col-md-8">
130+
<p>
131+
Para criar seu primeiro Deployment, você usará o aplicativo hello-node
132+
empacotado em um contêiner que utiliza o NGINX para repetir todas as requisições.
133+
(Se você ainda não tentou criar o aplicativo hello-node e implantá-lo
134+
usando um contêiner, você pode fazer isso primeiro seguindo as
135+
instruções do <a href="/pt/docs/tutorials/hello-minikube/">tutorial Olá, Minikube!</a>).
136+
</p>
137+
138+
<p>
139+
Você precisará ter o kubectl instalado também. Se você precisar de
140+
instruções de instalação, veja
141+
<a href="/pt-br/docs/tasks/tools/#kubectl">instalando ferramentas</a>.
142+
</p>
143+
144+
<p>
145+
Agora que você já sabe o que são Deployments, vamos implantar
146+
nosso primeiro aplicativo!
147+
</p>
148+
</div>
149+
</div>
150+
<br>
151+
152+
<div class="row">
153+
<div class="col-md-8">
154+
<h3>Noções básicas do kubectl</h3>
155+
<p>O formato comum de um comando kubectl é: <code>kubectl <i>ação recurso</i></code></p>
156+
<p>
157+
Isto executa a <em>ação</em> especificada (como por exemplo <i>create</i>,
158+
<i>describe</i> ou <i>delete</i>) no <em>recurso</em>
159+
especificado (por exemplo, <tt>node</tt> ou <tt>deployment</tt>).
160+
Você pode utilizar <code>--help</code> após o subcomando
161+
para obter informações adicionais sobre parâmetros permitidos
162+
(por exemplo, <code>kubectl get nodes --help</code>).
163+
</p>
164+
<p>Verifique que o kubectl está configurado para comunicar-se com seu
165+
cluster rodando o comando <b><code>kubectl version</code></b>.</p>
166+
<p>Certifique-se de que o kubectl está instalado e que você consegue ver
167+
as versões do cliente e do servidor.</p>
168+
<p>Para visualizar os nós do cluster, execute o comando <b><code>kubectl
169+
get nodes</code></b>.</p>
170+
<p>
171+
Você verá os nós disponíveis. Posteriormente, o Kubernetes irá escolher
172+
onde implantar nossa aplicação baseado nos recursos disponíveis nos nós.
173+
</p>
174+
</div>
175+
</div>
176+
177+
<div class="row">
178+
<div class="col-md-12">
179+
<h3>Implante uma aplicação</h3>
180+
<p>
181+
Vamos implantar nossa primeira aplicação no Kubernetes utilizando
182+
o comando <code>kubectl create deployment</code>. Precisaremos
183+
fornecer o nome do Deployment e a localização da imagem de contêiner
184+
do aplicativo (inclua a URL completa do repositório para images
185+
hospedadas fora do Docker Hub).
186+
</p>
187+
188+
<p><b><code>kubectl create deployment kubernetes-bootcamp
189+
--image=gcr.io/google-samples/kubernetes-bootcamp:v1</code></b></p>
190+
191+
<p>
192+
Excelente! Você acabou de implantar sua primeira aplicação através
193+
da criação de um Deployment. Este comando efetuou algumas ações
194+
para você:
195+
</p>
196+
<ul>
197+
<li>
198+
buscou um nó utilizável onde a instância da aplicação pode ser executada
199+
(temos somente um nó disponível)
200+
</li>
201+
<li>alocou a aplicação para rodar naquele nó</li>
202+
<li>
203+
configurou o cluster para realocar a instância em um novo nó sempre
204+
que necessário
205+
</li>
206+
</ul>
207+
<p>
208+
Para listar seus Deployments existentes, utilize o comando
209+
<code>kubectl get deployments</code>:
210+
</p>
211+
<p><b><code>kubectl get deployments</code></b></p>
212+
<p>
213+
Podemos observar que há um Deployment rodando uma única instância
214+
da sua aplicação. A instância está executando dentro de um contêiner
215+
no seu nó.
216+
</p>
217+
</div>
218+
</div>
103219

104-
<div class="row">
105-
<div class="col-md-12">
106-
<a class="btn btn-lg btn-success" href="/pt/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/" role="button">Iniciar tutorial interativo<span class="btn__next"></span></a>
107-
</div>
220+
<div class="row">
221+
<div class="col-md-12">
222+
<h3>Visualize o aplicativo</h3>
223+
<p>
224+
Pods que rodam dentro do Kubernetes estão rodando em uma rede privada e isolada.
225+
Por padrão, eles são visíveis a outros Pods e Services dentro do mesmo
226+
cluster do Kubernetes, mas não de fora daquela rede.
227+
Ao usarmos <code>kubectl</code>, estamos interagindo através de um
228+
<i>endpoint</i> de API para comunicar-nos com a nossa aplicação.
229+
</p>
230+
<p>
231+
Iremos discutir outras opções de como expor sua aplicação fora do
232+
cluster do Kubernetes no Módulo 4.
233+
</p>
234+
<p>
235+
O comando <code>kubectl</code> pode criar um proxy que encaminha
236+
comunicações para dentro da rede privada que engloba todo o cluster. O
237+
proxy pode ser encerrado utilizando a sequência control-C e não irá
238+
imprimir nenhum tipo de saída enquanto estiver rodando.
239+
</p>
240+
<p>
241+
<strong>Você precisa abrir uma segunda janela do terminal para executar
242+
o proxy.</strong>
243+
</p>
244+
<p>
245+
<b><code>kubectl proxy</code></b>
246+
</p>
247+
<p>
248+
Agora temos uma conexão entre nosso <i>host</i> (o terminal online) e o
249+
cluster do Kubernetes. O proxy habilita acesso direto à API através
250+
destes terminais.
251+
</p>
252+
<p>
253+
Você pode ver todas as APIs hospedadas através do <i>endpoint</i> do
254+
proxy. Por exemplo, podemos obter a versão diretamente através da API
255+
utilizando o comando <code>curl</code>:
256+
</p>
257+
<p>
258+
<b><code>curl http://localhost:8001/version</code></b>
259+
</p>
260+
<div class="alert alert-info note callout" role="alert">
261+
<strong>Nota:</strong> se a porta 8001 não estiver acessível, certifique-se
262+
de que o comando <code>kubectl proxy</code> que você iniciou acima está
263+
rodando no segundo terminal.
108264
</div>
265+
<p>
266+
O servidor da API irá automaticamente criar um <i>endpoint</i> para cada
267+
Pod, baseado no nome do Pod, que também estará acessível através do proxy.
268+
</p>
269+
<p>
270+
Primeiro, precisaremos obter o nome do Pod. Iremos armazená-lo na
271+
variável de ambiente <tt>POD_NAME</tt>:
272+
</p>
273+
<p><b><code>export POD_NAME=$(kubectl get pods -o go-template --template
274+
'{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')</code></b><br/>
275+
<b><code>echo Nome do Pod: $POD_NAME</code></b></p>
276+
<p>Você pode acessar o Pod através da API encaminhada, rodando o comando:</p>
277+
<p><b><code>curl
278+
http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/</code></b>
279+
</p>
280+
<p>
281+
Para que o novo Deployment esteja acessível sem utilizar o proxy, um
282+
Service é requerido. Isto será explicado nos próximos módulos.
283+
</p>
284+
</div>
109285

110-
</main>
286+
</div>
287+
<div class="row">
288+
<p>
289+
Quando estiver pronto, vá para <a
290+
href="/pt-br/docs/tutorials/kubernetes-basics/explore/explore-intro/"
291+
title="Viewing Pods and Nodes">Visualizando Pods e Nós</a>.
292+
</p>
293+
</div>
294+
</main>
111295

112296
</div>
113297

0 commit comments

Comments
 (0)