|
| 1 | +--- |
| 2 | +title: Considerações para clusters grandes |
| 3 | +weight: 10 |
| 4 | +--- |
| 5 | + |
| 6 | +Um cluster é um conjunto de {{< glossary_tooltip text="nós" term_id="node" >}} (máquinas físicas ou virtuais) executando agentes do Kubernetes, gerenciados pela {{< glossary_tooltip text="camada de gerenciamento" term_id="control-plane" >}}. |
| 7 | +O Kubernetes {{< param "version" >}} suporta clusters com até 5.000 nós. Mais especificamente, o Kubernetes foi projetado para acomodar configurações que atendem a *todos* os seguintes critérios: |
| 8 | + |
| 9 | +* Não mais de 110 Pods por nó |
| 10 | +* Não mais de 5.000 nós |
| 11 | +* Não mais de 150.000 Pods no total |
| 12 | +* Não mais de 300.000 contêineres no total |
| 13 | + |
| 14 | +Você pode escalar seu cluster adicionando ou removendo nós. A forma como você faz isso depende de como seu cluster está implantado. |
| 15 | + |
| 16 | +## Cotas de recursos do provedor de nuvem {#quota-issues} |
| 17 | + |
| 18 | +Para evitar problemas de cota do provedor de nuvem ao criar um cluster com muitos nós, considere: |
| 19 | +* Solicitar um aumento de cota para recursos de nuvem como: |
| 20 | + * Instâncias de computação |
| 21 | + * CPUs |
| 22 | + * Volumes de armazenamento |
| 23 | + * Endereços IP em uso |
| 24 | + * Conjuntos de regras de filtragem de pacotes |
| 25 | + * Número de balanceadores de carga |
| 26 | + * Sub-redes |
| 27 | + * Fluxos de log |
| 28 | +* Controlar as ações de escalonamento do cluster para trazer novos nós em lotes, com uma pausa entre os lotes, porque alguns provedores de nuvem limitam a taxa de criação de novas instâncias. |
| 29 | + |
| 30 | +## Componentes da camada de gerenciamento |
| 31 | + |
| 32 | +Para um cluster grande, você precisa de uma camada de gerenciamento com recursos computacionais e outros recursos suficientes. |
| 33 | + |
| 34 | +Normalmente, você executaria uma ou duas instâncias da camada de gerenciamento por zona de falha, escalonando essas instâncias verticalmente primeiro e depois escalonando horizontalmente, quando o escalonamento vertical não for mais eficiente. |
| 35 | + |
| 36 | +Você deve executar pelo menos uma instância por zona de falha para fornecer tolerância a falhas. Os nós do Kubernetes não direcionam automaticamente o tráfego para endpoints da camada de gerenciamento que estão na mesma zona de falha; no entanto, seu provedor de nuvem pode ter seus próprios mecanismos para fazer isso. |
| 37 | + |
| 38 | +Por exemplo, usando um balanceador de carga gerenciado, você configura o balanceador de carga para enviar tráfego originado do kubelet e Pods na zona de falha _A_, direcionando esse tráfego apenas para os hosts da camada de gerenciamento que também estão na zona _A_. Se um único host da camada de gerenciamento ou endpoint da zona de falha _A_ ficar offline, isso significa que todo o tráfego da camada de gerenciamento para nós na zona _A_ agora está sendo enviado entre zonas. Executar múltiplos hosts da camada de gerenciamento em cada zona torna esse cenário menos provável. |
| 39 | + |
| 40 | +### Armazenamento etcd |
| 41 | + |
| 42 | +Para melhorar o desempenho de clusters grandes, você pode armazenar objetos Event em uma instância etcd dedicada separada. |
| 43 | + |
| 44 | +Ao criar um cluster, você pode (usando ferramentas personalizadas): |
| 45 | + |
| 46 | +* iniciar e configurar uma instância etcd adicional |
| 47 | +* configurar o {{< glossary_tooltip term_id="kube-apiserver" text="servidor de API" >}} para usá-la para armazenar eventos |
| 48 | + |
| 49 | +Consulte [Operação de clusters etcd para Kubernetes](/docs/tasks/administer-cluster/configure-upgrade-etcd/) e |
| 50 | +[Configurar um cluster etcd de alta disponibilidade com kubeadm](/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) |
| 51 | +para detalhes sobre configuração e gerenciamento do etcd para um cluster grande. |
| 52 | + |
| 53 | +## Recursos de complementos |
| 54 | + |
| 55 | +Os [limites de recursos](/pt-br/docs/concepts/configuration/manage-resources-containers/) do Kubernetes |
| 56 | +ajudam a minimizar o impacto de vazamentos de memória e outras formas como Pods e contêineres podem |
| 57 | +impactar outros componentes. Esses limites de recursos se aplicam a |
| 58 | +recursos de {{< glossary_tooltip text="complementos" term_id="addons" >}} assim como se aplicam a cargas de trabalho de aplicação. |
| 59 | + |
| 60 | +Por exemplo, você pode definir limites de CPU e memória para um componente de log: |
| 61 | + |
| 62 | +```yaml |
| 63 | + ... |
| 64 | + containers: |
| 65 | + - name: fluentd-cloud-logging |
| 66 | + image: fluent/fluentd-kubernetes-daemonset:v1 |
| 67 | + resources: |
| 68 | + limits: |
| 69 | + cpu: 100m |
| 70 | + memory: 200Mi |
| 71 | +``` |
| 72 | +
|
| 73 | +Os limites padrão dos complementos são tipicamente baseados em dados coletados da experiência de executar cada complemento em clusters Kubernetes pequenos ou médios. Ao executar em clusters grandes, os complementos frequentemente consomem mais recursos do que seus limites padrão. |
| 74 | +Se um cluster grande for implantado sem ajustar esses valores, o(s) complemento(s) podem ser continuamente eliminados porque continuam atingindo o limite de memória. |
| 75 | +Alternativamente, o complemento pode executar, mas com desempenho ruim devido a restrições de fatia de tempo de CPU. |
| 76 | +
|
| 77 | +Para evitar problemas de recursos de complementos do cluster, ao criar um cluster com muitos nós, considere o seguinte: |
| 78 | +
|
| 79 | +* Alguns complementos escalonam verticalmente - há uma réplica do complemento para o cluster ou servindo uma zona de falha inteira. Para esses complementos, aumente os requerimentos e limites conforme você escalona seu cluster. |
| 80 | +* Muitos complementos escalonam horizontalmente - você adiciona capacidade executando mais Pods - mas com um cluster muito grande, você também pode precisar aumentar ligeiramente os limites de CPU ou memória. |
| 81 | + O [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#readme) pode executar no modo _recommender_ para fornecer valores sugeridos para requerimentos e limites. |
| 82 | +* Alguns complementos executam como uma cópia por nó controlados por um {{< glossary_tooltip text="DaemonSet" |
| 83 | +term_id="daemonset" >}}: por exemplo, um agregador de log a nível de nó. Similar ao caso com complementos escalonados horizontalmente, você também pode precisar aumentar ligeiramente os limites de CPU ou memória. |
| 84 | +
|
| 85 | +## {{% heading "whatsnext" %}} |
| 86 | +
|
| 87 | +* `VerticalPodAutoscaler` é um recurso personalizado que você pode implantar em seu cluster para ajudá-lo a gerenciar requerimentos e limites de recursos para Pods. |
| 88 | +Saiba mais sobre [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#readme) |
| 89 | +e como você pode usá-lo para escalonar componentes do cluster, incluindo complementos críticos do cluster. |
| 90 | + |
| 91 | +* Leia sobre [Escalonamento automático de nós](/docs/concepts/cluster-administration/node-autoscaling/) |
| 92 | + |
| 93 | +* O [redimensionador de complementos](https://github.com/kubernetes/autoscaler/tree/master/addon-resizer#readme) ajuda você a redimensionar os complementos automaticamente conforme a escala do seu cluster muda. |
0 commit comments