|
1 | 1 | ---
|
2 | 2 | title: Escalonador do Kubernetes
|
3 |
| -date: 2020-04-19 |
4 | 3 | content_type: concept
|
5 |
| -weight: 50 |
| 4 | +weight: 10 |
6 | 5 | ---
|
7 | 6 |
|
8 | 7 | <!-- overview -->
|
9 | 8 |
|
10 |
| -No Kubernetes, _escalonamento_ refere-se a garantir que os {{< glossary_tooltip text="Pods" term_id="pod" >}} |
11 |
| -sejam correspondidos aos {{< glossary_tooltip text="Nodes" term_id="node" >}} para que o |
12 |
| -{{< glossary_tooltip text="Kubelet" term_id="kubelet" >}} possa executá-los. |
13 |
| - |
14 |
| - |
| 9 | +No Kubernetes, _escalonamento_ refere-se a garantir que os {{< glossary_tooltip text="Pods" term_id="pod" >}} |
| 10 | +sejam correspondidos aos {{< glossary_tooltip text="Nós" term_id="node" >}} |
| 11 | +para que o {{< glossary_tooltip text="Kubelet" term_id="kubelet" >}} |
| 12 | +possa executá-los. |
15 | 13 |
|
16 | 14 | <!-- body -->
|
17 | 15 |
|
18 | 16 | ## Visão geral do Escalonamento {#escalonamento}
|
19 | 17 |
|
20 |
| -Um escalonador observa Pods recém-criados que não possuem um Node atribuído. |
| 18 | +Um escalonador observa Pods recém-criados que não possuem um Nó atribuído. |
21 | 19 | Para cada Pod que o escalonador descobre, ele se torna responsável por
|
22 |
| -encontrar o melhor Node para execução do Pod. O escalonador chega a essa decisão de alocação levando em consideração os princípios de programação descritos abaixo. |
| 20 | +encontrar o melhor Nó para execução do Pod. O escalonador chega a essa decisão |
| 21 | +de alocação levando em consideração os princípios de escalonamento descritos abaixo. |
23 | 22 |
|
24 |
| -Se você quiser entender por que os Pods são alocados em um Node específico |
| 23 | +Se você quiser entender por que os Pods são alocados em um Nó específico |
25 | 24 | ou se planeja implementar um escalonador personalizado, esta página ajudará você a
|
26 | 25 | aprender sobre escalonamento.
|
27 | 26 |
|
28 | 27 | ## kube-scheduler
|
29 | 28 |
|
30 |
| -[kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/) |
31 |
| -é o escalonador padrão do Kubernetes e é executado como parte do |
32 |
| -{{< glossary_tooltip text="control plane" term_id="control-plane" >}}. |
| 29 | +[kube-scheduler](/docs/reference/command-line-tools-reference/kube-scheduler/) |
| 30 | +é o escalonador padrão do Kubernetes e é executado como parte da |
| 31 | +{{< glossary_tooltip text="camada de gerenciamento" term_id="control-plane" >}}. |
33 | 32 | O kube-scheduler é projetado para que, se você quiser e precisar, possa
|
34 | 33 | escrever seu próprio componente de escalonamento e usá-lo.
|
35 | 34 |
|
36 |
| -Para cada Pod recém-criado ou outros Pods não escalonados, o kube-scheduler |
37 |
| -seleciona um Node ideal para execução. No entanto, todos os contêineres nos Pods |
38 |
| -têm requisitos diferentes de recursos e cada Pod também possui requisitos diferentes. |
39 |
| -Portanto, os Nodes existentes precisam ser filtrados de acordo com os requisitos de |
40 |
| -escalonamento específicos. |
| 35 | +O kube-scheduler seleciona um Nó ideal para executar Pods recém-criados ou não |
| 36 | +escalonados (unscheduled). Como os contêineres em Pods — e os próprios Pods — podem |
| 37 | +ter diferentes requisitos, o escalonador filtra os Nós que não atendem às necessidades |
| 38 | +específicas de escalonamento do Pod. Alternativamente, a API permite que você especifique |
| 39 | +um Nó para um Pod ao criá-lo, mas isso é incomum e só é feito em casos especiais. |
41 | 40 |
|
42 |
| -Em um cluster, Nodes que atendem aos requisitos de escalonamento para um Pod |
43 |
| -são chamados de Nodes _viáveis_. Se nenhum dos Nodes for adequado, o Pod |
44 |
| -permanece não escalonado até que o escalonador possa alocá-lo. |
| 41 | +Em um cluster, Nós que atendem aos requisitos de escalonamento para um Pod são chamados |
| 42 | +de Nós _viáveis_. Se nenhum dos Nós for adequado, o Pod permanece não escalonado até |
| 43 | +que o escalonador consiga alocá-lo. |
45 | 44 |
|
46 |
| -O escalonador encontra Nodes viáveis para um Pod e, em seguida, executa um conjunto de |
47 |
| -funções para pontuar os Nodes viáveis e escolhe um Node com a maior |
48 |
| -pontuação entre os possíveis para executar o Pod. O escalonador então notifica |
49 |
| -o servidor da API sobre essa decisão em um processo chamado _binding_. |
| 45 | +O escalonador encontra Nós viáveis para um Pod e, em seguida, executa um conjunto de |
| 46 | +funções para classificar esses Nós viáveis e escolhe o Nó com a maior pontuação entre |
| 47 | +os possíveis para executar o Pod. O escalonador então notifica o servidor de API sobre essa |
| 48 | +decisão em um processo chamado _binding_. |
50 | 49 |
|
51 |
| -Fatores que precisam ser levados em consideração para decisões de escalonamento incluem |
52 |
| -requisitos individuais e coletivos de recursos, |
53 |
| -restrições de hardware / software / política, especificações de afinidade e anti-afinidade, |
54 |
| -localidade de dados, interferência entre cargas de trabalho e assim por diante. |
| 50 | +Fatores que precisam ser levados em consideração para decisões de escalonamento incluem |
| 51 | +requisitos individuais e coletivos de recursos, restrições de hardware / software / política, |
| 52 | +especificações de afinidade e anti-afinidade, localização de dados, interferência entre cargas de trabalho |
| 53 | +e assim por diante. |
55 | 54 |
|
56 |
| -### Seleção do Node no kube-scheduler {#implementação-kube-scheduler} |
| 55 | +### Seleção do Nó no kube-scheduler {#implementação-kube-scheduler} |
57 | 56 |
|
58 |
| -O kube-scheduler seleciona um Node para o Pod em uma operação que consiste em duas etapas: |
| 57 | +O kube-scheduler seleciona um Nó para o Pod em uma operação que consiste em duas etapas: |
59 | 58 |
|
60 | 59 | 1. Filtragem
|
61 | 60 | 1. Pontuação
|
62 | 61 |
|
63 |
| -A etapa de _filtragem_ localiza o conjunto de Nodes onde é possível |
64 |
| -alocar o Pod. Por exemplo, o filtro PodFitsResources verifica se um Node |
65 |
| -candidato possui recursos disponíveis suficientes para atender às solicitações |
66 |
| -de recursos específicas de um Pod. Após esta etapa, a lista de Nodes contém |
67 |
| -quaisquer Nodes adequados; frequentemente, haverá mais de um. Se a lista estiver vazia, |
68 |
| -esse Pod (ainda) não é escalonável. |
69 |
| - |
70 |
| -Na etapa de _pontuação_, o escalonador classifica os Nodes restantes para escolher |
71 |
| -o mais adequado. O escalonador atribui uma pontuação a cada Node |
72 |
| -que sobreviveu à filtragem, baseando essa pontuação nas regras de pontuação ativa. |
73 |
| - |
74 |
| -Por fim, o kube-scheduler atribui o Pod ao Node com a classificação mais alta. |
75 |
| -Se houver mais de um Node com pontuações iguais, o kube-scheduler seleciona |
76 |
| -um deles aleatoriamente. |
| 62 | +A etapa de _filtragem_ localiza o conjunto de Nós onde é possível alocar o Pod. Por exemplo, |
| 63 | +o filtro PodFitsResources verifica se um Nó candidato possui recursos disponíveis suficientes |
| 64 | +para atender às solicitações de recursos específicas de um Pod. Após esta etapa, a lista de |
| 65 | +Nós contém quaisquer Nós adequados; frequentemente, haverá mais de um. Se a lista estiver |
| 66 | +vazia, esse Pod (ainda) não é escalonável. |
77 | 67 |
|
78 |
| -Existem duas maneiras suportadas de configurar o comportamento de filtragem e pontuação |
79 |
| -do escalonador: |
| 68 | +Na etapa de _pontuação_, o escalonador classifica os Nós restantes para escolher o mais |
| 69 | +adequado. O escalonador atribui uma pontuação a cada Nó que passou na filtragem, baseando |
| 70 | +essa pontuação nas regras de pontuação ativas. |
80 | 71 |
|
81 |
| -1. [Políticas de Escalonamento](/docs/reference/scheduling/policies) permitem configurar _Predicados_ para filtragem e _Prioridades_ para pontuação. |
| 72 | +Por fim, o kube-scheduler atribui o Pod ao Nó com a classificação mais alta. Se houver mais |
| 73 | +de um Nó com pontuações iguais, o kube-scheduler seleciona um deles aleatoriamente. |
82 | 74 |
|
83 |
| -1. [Perfis de Escalonamento](/docs/reference/scheduling/profiles) permitem configurar Plugins que implementam diferentes estágios de escalonamento, incluindo: `QueueSort`, `Filter`, `Score`, `Bind`, `Reserve`, `Permit`, e outros. Você também pode configurar o kube-scheduler para executar diferentes perfis. |
| 75 | +Existem duas maneiras suportadas de configurar o comportamento de filtragem e pontuação do escalonador: |
84 | 76 |
|
| 77 | +1. [Políticas de Escalonamento](/docs/reference/scheduling/policies) permitem configurar _Predicados_ |
| 78 | +para filtragem e _Prioridades_ para pontuação. |
| 79 | +2. [Perfis de Escalonamento](/docs/reference/scheduling/config/#profiles) permitem configurar Plugins |
| 80 | +que implementam diferentes estágios de escalonamento, incluindo: `QueueSort`, `Filter`, `Score`, |
| 81 | +`Bind`, `Reserve`, `Permit`, e outros. Você também pode configurar o kube-scheduler para executar |
| 82 | +diferentes perfis. |
85 | 83 |
|
86 | 84 | ## {{% heading "whatsnext" %}}
|
87 | 85 |
|
88 |
| -* Leia sobre [ajuste de desempenho do escalonador](/docs/concepts/scheduling/scheduler-perf-tuning/) |
89 |
| -* Leia sobre [restrições de propagação da topologia de pod](/docs/concepts/workloads/pods/pod-topology-spread-constraints/) |
| 86 | +* Leia sobre [ajuste de desempenho do escalonador](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/) |
| 87 | +* Leia sobre [restrições de propagação da topologia de pod](/docs/concepts/scheduling-eviction/topology-spread-constraints/) |
90 | 88 | * Leia a [documentação de referência](/docs/reference/command-line-tools-reference/kube-scheduler/) para o kube-scheduler
|
91 |
| -* Aprenda como [configurar vários escalonadores](/docs/tasks/administer-cluster/configure-multiple-schedulers/) |
| 89 | +* Leia a [referência de configuração do kube-scheduler (v1)](/docs/reference/config-api/kube-scheduler-config.v1/) |
| 90 | +* Aprenda como [configurar vários escalonadores](/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) |
92 | 91 | * Aprenda sobre [políticas de gerenciamento de topologia](/docs/tasks/administer-cluster/topology-manager/)
|
93 |
| -* Aprenda sobre [Pod Overhead](/docs/concepts/configuration/pod-overhead/) |
94 |
| -* Saiba mais sobre o agendamento de pods que usam volumes em: |
| 92 | +* Aprenda sobre [Sobrecarga de Pod](/pt-br/docs/concepts/scheduling-eviction/pod-overhead/) |
| 93 | +* Saiba mais sobre o escalonamento de pods que usam volumes em: |
95 | 94 | * [Suporte de topologia de volume](/docs/concepts/storage/storage-classes/#volume-binding-mode)
|
96 | 95 | * [Rastreamento de capacidade de armazenamento](/docs/concepts/storage/storage-capacity/)
|
97 |
| - * [Limites de volumes específicos do nó](/docs/concepts/storage/storage-limits/) |
| 96 | + * [Limites de volumes específicos do nó](/docs/concepts/storage/storage-limits/) |
0 commit comments