@@ -9,149 +9,158 @@ weight: 30
9
9
Em robótica e automação um _ control loop_ , ou em português _ ciclo de controle_ , é
10
10
um ciclo não terminado que regula o estado de um sistema.
11
11
12
- Um exemplo de ciclo de controle é um termostato de uma sala.
12
+ Aqui está um exemplo de um ciclo de controle: um termostato em uma sala.
13
13
14
14
Quando você define a temperatura, isso indica ao termostato
15
- sobre o seu * estado desejado * . A temperatura ambiente real é o
16
- * estado atual * . O termostato atua de forma a trazer o estado atual
15
+ sobre o seu _ estado desejado _ . A temperatura ambiente real é o
16
+ _ estado atual _ . O termostato atua para trazer o estado atual
17
17
mais perto do estado desejado, ligando ou desligando o equipamento.
18
18
19
19
{{< glossary_definition term_id="controller" length="short">}}
20
20
21
-
22
-
23
-
24
21
<!-- body -->
25
22
26
- ## Padrão Controlador (Controller pattern)
23
+ ## Padrão Controlador
27
24
28
25
Um controlador rastreia pelo menos um tipo de recurso Kubernetes.
29
- Estes [ objetos] ( /docs/concepts/overview/working-with-objects/kubernetes-objects/#kubernetes-objects )
30
- têm um campo * spec* que representa o * estado desejado* .
31
- O(s) controlador(es) para aquele recurso são responsáveis por trazer o * estado atual*
32
- mais perto do * estado desejado* .
26
+ Estes {{< glossary_tooltip text=" objetos" term_id="object" >}}
27
+ têm um campo spec que representa o estado desejado. O(s)
28
+ controlador(es) para aquele recurso são responsáveis por fazer o estado atual
29
+ se aproximar daquele estado desejado.
33
30
34
- O controlador pode executar uma ação ele próprio, ou ,
35
- o que é mais comum, no Kubernetes, o controlador envia uma mensagem para o
36
- {{< glossary_tooltip text="API server " term_id="kube-apiserver" >}} (servidor de API) que tem
37
- efeitos colaterais úteis. Você vai ver exemplos disto abaixo.
31
+ O controlador pode executar a ação ele próprio; mais comumente, no Kubernetes ,
32
+ um controlador enviará mensagens para o
33
+ {{< glossary_tooltip text="servidor de API " term_id="kube-apiserver" >}} que têm
34
+ efeitos colaterais úteis. Você verá exemplos disso abaixo.
38
35
39
- ### Controlador via API server
36
+ {{< comment >}}
37
+ Alguns controladores embutidos, como o controlador de namespace, atuam em objetos
38
+ que não têm um spec. Para simplicidade, esta página omite explicar esse
39
+ detalhe.
40
+ {{< /comment >}}
41
+
42
+ ### Controle via servidor de API
40
43
41
44
O controlador {{< glossary_tooltip term_id="job" >}} é um exemplo de um
42
- controlador Kubernetes embutido. Controladores embutidos gerem estados através da
43
- interação com o * cluster API server* .
44
-
45
- * Job* é um recurso do Kubernetes que é executado em um
46
- * {{< glossary_tooltip term_id="pod" >}}* , ou talvez vários * Pods* , com o objetivo de
47
- executar uma tarefa e depois parar.
48
-
49
- (Uma vez [ agendado] ( /docs/concepts/scheduling/ ) , objetos * Pod* passam a fazer parte
50
- do * estado desejado* para um kubelet.
51
-
52
- Quando o controlador * Job* observa uma nova tarefa ele garante que,
53
- algures no seu * cluster* , os kubelets num conjunto de nós (* Nodes* ) estão correndo o número
54
- correto de * Pods* para completar o trabalho.
55
- O controlador * Job* não corre * Pods* ou * containers* ele próprio.
56
- Em vez disso, o controlador * Job* informa o * API server* para criar ou remover * Pods* .
57
- Outros componentes do plano de controle
58
- ({{< glossary_tooltip text="control plane" term_id="control-plane" >}})
59
- atuam na nova informação (existem novos * Pods* para serem agendados e executados),
45
+ controlador embutido do Kubernetes. Controladores embutidos gerenciam estado através da
46
+ interação com o servidor de API do cluster.
47
+
48
+ Job é um recurso do Kubernetes que executa um
49
+ {{< glossary_tooltip term_id="pod" >}}, ou talvez vários Pods, para realizar
50
+ uma tarefa e depois parar.
51
+
52
+ (Uma vez [ agendado] ( /docs/concepts/scheduling-eviction/ ) , objetos Pod se tornam parte do
53
+ estado desejado para um kubelet).
54
+
55
+ Quando o controlador Job vê uma nova tarefa, ele garante que, em algum lugar
56
+ no seu cluster, os kubelets em um conjunto de Nodes estão executando o número
57
+ correto de Pods para realizar o trabalho.
58
+ O controlador Job não executa nenhum Pod ou container
59
+ ele próprio. Em vez disso, o controlador Job informa o servidor de API para criar ou remover
60
+ Pods.
61
+ Outros componentes no
62
+ {{< glossary_tooltip text="control plane" term_id="control-plane" >}}
63
+ atuam na nova informação (existem novos Pods para serem agendados e executados),
60
64
e eventualmente o trabalho é feito.
61
65
62
- Após ter criado um novo * Job* , o * estado desejado* é que esse Job seja completado.
63
- O controlador * Job* faz com que o * estado atual* para esse * Job* esteja mais perto do seu
64
- * estado desejado* : criando * Pods* que fazem o trabalho desejado para esse * Job* para que
65
- o * Job* fique mais perto de ser completado .
66
+ Após criar um novo Job, o estado desejado é que esse Job seja completado.
67
+ O controlador Job faz com que o estado atual para esse Job esteja mais próximo do seu
68
+ estado desejado: criando Pods que fazem o trabalho que você queria para esse Job, para que
69
+ o Job esteja mais próximo da conclusão .
66
70
67
71
Controladores também atualizam os objetos que os configuram.
68
- Por exemplo: assim que o trabalho de um * Job* está completo,
69
- o controlador * Job* atualiza esse objeto * Job* para o marcar como ` Finished ` (terminado) .
72
+ Por exemplo: uma vez que o trabalho de um Job está completo,
73
+ o controlador Job atualiza esse objeto Job para marcá-lo como ` Finished ` .
70
74
71
- (Isto é um pouco como alguns termostatos desligam uma luz para
72
- indicar que a temperatura da sala está agora na temperatura que foi introduzida ).
75
+ (Isso é um pouco como alguns termostatos desligam uma luz para
76
+ indicar que a sala está agora na temperatura que você definiu ).
73
77
74
78
### Controle direto
75
79
76
- Em contraste com * Job* , alguns controladores necessitam de efetuar
77
- mudanças fora do * cluster* .
80
+ Em contraste com Job, alguns controladores precisam fazer mudanças em
81
+ coisas fora do seu cluster.
82
+
83
+ Por exemplo, se você usar um ciclo de controle para garantir que existem
84
+ {{< glossary_tooltip text="Nodes" term_id="node" >}} suficientes
85
+ no seu cluster, então esse controlador precisa de algo fora do
86
+ cluster atual para configurar novos Nodes quando necessário.
78
87
79
- Por exemplo, se usar um ciclo de controle para garantir que existem
80
- * {{< glossary_tooltip text="Nodes" term_id="node" >}}* suficientes
81
- no seu * cluster* , então esse controlador necessita de algo exterior ao
82
- * cluster* atual para configurar novos * Nodes* quando necessário.
88
+ Controladores que interagem com estado externo encontram seu estado desejado a partir do
89
+ servidor de API, então comunicam diretamente com um sistema externo para trazer
90
+ o estado atual mais próximo da linha.
83
91
84
- Controladores que interagem com estados externos encontram o seu estado desejado
85
- a partir do * API server* , e então comunicam diretamente com o sistema externo para
86
- trazer o * estado atual* mais próximo do desejado.
92
+ (Existe na verdade um [ controlador] ( https://github.com/kubernetes/autoscaler/ )
93
+ que escala horizontalmente os nodes no seu cluster.)
87
94
88
- (Existe um controlador que escala horizontalmente nós no seu * cluster* .
89
- Veja [ Escalamento automático do cluster] ( /docs/tasks/administer-cluster/cluster-management/#cluster-autoscaling ) )
95
+ O ponto importante aqui é que o controlador faz algumas mudanças para trazer
96
+ seu estado desejado, e então relata o estado atual de volta ao servidor de API do seu cluster.
97
+ Outros ciclos de controle podem observar esses dados relatados e tomar suas próprias ações.
98
+
99
+ No exemplo do termostato, se a sala estiver muito fria, então um controlador diferente
100
+ pode também ligar um aquecedor de proteção contra geada. Com clusters Kubernetes, o control plane
101
+ indiretamente trabalha com ferramentas de gerenciamento de endereços IP, serviços de armazenamento,
102
+ APIs de provedores de nuvem, e outros serviços através de
103
+ [ estender o Kubernetes] ( /docs/concepts/extend-kubernetes/ ) para implementar isso.
90
104
91
105
## Estado desejado versus atual {#desired-vs-current}
92
106
93
- Kubernetes tem uma visão * cloud-native* de sistemas e é capaz de manipular
107
+ O Kubernetes tem uma visão cloud-native de sistemas, e é capaz de lidar com
94
108
mudanças constantes.
95
109
96
- O seu * cluster* pode mudar em qualquer momento à medida que as ações acontecem e
97
- os ciclos de controle corrigem falhas automaticamente. Isto significa que,
98
- potencialmente, o seu * cluster* nunca atinge um estado estável.
110
+ Seu cluster pode estar mudando a qualquer momento conforme o trabalho acontece e
111
+ ciclos de controle corrigem falhas automaticamente. Isso significa que,
112
+ potencialmente, seu cluster nunca atinge um estado estável.
99
113
100
- Enquanto os controladores no seu * cluster* estiverem rodando e forem capazes de
101
- fazer alterações úteis, não importa se o estado é estável ou se é instável .
114
+ Enquanto os controladores do seu cluster estiverem executando e forem capazes de fazer
115
+ mudanças úteis, não importa se o estado geral é estável ou não .
102
116
103
117
## Design
104
118
105
- Como um princípio do seu desenho, o Kubernetes usa muitos controladores onde cada
106
- um gerencia um aspecto particular do estado do * cluster* . Comumente, um particular
107
- ciclo de controle (controlador) usa uma espécie de recurso como o seu * estado desejado* ,
108
- e tem uma espécie diferente de recurso que o mesmo gere para garantir que esse * estado desejado*
109
- é cumprido.
119
+ Como um princípio do seu design, o Kubernetes usa muitos controladores que cada um gerencia
120
+ um aspecto particular do estado do cluster. Mais comumente, um ciclo de controle particular
121
+ (controlador) usa um tipo de recurso como seu estado desejado, e tem um tipo diferente
122
+ de recurso que ele gerencia para fazer esse estado desejado acontecer. Por exemplo,
123
+ um controlador para Jobs rastreia objetos Job (para descobrir novo trabalho) e objetos Pod
124
+ (para executar os Jobs, e então ver quando o trabalho termina). Neste caso
125
+ algo mais cria os Jobs, enquanto o controlador Job cria Pods.
110
126
111
- É útil que haja controladores simples em vez de um conjunto monolítico de ciclos de controle
112
- que estão interligados. Controladores podem falhar, então o Kubernetes foi desenhado para
127
+ É útil ter controladores simples em vez de um conjunto monolítico de ciclos de controle
128
+ que estão interligados. Controladores podem falhar, então o Kubernetes foi projetado para
113
129
permitir isso.
114
130
115
- Por exemplo: um controlador de * Jobs* rastreia objetos * Job* (para
116
- descobrir novos trabalhos) e objetos * Pod* (para correr o * Jobs* , e então
117
- ver quando o trabalho termina). Neste caso outra coisa cria os * Jobs* ,
118
- enquanto o controlador * Job* cria * Pods* .
119
-
120
131
{{< note >}}
121
- Podem existir vários controladores que criam ou atualizam a mesma espécie (kind) de objeto.
122
- Atrás das cortinas , os controladores do Kubernetes garantem que eles apenas tomam
123
- atenção aos recursos ligados aos seus recursos controladores .
132
+ Pode haver vários controladores que criam ou atualizam o mesmo tipo de objeto.
133
+ Nos bastidores , os controladores do Kubernetes garantem que eles apenas prestam atenção
134
+ aos recursos ligados ao seu recurso controlador .
124
135
125
- Por exemplo, você pode ter * Deployments* e * Jobs* ; ambos criam * Pods* .
126
- O controlador de * Job* não apaga os * Pods* que o seu * Deployment* criou,
136
+ Por exemplo, você pode ter Deployments e Jobs; ambos criam Pods.
137
+ O controlador Job não exclui os Pods que seu Deployment criou,
127
138
porque existe informação ({{< glossary_tooltip term_id="label" text="labels" >}})
128
- que os controladores podem usar para diferenciar esses * Pods* .
139
+ que os controladores podem usar para diferenciar esses Pods.
129
140
{{< /note >}}
130
141
131
- ## Formas de rodar controladores {#running-controllers}
142
+ ## Formas de executar controladores {#running-controllers}
132
143
133
- O Kubernetes vem com um conjunto de controladores embutidos que correm
134
- dentro do {{< glossary_tooltip term_id="kube-controller-manager" >}}.
135
- Estes controladores embutidos providenciam comportamentos centrais importantes.
144
+ O Kubernetes vem com um conjunto de controladores embutidos que executam dentro do
145
+ {{< glossary_tooltip term_id="kube-controller-manager" >}}. Estes
146
+ controladores embutidos fornecem comportamentos centrais importantes.
136
147
137
- O controlador * Deployment* e o controlador * Job* são exemplos de controladores
138
- que veem como parte do próprio Kubernetes (controladores "embutidos").
139
- O Kubernetes deixa você correr o plano de controle resiliente, para que se qualquer
140
- um dos controladores embutidos falhar, outra parte do plano de controle assume
141
- o trabalho.
148
+ O controlador Deployment e o controlador Job são exemplos de controladores que
149
+ vêm como parte do próprio Kubernetes (controladores "embutidos").
150
+ O Kubernetes permite que você execute um control plane resiliente, para que se qualquer
151
+ um dos controladores embutidos falhar, outra parte do control plane assumirá o trabalho.
142
152
143
- Pode encontrar controladores fora do plano de controle , para extender o Kubernetes.
153
+ Você pode encontrar controladores que executam fora do control plane , para estender o Kubernetes.
144
154
Ou, se quiser, pode escrever um novo controlador você mesmo.
145
- Pode correr o seu próprio controlador como um conjunto de * Pods* ,
146
- ou externo ao Kubernetes. O que encaixa melhor vai depender no que esse
147
- controlador faz em particular.
148
-
149
-
155
+ Você pode executar seu próprio controlador como um conjunto de Pods,
156
+ ou externamente ao Kubernetes. O que se encaixa melhor dependerá do que esse
157
+ controlador particular faz.
150
158
151
159
## {{% heading "whatsnext" %}}
152
160
153
- * Leia mais sobre o [ plano de controle do Kubernetes] ( /docs/concepts/#kubernetes-control-plane )
154
- * Descubra alguns dos [ objetos Kubernetes] ( /docs/concepts/#kubernetes-objects ) básicos.
155
- * Aprenda mais sobre [ API do Kubernetes] ( /docs/concepts/overview/kubernetes-api/ )
156
- * Se pretender escrever o seu próprio controlador, veja [ Padrões de Extensão] ( /docs/concepts/extend-kubernetes/extend-cluster/#extension-patterns )
157
-
161
+ - Leia sobre o [ control plane do Kubernetes] ( /docs/concepts/architecture/#control-plane-components )
162
+ - Descubra alguns dos [ objetos Kubernetes] ( /docs/concepts/overview/working-with-objects/ ) básicos
163
+ - Saiba mais sobre a [ API do Kubernetes] ( /docs/concepts/overview/kubernetes-api/ )
164
+ - Se quiser escrever seu próprio controlador, veja
165
+ [ padrões de extensão do Kubernetes] ( /docs/concepts/extend-kubernetes/#extension-patterns )
166
+ e o repositório [ sample-controller] ( https://github.com/kubernetes/sample-controller )
0 commit comments