Personalizar a instalação do operador Trident
O operador Trident permite personalizar a instalação do Trident usando os atributos na TridentOrchestrator
especificação. Se você quiser personalizar a instalação além do que TridentOrchestrator
os argumentos permitem, considere usar tridentctl
para gerar manifestos YAML personalizados para modificar conforme necessário.
Compreensão dos pods dos nós e dos pods do controlador
O Trident é executado como um único pod de controlador, além de um pod de nó em cada nó de trabalho no cluster. O pod de nó deve estar em execução em qualquer host onde você queira montar um volume Trident potencialmente.
Kubernetes "seletores de nós" e "tolerações e taints"são usados para restringir um pod a ser executado em um nó específico ou preferencial. Usando o ControllerPlugin e `NodePlugin`o , você pode especificar restrições e substituições.
-
O plugin controlador lida com o provisionamento e gerenciamento de volume, como snapshots e redimensionamento.
-
O plug-in do nó manipula a conexão do armazenamento ao nó.
Opções de configuração
spec.namespace É especificado em TridentOrchestrator para indicar o namespace onde o Trident está instalado. Este parâmetro não pode ser atualizado após a instalação do Trident. Tentar fazê-lo faz com que o TridentOrchestrator status mude para Failed . O Trident não se destina a ser migrado entre namespaces.
|
Esta tabela detalha TridentOrchestrator
atributos.
Parâmetro | Descrição | Padrão |
---|---|---|
|
Namespace para instalar o Trident em |
|
|
Ativar depuração para Trident |
|
|
|
|
|
A configuração para |
|
|
Defina como |
|
|
Defina como identidade da carga de trabalho ("azure.Workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxxxxxxx") ao usar identidade da nuvem em um cluster AKS. Definido como função do AWS IAM ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/Trident-role") ao usar a identidade da nuvem em um cluster do EKS. |
|
|
Instale o Trident em IPv6 |
falso |
|
Tempo limite para operações do Kubernetes |
|
|
Não envie pacotes AutoSupport para o NetApp automaticamente |
|
|
A imagem do recipiente para a telemetria AutoSupport |
|
|
O endereço/porta de um proxy para o envio de telemetria AutoSupport |
|
|
Um sinalizador usado para desinstalar o Trident |
|
|
Formato de Registro Trident a ser usado [text,json] |
|
|
Imagem Trident a instalar |
|
|
Caminho para o Registro interno, do formato |
|
|
Caminho para o diretório kubelet no host |
|
|
Uma lista de recursos a serem excluídos para realizar uma remoção completa do Trident |
|
|
Segredos para extrair imagens de um Registro interno |
|
|
Define a política de recebimento 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 padrão; opcional |
|
Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que |
Sem padrão; opcional |
|
Seletores de nós adicionais para pods. Segue o mesmo formato que |
Sem padrão; opcional |
|
Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que |
Sem padrão; opcional |
|
Permite que o Trident prepare os nós do cluster do Kubernetes para gerenciar volumes usando o protocolo de storage de dados especificado. Atualmente, |
Para obter mais informações sobre a formatação dos parâmetros do pod, "Atribuindo pods a nós"consulte . |
Detalhes sobre Force Detach
O Force Detach está disponível apenas para ontap-san
, ontap-san-economy
e onatp-nas-economy
. Antes de ativar a desconexão forçada, o desligamento do nó (NGNS) não gracioso deve ser ativado no cluster do Kubernetes. Para obter mais informações, "Kubernetes: Desligamento do nó não gracioso"consulte .
Ao usar ontap-nas-economy o driver, você precisa definir o autoExportPolicy parâmetro na configuração de back-end true para que o Trident possa restringir o acesso do nó Kubernetes com a alteração aplicada usando políticas de exportação gerenciadas.
|
Como o Trident conta COM NGNS do Kubernetes, não remova out-of-service as taints de um nó que não seja saudável até que todos os workloads não toleráveis sejam reprogramados. Aplicar ou remover a taint de forma imprudente pode comprometer a proteção de dados no back-end.
|
Quando o administrador do cluster do Kubernetes tiver aplicado a node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
taint ao nó e enableForceDetach
estiver definido como true
, o Trident determinará o status do nó e:
-
Cessar o acesso de e/S de back-end para volumes montados nesse nó.
-
Marque o objeto do nó Trident como
dirty
(não é seguro para novas publicações).O controlador Trident rejeitará novas solicitações de volume de publicação até que o nó seja requalificado (depois de ter sido marcado como dirty
) pelo pod de nó do Trident. Quaisquer cargas de trabalho agendadas com um PVC montado (mesmo depois que o nó do cluster estiver pronto e saudável) não serão aceitas até que o Trident possa verificar o nóclean
(seguro para novas publicações).
Quando a integridade do nó é restaurada e a taint é removida, o Trident irá:
-
Identifique e limpe caminhos publicados obsoletos no nó.
-
Se o nó estiver em um
cleanable
estado (a tint fora de serviço foi removida e o nó estáReady
no estado) e todos os caminhos obsoletos e publicados estiverem limpos, o Trident reajustará o nó comoclean
e permitirá novos volumes publicados no nó.
Exemplos de configurações
Você pode usar os atributos em Opções de configuração ao definir TridentOrchestrator
para personalizar sua instalação.
Configuração personalizada básica
Este é um exemplo para uma instalação personalizada básica.
cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml 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ó.
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 instala o Trident em um nó de trabalho do Windows.
cat deploy/crds/tridentorchestrator_cr.yaml 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 de nuvem em um cluster AKS
Este exemplo instala o Trident para uso com uma identidade de 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 de nuvem em um cluster EKS
Este exemplo instala o Trident para uso com uma identidade de 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 de nuvem para GKE
Este exemplo instala o Trident para uso com uma identidade de 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