Personalize a instalação do operador Trident
O operador Trident permite personalizar a instalação do Trident usando os atributos em TridentOrchestrator especificação. Se você deseja personalizar a instalação além do que… TridentOrchestrator Se os argumentos permitirem, considere usar tridentctl para gerar manifestos YAML personalizados que podem ser modificados conforme necessário.
Entendendo os pods do controlador e os pods do nó
O Trident é executado como um único pod de controlador, além de um pod de nó em cada nó de trabalho do cluster. O pod do nó deve estar em execução em qualquer host onde você queira potencialmente montar um volume Trident .
Kubernetes"seletores de nós" e"tolerâncias e contaminações" São utilizadas para restringir a execução de um pod a um nó específico ou preferencial. Usando o ControllerPlugin e NodePlugin Você pode especificar restrições e substituições.
-
O plugin do controlador lida com o provisionamento e gerenciamento de volumes, como snapshots e redimensionamento.
-
O plugin do nó gerencia a conexão do armazenamento ao nó.
Opções de configuração
|
|
spec.namespace`é especificado em `TridentOrchestrator para indicar o espaço de nomes onde o Trident está instalado. Este parâmetro *não pode ser atualizado após a instalação do Trident *. Tentar fazer isso causa o TridentOrchestrator status para alterar para Failed . O Trident não foi projetado para ser migrado entre namespaces.
|
Esta tabela detalha TridentOrchestrator atributos.
| Parâmetro | Descrição | Padrão | ||
|---|---|---|---|---|
|
Namespace para instalar o Trident em |
|
||
|
Ative a depuração para o Trident. |
|
||
|
|
|
||
|
Configurando para |
|
||
|
Definir para |
|
||
|
Defina a identidade da carga de trabalho ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") ao usar a identidade da nuvem em um cluster AKS. Defina a função do AWS IAM ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") ao usar a identidade na nuvem em um cluster EKS. Defina a identidade na nuvem ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") ao usar a identidade na nuvem em um cluster GKE. |
|
||
|
Instalar Trident via IPv6 |
falso |
||
|
Tempo limite para operações do Kubernetes.
|
|
||
|
Não envie pacotes de suporte automático para a NetApp automaticamente. |
|
||
|
A imagem do contêiner para Telemetria de Suporte Automático |
|
||
|
O endereço/porta de um proxy para envio de telemetria do Autosupport. |
|
||
|
Uma flag usada para desinstalar o Trident. |
|
||
|
Formato de registro do Trident a ser usado [texto,json] |
|
||
|
Imagem Trident para instalar |
|
||
|
Caminho para o registro interno, no formato |
|
||
|
Caminho para o diretório kubelet no host |
|
||
|
Lista de recursos a serem excluídos para remover completamente o Trident. |
|||
|
Segredos para extrair imagens de um registro interno |
|||
|
Define a política de extração de imagens para o operador Trident . Os valores válidos são: |
|
||
|
Seletores de nós adicionais para pods. Segue o mesmo formato que |
Sem valor padrão; opcional |
||
|
Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que |
Sem valor padrão; opcional |
||
|
Seletores de nós adicionais para pods. Segue o mesmo formato que |
Sem valor padrão; opcional |
||
|
Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que |
Sem valor padrão; opcional |
||
|
Permite que o Trident prepare os nós do cluster Kubernetes para gerenciar volumes usando o protocolo de armazenamento de dados especificado. Atualmente,
|
|||
|
O limite de consultas por segundo (QPS) usado pelo controlador durante a comunicação com o servidor da API do Kubernetes. O valor de Burst é definido automaticamente com base no valor QPS. |
|
||
|
Permite operações simultâneas do controlador Trident para melhor rendimento.
|
falso |
|
|
Para obter mais informações sobre como formatar parâmetros de pod, consulte"Atribuindo Pods a Nós" . |
Detalhes sobre o desprendimento forçado
O desprendimento forçado está disponível para ontap-san , ontap-san-economy , ontap-nas , e ontap-nas-economy apenas. Antes de habilitar a desconexão forçada, o desligamento não normal do nó (NGNS) deve ser habilitado no cluster do Kubernetes. O NGNS é habilitado por padrão para o Kubernetes 1.28 e superior. Para obter mais informações, consulte"Kubernetes: Encerramento abrupto de nós" .
|
|
Ao usar o ontap-nas ou ontap-nas-economy Motorista, você precisa configurar o autoExportPolicy parâmetro na configuração do backend para true para que o Trident possa restringir o acesso do nó Kubernetes com a restrição aplicada usando políticas de exportação gerenciadas.
|
|
|
Como o Trident depende do Kubernetes NGNS, não o remova. out-of-service contaminações de um nó não saudável até que todas as cargas de trabalho intoleráveis sejam reprogramadas. Aplicar ou remover a contaminação de forma imprudente pode comprometer a proteção de dados no sistema.
|
Quando o administrador do cluster Kubernetes aplicou o node.kubernetes.io/out-of-service=nodeshutdown:NoExecute contaminar o nó e enableForceDetach está definido para true O Trident determinará o estado do nó e:
-
Interrompa o acesso de E/S de backend para volumes montados nesse nó.
-
Marque o objeto do nó Trident como
dirty(Não recomendado para novas publicações).O controlador Trident rejeitará novas solicitações de publicação de volume até que o nó seja requalificado (após ter sido marcado como dirty) pelo pod do nó Trident . Quaisquer cargas de trabalho agendadas com um PVC montado (mesmo após o nó do cluster estar íntegro e pronto) não serão aceitas até que o Trident possa verificar o nó.clean(Seguro para novas publicações).
Quando a integridade do nó for restaurada e a contaminação for removida, o Trident fará o seguinte:
-
Identificar e limpar caminhos publicados obsoletos no nó.
-
Se o nó estiver em um
cleanableestado (a marcação de fora de serviço foi removida e o nó está emReadyestado) e todos os caminhos obsoletos e publicados estão limpos, o Trident readmitirá o nó comocleane permitir que novos volumes publicados sejam enviados ao nó.
Configurações de exemplo
Você pode usar os atributos emOpções de configuração ao definir TridentOrchestrator Para personalizar sua instalação.
Configuração personalizada básica
Este exemplo foi criado após a execução do cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml O comando representa uma instalação personalizada básica:
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
Seletores de nós
Este exemplo instala o Trident com seletores de nós.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
nós de trabalho do Windows
Este exemplo foi criado após a execução do cat deploy/crds/tridentorchestrator_cr.yaml O comando instala o Trident em um nó de trabalho do Windows.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
Identidades gerenciadas em um cluster AKS
Este exemplo instala o Trident para habilitar identidades gerenciadas em um cluster AKS.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
Identidade na nuvem em um cluster AKS
Este exemplo instala o Trident para uso com uma identidade na nuvem em um cluster AKS.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
Identidade na nuvem em um cluster EKS
Este exemplo instala o Trident para uso com uma identidade na nuvem em um cluster AKS.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "AWS"
cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'"
Identidade na nuvem para GKE
Este exemplo instala o Trident para uso com uma identidade na nuvem em um cluster GKE.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcp-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: '012345678901'
network: gcnv-network
location: us-west2
serviceLevel: Premium
storagePool: pool-premium1