Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Personalizar a instalação do operador Trident

Colaboradores

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

Aviso 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

Namespace para instalar o Trident em

"default"

debug

Ativar depuração para Trident

false

enableForceDetach

ontap-san, ontap-san-economy, , e ontap-nas-economy apenas. Funciona com o Kubernetes Non-Graceful Node Shutdown (NGNS) para conceder aos administradores de cluster a capacidade de migrar com segurança cargas de trabalho com volumes montados para novos nós caso um nó não seja saudável.

false

windows

A configuração para true permite a instalação em nós de trabalho do Windows.

false

cloudProvider

Defina como "Azure" quando utilizar identidades geridas ou uma identidade de nuvem num cluster AKS. Defina como "AWS" ao usar uma identidade de nuvem em um cluster EKS.

""

cloudIdentity

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.

""

IPv6

Instale o Trident em IPv6

falso

k8sTimeout

Tempo limite para operações do Kubernetes

30sec

silenceAutosupport

Não envie pacotes AutoSupport para o NetApp automaticamente

false

autosupportImage

A imagem do recipiente para a telemetria AutoSupport

"netapp/trident-autosupport:24.10"

autosupportProxy

O endereço/porta de um proxy para o envio de telemetria AutoSupport

"http://proxy.example.com:8888"

uninstall

Um sinalizador usado para desinstalar o Trident

false

logFormat

Formato de Registro Trident a ser usado [text,json]

"text"

tridentImage

Imagem Trident a instalar

"netapp/trident:24.10"

imageRegistry

Caminho para o Registro interno, do formato
<registry FQDN>[:port][/subpath]

"k8s.gcr.io" (Kubernetes mais de 1,19) ou "quay.io/k8scsi"

kubeletDir

Caminho para o diretório kubelet no host

"/var/lib/kubelet"

wipeout

Uma lista de recursos a serem excluídos para realizar uma remoção completa do Trident

imagePullSecrets

Segredos para extrair imagens de um Registro interno

imagePullPolicy

Define a política de recebimento de imagens para o operador Trident. Os valores válidos são:
Always Para sempre puxar a imagem.
IfNotPresent para puxar a imagem apenas se ela ainda não existir no nó.
Never para nunca puxar a imagem.

IfNotPresent

controllerPluginNodeSelector

Seletores de nós adicionais para pods. Segue o mesmo formato que pod.spec.nodeSelector.

Sem padrão; opcional

controllerPluginTolerations

Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que pod.spec.Tolerations.

Sem padrão; opcional

nodePluginNodeSelector

Seletores de nós adicionais para pods. Segue o mesmo formato que pod.spec.nodeSelector.

Sem padrão; opcional

nodePluginTolerations

Substitui as tolerâncias do Kubernetes para pods. Segue o mesmo formato que pod.spec.Tolerations.

Sem padrão; opcional

nodePrep

Permite que o Trident prepare os nós do cluster do Kubernetes para gerenciar volumes usando o protocolo de storage de dados especificado. Atualmente, iscsi é o único valor suportado.

Observação 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 .

Observação 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.
Aviso 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:

  1. Cessar o acesso de e/S de back-end para volumes montados nesse nó.

  2. Marque o objeto do nó Trident como dirty (não é seguro para novas publicações).

    Observação 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á:

  1. Identifique e limpe caminhos publicados obsoletos no nó.

  2. 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ó como clean 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