Armazenamento do contêiner do CCE (Everest)
Introdução
O Everest é um sistema de armazenamento de contêineres nativo da nuvem, que permite que clusters do Kubernetes v1.15.6 ou posterior acessem serviços de armazenamento em nuvem por meio do CSI.
Everest é um complemento de recursos do sistema. Ele é instalado por padrão quando um cluster do Kubernetes v1.15 ou posterior é criado.
Restrições
- Se o cluster for atualizado da v1.13 para a v1.15, storage-driver será substituído pelo Everest (v1.1.6 ou posterior) para armazenamento em contêiner. A aquisição não afeta as funções de armazenamento originais.
- Na versão 1.2.0 do complemento Everest, a autenticação por chave é otimizada quando o OBS é usado. Depois que o complemento Everest for atualizado de uma versão anterior à 1.2.0, reinicie todas as cargas de trabalho que usam o OBS no cluster. Caso contrário, as cargas de trabalho talvez não consigam usar o OBS.
- Por predefinição, este extra é instalado em clusters de v1.15 e posteriores. Para clusters v1.13 e anteriores, o complemento storage-driver é instalado por padrão.
- Os nós que executam Huawei Cloud EulerOS 1.1 suportam os complementos Everest de v2.x.x (v2.1.9 ou posterior) e v1.2.x (v1.2.70 ou posterior), mas não suportam os complementos de v1.3.x.
Instalar o complemento
Este complemento foi instalado por padrão. Se for desinstalado devido a alguns motivos, você pode reinstalá-lo executando as seguintes etapas:
- Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster. Clique em Add-ons no painel de navegação, localize CCE Container Storage (Everest) à direita e clique em Install.
- Na página Install Add-on, configure as especificações.
Tabela 1 Parâmetros do Everest Parâmetro
Descrição
Instances
Número de instâncias para o complemento.
A alta disponibilidade não é possível com uma única instância do complemento. Se ocorrer um erro no nó em que a instância do complemento é executada, o complemento falhará.
Containers
O complemento Everest contém os componentes Everest-csi-controller e everest-csi-driver. Para mais detalhes, consulte Componentes.
As especificações dos componentes do complemento podem ser personalizadas com base nas suas necessidades. Retenha os valores padrão solicitados de CPU e memória dos componentes do complemento. Os valores limite podem ser ajustados com base no número de nós de cluster e PVCs. Para obter detalhes sobre as sugestões de configuração, consulte Tabela 2.
Em cenários não típicos, as fórmulas para estimar os valores de limite são as seguintes:
- everest-csi-controller
- Limite da CPU: 250m para 200 ou menos nós, 350m para 1000 nós e 500m para 2000 nós
- Limite de memória = (200 Mi + número de nós x 1 Mi + número de PVCs x 0,2 Mi) x 1,2
- everest-csi-driver
- Limite da CPU: 300m para 200 ou menos nós, 500m para 1000 nós e 800m para 2000 nós
- Limite de memória: 300 Mi para 200 ou menos nós, 600 Mi para 1000 nós e 900 Mi para 2000 nós
Tabela 2 Limites de configuração recomendados em cenários típicos Cenário de configuração
everest-csi-controller
everest-csi-driver
Nós
PVs/PVCs
Instâncias do complemento
vCPUs (limite = solicitada)
Memória (limite = solicitada)
vCPUs (limite = solicitada)
Memória (limite = solicitada)
50
1000
2
250m
600 MiB
300m
300 MiB
200
1000
2
250m
1 GiB
300m
300 MiB
1000
1000
2
350m
2 GiB
500m
600 MiB
1000
5000
2
450m
3 GiB
500m
600 MiB
2000
5000
2
550m
4 GiB
800m
900 MiB
2000
10000
2
650m
5 GiB
800m
900 MiB
- everest-csi-controller
- Configure os parâmetros do complemento.
Tabela 3 Parâmetros do Everest Parâmetro
Descrição
csi_attacher_worker_threads
Número de nós de trabalho que podem ser processados simultaneamente pelo Everest para anexar volumes do EVS. O valor padrão é 60.
csi_attacher_detach_worker_threads
Número de nós de trabalho que podem ser processados simultaneamente pelo Everest para desanexar volumes do EVS. O valor padrão é 60.
volume_attaching_flow_ctrl
Número máximo de volumes do EVS que podem ser anexados pelo complemento Everest em 1 minuto. O valor padrão é 0, indicando que o desempenho de anexar volumes do EVS é determinado pelos recursos de armazenamento subjacentes.
cluster_id
ID do cluster
default_vpc_id
ID da VPC à qual o cluster pertence
disable_auto_mount_secret
Se a AK/SK padrão pode ser usada quando um bucket de objetos ou um sistema de arquivos paralelo é montado. O valor padrão é false.
enable_node_attacher
Se deve habilitar o anexador no agente para processar o VolumeAttachment.
flow_control
Este campo é deixado em branco por padrão. Você não precisa configurar esse parâmetro.
over_subscription
Taxa de comprometimento excessivo do pool de armazenamento local (local_storage). O valor padrão é 80. Se o tamanho do pool de armazenamento local for de 100 GB, ele poderá estar comprometido em excesso para 180 GB.
project_id
ID do projeto ao qual um cluster pertence
No Everest 1.2.26 ou posterior, o desempenho de anexar um grande número de volumes do EVS foi otimizado. Os seguintes parâmetros podem ser configurados:- csi_attacher_worker_threads
- csi_attacher_detach_worker_threads
- volume_attaching_flow_ctrl
Os parâmetros anteriores são associados uns aos outros e são restringidos pelos recursos de armazenamento subjacentes na região onde o cluster está localizado. Para anexar um grande número de volumes (mais de 500 volumes do EVS por minuto), entre em contato com o atendimento ao cliente e configure os parâmetros sob sua orientação para evitar que o complemento Everest seja executado anormalmente devido a configurações de parâmetros incorretas.
- Configure as políticas de agendamento para o complemento.
- As políticas de agendamento não entram em vigor em instâncias complementares do tipo DaemonSet.
- Ao configurar a implementação de várias AZs ou a afinidade de nó, verifique se há nós que atendem à política de agendamento e se os recursos são suficientes no cluster. Caso contrário, o complemento não pode ser executado.
Tabela 4 Configurações para programação de complementos Parâmetro
Descrição
Multi-AZ Deployment
- Preferred: os pods de Implementação do complemento serão agendados preferencialmente para nós em diferentes AZs. Se todos os nós no cluster forem implementados na mesma AZ, os pods serão agendados para essa AZ.
- Forcible: os pods de Implementação do complemento serão forçosamente agendados para nós em diferentes AZs. Se houver menos AZs do que pods, os pods extras não funcionarão.
Node Affinity
- Incompatibility: a afinidade de nó está desabilitada para o complemento.
- Node Affinity: especifique os nós em que o complemento é implementado. Se você não especificar os nós, o complemento será agendado aleatoriamente com base na política de agendamento de cluster padrão.
- Specified Node Pool Scheduling: especifique o pool de nós em que o complemento é implementado. Se você não especificar o pool de nós, o complemento será agendado aleatoriamente com base na política de agendamento de cluster padrão.
- Custom Policies: insira os rótulos dos nós em que o complemento será implementado para políticas de agendamento mais flexíveis. Se você não especificar rótulos de nó, o complemento será agendado aleatoriamente com base na política de agendamento de cluster padrão.
Se várias políticas de afinidade personalizadas estiverem configuradas, certifique-se de que existem nós que atendam a todas as políticas de afinidade no cluster. Caso contrário, o complemento não pode ser executado.
Taints and Tolerations
O uso de manchas e tolerâncias permite (não forçosamente) que Implementação do complemento seja agendada para um nó com as manchas correspondentes e controla as políticas de despejo de Implementação depois que o nó onde a Implementação está localizada é contaminado.
O complemento adiciona a política de tolerância padrão para as manchas node.kubernetes.io/not-ready e node.kubernetes.io/unreachable, respectivamente. A janela de tempo de tolerância é 60s.
Para mais detalhes, consulte Manchas e tolerâncias.
- Clique em Install.
Componentes
Componente |
Descrição |
Tipo de recurso |
---|---|---|
everest-csi-controller |
Usado para criar, excluir, capturar instantâneos, expandir, anexar e desanexar volumes de armazenamento. Se a versão do cluster for 1.19 ou posterior e a versão do complemento for 1.2.x, o pod do componente everest-csi-controller também terá um contêiner everest-localvolume-manager por padrão. Esse contêiner gerencia a criação de pools de armazenamento de LVM e PVs locais no nó. |
Implementação |
everest-csi-driver |
Usado para montar e desmontar PVs e redimensionar sistemas de arquivos. Se a versão do complemento for 1.2.x e a região onde o cluster está localizado suportar node-attacher, o pod do componente everest-csi-driver também contém um contêiner everest-node-attacher. Este contêiner é responsável pela anexação do EVS distribuído. Este item de configuração está disponível em algumas regiões. |
DaemonSet |