Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Visão geral das diretrizes de dimensionamento
Ao planejar a implantação dos serviços de dados do Azure Arc, planeje a quantidade correta de:
- Computação
- Memory
- Armazenamento
Estes recursos são necessários para:
- O responsável pelo tratamento dos dados
- Instâncias SQL geridas
Como os serviços de dados habilitados para Azure Arc são implantados no Kubernetes, você tem a flexibilidade de adicionar mais capacidade ao cluster do Kubernetes ao longo do tempo por nós de computação ou armazenamento. Este guia explica os requisitos mínimos e recomenda tamanhos para alguns requisitos comuns.
Requisitos gerais de dimensionamento
Note
Se você não estiver familiarizado com os conceitos deste artigo, poderá ler mais sobre governança de recursos do Kubernetes e notação de tamanho do Kubernetes.
Os números de núcleos devem ser um valor inteiro maior ou igual a um.
Ao implantar com a CLI do Azure (az), use uma potência de dois números para definir os valores de memória. Especificamente, use os sufixos:
KiMiGi
Os valores-limite devem ser sempre superiores ao valor da solicitação, se especificado.
Os valores limite para núcleos são a métrica faturável na instância gerenciada pelo SQL.
Requisitos mínimos de implantação
Uma implantação de serviços de dados habilitada para Azure Arc de tamanho mínimo pode ser considerada como o controlador de dados do Azure Arc mais uma instância gerenciada pelo SQL. For this configuration, you need at least 16-GB RAM and 4 cores of available capacity on your Kubernetes cluster. Você deve garantir que cada nó Kubernetes tenha um tamanho mínimo de 8 GB de RAM e 4 núcleos, e que a capacidade total de 16 GB de RAM esteja disponível em todos os seus nós Kubernetes. Por exemplo, você pode ter 1 nó com 32 GB de RAM e 4 núcleos ou pode ter 2 nós com 16 GB de RAM e 4 núcleos cada.
See the storage-configuration article for details on storage sizing.
Detalhes de dimensionamento do controlador de dados
O controlador de dados é uma coleção de pods que são implantados no cluster do Kubernetes para fornecer uma API, o serviço do controlador, o bootstrapper e os bancos de dados e painéis de monitoramento. Esta tabela descreve os valores padrão para solicitações e limites de memória e CPU.
| Pod name | CPU request | Memory request | CPU limit | Memory limit |
|---|---|---|---|---|
bootstrapper |
100m |
100Mi |
200m |
200Mi |
control |
400m |
2Gi |
1800m |
2Gi |
controldb |
200m |
4Gi |
800m |
6Gi |
logsdb |
200m |
1600Mi |
2 |
1600Mi |
logsui |
100m |
500Mi |
2 |
2Gi |
metricsdb |
200m |
800Mi |
400m |
2Gi |
metricsdc |
100m |
200Mi |
200m |
300Mi |
metricsui |
20m |
200Mi |
500m |
200Mi |
metricsdc é um daemonset, que é criado em cada um dos nós do Kubernetes no seu cluster. The numbers in the table are per node. Se você definir allowNodeMetricsCollection = false em seu arquivo de perfil de implantação antes de criar o controlador de dados, isso daemonset não será criado.
Você pode substituir as configurações padrão para o controldb e os pods de controle no arquivo YAML do seu controlador de dados. Example:
resources:
controller:
limits:
cpu: "1000m"
memory: "3Gi"
requests:
cpu: "800m"
memory: "2Gi"
controllerDb:
limits:
cpu: "800m"
memory: "8Gi"
requests:
cpu: "200m"
memory: "4Gi"
See the storage-configuration article for details on storage sizing.
Detalhes do dimensionamento da instância SQL gerida
Cada instância gerenciada pelo SQL deve ter os seguintes limites e solicitações mínimas de recursos:
| Service tier | Fins Gerais | Crítico para a Empresa |
|---|---|---|
| CPU request | Minimum: 1 Maximum: 24 Default: 2 |
Minimum: 3 Maximum: unlimited Default: 4 |
| CPU limit | Minimum: 1 Maximum: 24 Default: 2 |
Minimum: 3 Maximum: unlimited Default: 4 |
| Memory request | Mínimo: 2GiMáximo: 128GiPredefinição: 4Gi |
Mínimo: 2GiMaximum: unlimited Predefinição: 4Gi |
| Memory limit | Mínimo: 2GiMáximo: 128GiPredefinição: 4Gi |
Mínimo: 2GiMaximum: unlimited Predefinição: 4Gi |
Cada pod de instância gerenciada SQL criado tem três contêineres:
| Container name | CPU Request | Memory Request | CPU Limit | Memory Limit | Notes |
|---|---|---|---|---|---|
fluentbit |
100m |
100Mi |
Not specified | Not specified | As fluentbit solicitações de recursos de contêiner são adicionais às solicitações especificadas para a instância gerenciada SQL. |
arc-sqlmi |
Usuário especificado ou não especificado. | Usuário especificado ou não especificado. | Usuário especificado ou não especificado. | Usuário especificado ou não especificado. | |
collectd |
Not specified | Not specified | Not specified | Not specified |
O tamanho de volume padrão para todos os volumes persistentes é 5Gi.
Cumulative sizing
O tamanho geral de um ambiente necessário para serviços de dados habilitados para Azure Arc é principalmente uma função do número e tamanho das instâncias de banco de dados. O tamanho geral pode ser difícil de prever com antecedência, sabendo que o número de instâncias pode crescer e diminuir e a quantidade de recursos necessários para cada instância de banco de dados pode mudar.
O tamanho da linha de base para um determinado ambiente de serviços de dados habilitado para Azure Arc é o tamanho do controlador de dados, que requer 4 núcleos e 16 GB de RAM. A partir daí, adicione o total cumulativo de núcleos e memória necessários para as instâncias de banco de dados. A Instância Gerenciada SQL requer um pod para cada instância.
Além dos núcleos e da memória solicitados para cada instância de banco de dados, você deve adicionar 250m núcleos e 250Mi RAM para os contêineres do agente.
Exemplo de cálculo de dimensionamento
Requirements:
- "SQL1": 1 SQL managed instance with 16-GB RAM, 4 cores
- "SQL2": 1 SQL managed instance with 256-GB RAM, 16 cores
Sizing calculations:
O tamanho de "SQL1" é:
1 pod * ([16Gi RAM, 4 cores] + [250Mi RAM, 250m cores]). Para os agentes por pod, use16.25 GiRAM e 4,25 núcleos.O tamanho de "SQL2" é:
1 pod * ([256Gi RAM, 16 cores] + [250Mi RAM, 250m cores]). Para os agentes por pod use256.25 GiRAM e 16,25 núcleos.O tamanho total do SQL 1 e do SQL 2 é:
(16.25 GB + 256.25 Gi) = 272.5-GB RAM(4.25 cores + 16.25 cores) = 20.5 cores
O tamanho de "Postgres1" é:
1 pod * ([12Gi RAM, 4 cores] + [250Mi RAM, 250m cores]). Para agentes em cada pod utilize12.25 GiRAM e4.25núcleos.A capacidade total necessária:
- Para as instâncias de banco de dados:
- 272.5-GB RAM
- 20.5 cores
- For SQL:
- 12.25-GB RAM
- 4.25 cores
- Para as instâncias de banco de dados:
A capacidade total necessária para as instâncias de banco de dados mais o controlador de dados é:
- Para a instância do banco de dados
- 284.75-GB RAM
- 24.75 cores
- Para o responsável pelo tratamento dos dados
- 16-GB RAM
- 4 cores
- In total:
- 300.75-GB RAM
- 28.75 cores.
- Para a instância do banco de dados
See the storage-configuration article for details on storage sizing.
Other considerations
Lembre-se de que uma determinada solicitação de tamanho de instância de banco de dados para núcleos ou RAM não pode exceder a capacidade disponível dos nós do Kubernetes no cluster. Por exemplo, se o maior nó do Kubernetes que você tem no cluster do Kubernetes tiver 256 GB de RAM e 24 núcleos, não será possível criar uma instância de banco de dados com uma solicitação de 512 GB de RAM e 48 núcleos.
Mantenha pelo menos 25% da capacidade disponível nos nós do Kubernetes. Essa capacidade permite que o Kubernetes:
- Agende eficientemente os pods a serem criados
- Habilitar o dimensionamento elástico
- Suporta atualizações contínuas dos nós do Kubernetes
- Facilita o crescimento a longo prazo conforme necessário
Em seus cálculos de dimensionamento, adicione os requisitos de recursos dos pods do sistema Kubernetes e quaisquer outras cargas de trabalho, que podem estar compartilhando capacidade com serviços de dados habilitados para Azure Arc no mesmo cluster do Kubernetes.
Para manter a alta disponibilidade durante a manutenção planejada e a continuidade de desastres, planeje que pelo menos um dos nós do Kubernetes em seu cluster fique indisponível em qualquer momento. O Kubernetes tenta reprogramar os pods que estavam sendo executados em um determinado nó que foi retirado para manutenção ou devido a uma falha. Se não houver capacidade disponível nos nós restantes, esses pods não serão reprogramados para criação até que haja capacidade disponível novamente. Tenha cuidado extra com instâncias de banco de dados grandes. Por exemplo, se houver apenas um nó do Kubernetes grande o suficiente para atender aos requisitos de recursos de uma instância de banco de dados grande e esse nó falhar, o Kubernetes não agendará esse pod de instância de banco de dados para outro nó do Kubernetes.
Tenha em mente os limites máximos para um tamanho de cluster do Kubernetes.
Your Kubernetes administrator may have set up resource quotas on your namespace/project. Tenha essas cotas em mente ao planejar o tamanho da instância do banco de dados.