Skip to content

Commit 442e558

Browse files
committed
[pt-br] revision concepts/workloads/controllers/replicaset.md
1 parent 39618b2 commit 442e558

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

content/pt-br/docs/concepts/workloads/controllers/replicaset.md

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ O propósito de um ReplicaSet é gerenciar um conjunto de réplicas de Pods em e
1515

1616
Um ReplicaSet é definido por campos, incluindo um seletor que identifica quais Pods podem ser adquiridos, um número de réplicas indicando quantos Pods devem ser mantidos, e um pod template especificando as definições para novos Pods que devem ser criados para atender ao número de réplicas estipuladas. Um ReplicaSet cumpre seu propósito criando e deletando Pods conforme for preciso para atingir o número desejado. Quando um ReplicaSet precisa criar novos Pods, ele usa o seu Pod template.
1717

18-
Um ReplicaSet é conectado ao seus Pods pelo campo do Pod [metadata.ownerReferences](/docs/concepts/workloads/controllers/garbage-collection/#owners-and-dependents), que especifíca qual recurso é dono do objeto atual. Todos os Pods adquiridos por um ReplicaSet possuem as informações de indetificação do ReplicaSet pai no campo ownerReferences. É por esse elo que o ReplicaSet tem conhecimento do estado dos Pods que está mantendo e assim planeja de acordo.
18+
Um ReplicaSet é conectado ao seus Pods pelo campo do Pod [metadata.ownerReferences](/docs/concepts/workloads/controllers/garbage-collection/#owners-and-dependents), que especifíca qual recurso é dono do objeto atual. Todos os Pods adquiridos por um ReplicaSet possuem as informações de identificação do ReplicaSet vinculado no campo ownerReferences. É por esse elo que o ReplicaSet tem conhecimento do estado dos Pods que está mantendo e assim faz seu planejamento.
1919

2020
Um ReplicaSet identifica novos Pods a serem adquiridos utilizando o seu seletor. Caso exista um Pod que não tenha OwnerReference ou se o OwnerReference não for um {{< glossary_tooltip term_id="controller" >}} e o seu seletor corresponde com o do ReplicaSet, o Pod é adquirido imediatamente por esse ReplicaSet.
2121

2222
## Quando usar um ReplicaSet
2323

24-
Um ReplicaSet garante que um número de pod réplicas estão executando em qualquer momento. Entretanto, um Deployment é um conceito de nível superior que gerencia ReplicaSets e fornece atualizações declarativas aos Pods assim como várias outras funções úteis. Portanto, nós recomendamos a utilização de Deployments em oposição ao uso direto de ReplicaSets, exceto se for preciso uma orquestração de atualização customizada ou que nenhuma atualização seja necessária.
24+
Um ReplicaSet garante que um número de réplicas de um Pod estão executando em qualquer momento. Entretanto, um Deployment é um conceito de nível superior que gerencia ReplicaSets e fornece atualizações declarativas aos Pods assim como várias outras funções úteis. Portanto, nós recomendamos a utilização de Deployments ao invés do uso direto de ReplicaSets, exceto se for preciso uma orquestração de atualização customizada ou que nenhuma atualização seja necessária.
2525

2626
Isso na realidade significa que você pode nunca precisar manipular objetos ReplicaSet:
2727
prefira usar um Deployment, e defina sua aplicação na seção spec.
@@ -30,32 +30,32 @@ prefira usar um Deployment, e defina sua aplicação na seção spec.
3030

3131
{{< codenew file="controllers/frontend.yaml" >}}
3232

33-
Salvando esse manifesto como `frontend.yaml` e submetendo no cluster Kubernetes irá criar a ReplicaSet definida e os Pods mantidos pela mesma.
33+
Salvando esse manifesto como `frontend.yaml` e submetendo no cluster Kubernetes irá criar o ReplicaSet definida e os Pods mantidos pela mesma.
3434

3535
```shell
3636
kubectl apply -f https://kubernetes.io/pt-br/examples/controllers/frontend.yaml
3737
```
3838

39-
Você pode então retornar as ReplicaSets implementadas atualmente no cluster:
39+
Você pode então retornar os ReplicaSets implementados atualmente no cluster:
4040

4141
```shell
4242
kubectl get rs
4343
```
4444

45-
E observar a frontend que você criou:
45+
E observar o ReplicaSet com o nome de frontend que você criou:
4646

4747
```shell
4848
NAME DESIRED CURRENT READY AGE
4949
frontend 3 3 3 6s
5050
```
5151

52-
Você também pode checar o estado da ReplicaSet:
52+
Você também pode checar o estado do ReplicaSet:
5353

5454
```shell
5555
kubectl describe rs/frontend
5656
```
5757

58-
E você deve ver um output similar a este:
58+
E você deve ver um saída similar a este:
5959

6060
```shell
6161
Name: frontend
@@ -85,13 +85,13 @@ Events:
8585
Normal SuccessfulCreate 116s replicaset-controller Created pod: frontend-vcmts
8686
```
8787

88-
E por fim você consegue verificar os Pods que foram levantados:
88+
E por fim você consegue verificar os Pods que foram criados:
8989

9090
```shell
9191
kubectl get pods
9292
```
9393

94-
Você deve receber uma informação do Pod similar à esta:
94+
Você deve ver uma informação do Pod similar à esta:
9595

9696
```shell
9797
NAME READY STATUS RESTARTS AGE
@@ -100,14 +100,14 @@ frontend-vcmts 1/1 Running 0 6m36s
100100
frontend-wtsmm 1/1 Running 0 6m36s
101101
```
102102

103-
Você consegue também validar que a referência de dono desses pods está definida para a ReplicaSet frontend.
103+
Você consegue também validar que a referência de dono desses pods está definida para o ReplicaSet frontend.
104104
Para fazer isso, retorne o yaml de um dos Pods que estão executando:
105105

106106
```shell
107107
kubectl get pods frontend-b2zdv -o yaml
108108
```
109109

110-
O output será parecido com algo assim, com as informações do ReplicaSet frontend definidas no campo ownerReferences dentro da metadata do Pod:
110+
O output será semelhante ao exibido abaixo, com as informações do ReplicaSet frontend definidas no campo ownerReferences dentro da metadata do Pod:
111111

112112
```shell
113113
apiVersion: v1
@@ -131,29 +131,29 @@ metadata:
131131

132132
## Aquisições de Pod sem Template
133133

134-
Enquanto você pode criar Pods diretamente sem problemas, é fortemente recomendado que você se certifique que esses Pods não tenham labels que combinem com o seletor de um dos seus ReplicaSets. O motivo para isso é que um ReplicaSet não é limitado a possuir apenas Pods estipulados por seu template-- Ele pode adquirir outros Pods na maneira discriminada nas seções anteriores.
134+
Enquanto você pode criar Pods diretamente sem problemas, é fortemente recomendado que você se certifique que esses Pods não tenham labels que combinem com o seletor de um dos seus ReplicaSets. O motivo para isso é que um ReplicaSet não é limitado a possuir apenas Pods estipulados por seu template -- ele pode adquirir outros Pods na maneira descrita nas seções anteriores.
135135

136-
Observe o último exemplo do ReplicaSet frontend, e seus Pods especificados no seguinte manifesto:
136+
Observe o exemplo anterior do ReplicaSet frontend, e seus Pods especificados no seguinte manifesto:
137137

138138
{{< codenew file="pods/pod-rs.yaml" >}}
139139

140-
Como esses Pods não possuem um Controller (ou qualquer objeto) referenciados como seu dono e possuem labels que casam com o seletor do ReplicaSet frontend, eles serão imediatamente adquiridos pelo ReplicaSet.
140+
Como esses Pods não possuem um Controller (ou qualquer objeto) referenciados como seu dono e possuem labels que combinam com o seletor do ReplicaSet frontend, eles serão imediatamente adquiridos pelo ReplicaSet.
141141

142-
Imagine que você crie os Pods depois que o ReplicaSet frontend foi implantado e criou as réplicas de Pod inicial definida para cumprir o número de réplicas requiridas:
142+
Imagine que você crie os Pods depois que o ReplicaSet frontend foi implementado e criou as réplicas de Pod inicial definida para cumprir o número de réplicas requiridas:
143143

144144
```shell
145145
kubectl apply -f https://kubernetes.io/examples/pods/pod-rs.yaml
146146
```
147147

148-
Os novos Pods serão adquiridos pela ReplicaSet, e logo depois terminados já que a ReplicaSet estará acima do número desejado.
148+
Os novos Pods serão adquiridos pelo ReplicaSet, e logo depois terminados já que a ReplicaSet estará acima do número desejado.
149149

150-
Trazendo os Pods:
150+
Buscando os Pods:
151151

152152
```shell
153153
kubectl get pods
154154
```
155155

156-
O output mostra que os novos Pods ou já estão terminados, ou no processo de ser terminados.
156+
O output mostra que os novos Pods ou já estão terminados, ou estão no processo de ser terminados.
157157

158158
```shell
159159
NAME READY STATUS RESTARTS AGE
@@ -176,13 +176,13 @@ mas em seguida criar o ReplicaSet:
176176
kubectl apply -f https://kubernetes.io/examples/controllers/frontend.yaml
177177
```
178178

179-
Você vai perceber que o ReplicaSet adquiriu os Pods e criou apenas novos de acordo com o seu spec até que o número de novo Pods e os Pods iniciais igualem ao número desejado. Trazendo os Pods:
179+
Você vai perceber que o ReplicaSet adquiriu os Pods e criou apenas novos de acordo com o seu spec até que o número de novo Pods e os Pods iniciais seja igual a ao número desejado. Listando os Pods:
180180

181181
```shell
182182
kubectl get pods
183183
```
184184

185-
Will reveal in its output:
185+
Irá retornar a seguinte saída:
186186
```shell
187187
NAME READY STATUS RESTARTS AGE
188188
frontend-hmmj2 1/1 Running 0 9s
@@ -202,7 +202,7 @@ Um ReplicaSet também precisa de uma [seção `.spec`](https://git.k8s.io/commun
202202

203203
### Template de Pod
204204

205-
O `.spec.template` é um [template de pod](/docs/concepts/workloads/pods/#pod-templates) que também necessita de labels configurados. No nosso exemplo `frontend.yaml` nós temos uma label: `tie: frontend`.
205+
O `.spec.template` é um [template de pod](/docs/concepts/workloads/pods/#pod-templates) que também necessita de labels configurados. No nosso exemplo `frontend.yaml` nós temos uma label: `tier: frontend`.
206206
Fique atento para não sobrepor com seletores de outros controllers, para que eles não tentem adquirir esse Pod.
207207

208208
Para o campo de [restart policy](/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy) do template, `.spec.template.spec.restartPolicy`, o único valor permitido é `Always`, que é o padrão.
@@ -216,7 +216,7 @@ matchLabels:
216216
tier: frontend
217217
```
218218
219-
No ReplicaSet, `.spec.template.metadata.labels` precisa casar com `spec.selector`, ou irá ser rejeitado pela API.
219+
No ReplicaSet, `.spec.template.metadata.labels` precisa combinar com `spec.selector`, ou será rejeitado pela API.
220220

221221
{{< note >}}
222222
Para 2 ReplicaSets definindo o mesmo `.spec.selector` mas diferentes campos de `.spec.template.metadata.labels` e `.spec.template.spec`, cada ReplicaSet ignorará os Pods criados pelo outro ReplicaSet.
@@ -255,30 +255,30 @@ curl -X DELETE 'localhost:8080/apis/apps/v1/namespaces/default/replicasets/fron
255255
> -H "Content-Type: application/json"
256256
```
257257

258-
Quando o original for deletado, você pode criar um novo ReplicaSet para substituí-lo. Contanto que o `.spec.selector` do velho e do novo sejam o mesmo, o novo irá adquirir os Pods antigos. Porém, o ReplicaSet não fará nenhum esforço nos Pods existentes para ajustá-los caso surja um novo e diferente template de pod.
259-
Para atualizar esses Pods para um novo spec de um modo controlado, use um [Deployment](/docs/concepts/workloads/controllers/deployment/#creating-a-deployment), já que ReplicaSets não suportam um rolling update diretamente.
258+
Quando o ReplicaSet original for deletado, você pode criar um novo ReplicaSet para substituí-lo. Contanto que o `.spec.selector` do antigo e do atual sejam o mesmo, o novo irá adquirir os Pods antigos. Porém, o ReplicaSet não atualizará as definições dos Pods existentes caso surja um novo e diferente template de pod.
259+
Para atualizar esses Pods para um novo spec de um modo controlado, use um [Deployment](/docs/concepts/workloads/controllers/deployment/#creating-a-deployment), já que ReplicaSets não suportam um atualização gradual diretamente.
260260

261261
### Isolando Pods de um ReplicaSet
262262

263-
Você pode remover Pods de um Replicaset trocando suas labels. Essa técnica pode ser usada para remover Pods de um service para depuramento, recuperação de dados, etc. Pods que forem removidos por esse método serão substituídos imediatamente (assumindo que o número de replicas não tenha sido alterado).
263+
Você pode remover Pods de um Replicaset trocando suas labels. Essa técnica pode ser usada para remover Pods de um serviço para depuração, recuperação de dados, etc. Pods que forem removidos por esse método serão substituídos imediatamente (assumindo que o número de replicas não tenha sido alterado).
264264

265-
### Escalando um ReplicaSet
265+
### Escalonando um ReplicaSet
266266

267-
Um ReplicaSet pode ser facilmente escalado ou decaído simplismente atualizando o campo de `.spec.replicas`. O Replicaset controller garante que o número desejado de Pods com um seletor de label correspondente estejam disponíveis e operando.
267+
Um ReplicaSet pode ser facilmente escalonado para cima ou para baixo simplesmente atualizando o campo de `.spec.replicas`. O Replicaset controller garante que o número desejado de Pods com um seletor de label correspondente estejam disponíveis e operando.
268268

269-
Ao escalar para baixo, o ReplicaSet controller escolhe quais pods irá deletar ordenando os pods disponíveis para priorizar quais pods seram decaídos seguindo o seguinte algoritmo geral:
270-
1. Pods pending (e unschedulable) são decaídos primeiro
269+
Ao escalonar para baixo, o Replicaset controller escolhe quais pods irá deletar ordenando os pods disponíveis para priorizar quais pods seram escalonados para baixo seguindo o seguinte algoritmo geral:
270+
1. Pods pendentes (e não agendáveis) são decaídos primeiro
271271
2. Se a anotação `controller.kubernetes.io/pod-deletion-cost` estiver definida, então o pod com o menor valor será priorizado primeiro.
272-
3. Pods em nodes com mais réplicas são decaídos primeiro que pods em nodes com menos réplicas.
273-
4. Se a data de criação dos pods for diferente, o pod que foi criado mais recentemente vem antes que o pod mais antigo (as datas de criação são guardados em uma escala logaritmica caso o [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) `LogarithmicScaleDown` esteja habilitado)
272+
3. Pods em nós com mais réplicas são decaídos primeiro que pods em nodes com menos réplicas.
273+
4. Se a data de criação dos pods for diferente, o pod que foi criado mais recentemente vem antes que o pod mais antigo (as datas de criação são guardados em uma escala logarítmica caso o [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) `LogarithmicScaleDown` esteja habilitado)
274274

275-
Se o Pod obdecer todos os items acima simultaneamente, a seleção é aleatória.
275+
Se o Pod obedecer todos os items acima simultaneamente, a seleção é aleatória.
276276

277277
### Custo de deleção de Pods
278278
{{< feature-state for_k8s_version="v1.22" state="beta" >}}
279279

280280
Utilizando a anotação [`controller.kubernetes.io/pod-deletion-cost`](/docs/reference/labels-annotations-taints/#pod-deletion-cost),
281-
usuários podem definir uma preferência em relação à quais pods seram removidos primeiro caso o ReplicaSet precisa escalar para baixo.
281+
usuários podem definir uma preferência em relação à quais pods serão removidos primeiro caso o ReplicaSet precise escalar para baixo.
282282

283283
A anotação deve ser definida no pod, com uma variação de [-2147483647, 2147483647]. Isso representa o custo de deletar um pod comparado com outros pods que pertencem à esse mesmo ReplicaSet. Pods com um custo de deleção menor são eleitos para deleção antes de pods com um custo maior.
284284

@@ -295,7 +295,7 @@ Esse recurso está em beta e é habilitado por padrão. Você consegue desabilit
295295
{{< /note >}}
296296

297297
#### Exemplo de caso de uso
298-
Os diferentes pods de uma aplicação podem ter níves de utilização divergentes. Ao escalar para baixo, a aplicação pode prefirir remover os pods com a menor utilização. Para evitar atualizações frequentes nos pods, a aplicação deve atualizar `controller.kubernetes.io/pod-deletion-cost` uma vez antes de expedir o decaimento das réplicas (configurando a anotação para um valor proporcional ao nível de utilização do pod). Isso funciona se a própria aplicação controlar a escala para baixo; por exemplo, o pod condutor de um deployment de Spark.
298+
Os diferentes pods de uma aplicação podem ter níves de utilização divergentes. Ao escalar para baixo, a aplicação pode preferir remover os pods com a menor utilização. Para evitar atualizações frequentes nos pods, a aplicação deve atualizar `controller.kubernetes.io/pod-deletion-cost` uma vez antes de expedir o decaimento das réplicas (configurando a anotação para um valor proporcional ao nível de utilização do pod). Isso funciona se a própria aplicação controlar a escala para baixo; por exemplo, o pod condutor de um deployment de Spark.
299299

300300
### ReplicaSet como um Horizontal Pod Autoscaler Target
301301

@@ -306,7 +306,7 @@ um ReplicaSet pode ser automaticamente escalado por um HPA. Aqui está um exempl
306306
{{< codenew file="controllers/hpa-rs.yaml" >}}
307307

308308
Salvando esse manifesto como `hpa-rs.yaml` e enviando para o cluster Kubernetes deve
309-
criar um HPA definido que autoescala o ReplicaSet controlado dependendo no uso de CPU
309+
criar um HPA definido que autoescala o ReplicaSet controlado dependendo do uso de CPU
310310
dos Pods replicados.
311311

312312
```shell
@@ -331,7 +331,7 @@ Por isso, é recomendado o uso de Deployments quando você deseja ReplicaSets.
331331

332332
### Bare Pods
333333

334-
Diferente do caso onde um usuário cria Pods diretamente, um ReplicaSet substitui Pods que forem deletados ou terminados por qualquer motivo, como em caso de falha de node ou manutenção disruptivo de node, como uma atualização de kernel. Por esse motivo, nós recomendamos que você use um ReplicaSet mesmo que sua aplicação necessite apenas de um único Pod. Pense na semelhança com um supervisor de processos, apenas que ele supervise vários Pods em múltiplos nodes ao invés de apenas um Pod. Um ReplicaSet delega reinicializações de um container local para algum agente do node (Kubelet ou Docker, por exemplo).
334+
Diferente do caso onde um usuário cria Pods diretamente, um ReplicaSet substitui Pods que forem deletados ou terminados por qualquer motivo, como em caso de falha de ou manutenção disruptivo de , como uma atualização de kernel. Por esse motivo, nós recomendamos que você use um ReplicaSet mesmo que sua aplicação necessite apenas de um único Pod. Pense na semelhança com um supervisor de processos, apenas que ele supervisione vários Pods em múltiplos nós ao invés de apenas um Pod. Um ReplicaSet delega reinicializações de um container local para algum agente do (Kubelet ou Docker, por exemplo).
335335

336336
### Job
337337

@@ -345,7 +345,7 @@ os Pods precisam estar executando na máquina antes de outros Pods inicializarem
345345
### ReplicationController
346346
ReplicaSets são sucessores ao [_ReplicationControllers_](/docs/concepts/workloads/controllers/replicationcontroller/).
347347
Os dois servem para o mesmo propósito, e tem comportamentos semelhantes, exceto que um ReplicationController não suporta os requerimentos de um seletor baseado em definição como descrito no [guia de usuário de label](/docs/concepts/overview/working-with-objects/labels/#label-selectors).
348-
Portantom, ReplicaSets são preferíveis à ReplicationControllers
348+
Portanto, ReplicaSets são preferíveis à ReplicationControllers
349349

350350

351351
## {{% heading "whatsnext" %}}

0 commit comments

Comments
 (0)