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 netapp-aruldeepa juliantap netapp-mwallis

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 e 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 "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 , ontap-nas , e ontap-nas-economy apenas. Funciona com o recurso Non-Graceful Node Shutdown (NGNS) do Kubernetes para permitir que os administradores do cluster migrem cargas de trabalho com volumes montados para novos nós com segurança, caso um nó apresente problemas. Para obter informações, consulte"Automatizando o failover de aplicações com estado usando o Trident." .

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. Defina como "GCP" quando estiver usando uma identidade de nuvem em um cluster GKE.

""

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. Defina como identidade de nuvem ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") ao usar identidade de nuvem em um cluster GKE.

""

IPv6

Instale o Trident em IPv6

falso

k8sTimeout

Tempo limite para operações do Kubernetes.

Observação O k8sTimeout O parâmetro é aplicável somente para instalação do Trident .

180sec

silenceAutosupport

Não envie pacotes AutoSupport para o NetApp automaticamente

false

autosupportImage

A imagem do recipiente para a telemetria AutoSupport

"netapp/trident-autosupport10"

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:25.10"

imageRegistry

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

"registry.k8s.io"

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 A partir do OpenShift 4.19, a versão mínima do Trident suportada para esse recurso é 25.06.1.

k8sAPIQPS

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.

100; opcional

enableConcurrency

Permite operações simultâneas do controlador Trident para melhor rendimento.

Observação Prévia Técnica: Este recurso é experimental e atualmente suporta fluxos de trabalho paralelos limitados com os drivers ONTAP-NAS (somente NFS) e ONTAP-SAN (NVMe para ONTAP 9 unificado), além da prévia técnica existente para o driver ONTAP-SAN (protocolos iSCSI e FCP no ONTAP 9 unificado).

falso

resources

Define os limites de recursos e as solicitações do Kubernetes para o controlador Trident e os pods dos nós. Você pode configurar CPU e memória para cada contêiner e sidecar para gerenciar a alocação de recursos no Kubernetes.

Para obter mais informações sobre como configurar solicitações e limites de recursos, consulte"Gerenciamento de recursos para pods e contêineres" .

Aviso
  • NÃO altere os nomes de nenhum contêiner ou campo.

  • NÃO altere o recuo - o recuo do YAML é fundamental para a análise correta.

Observação
  • Por padrão, não há limites aplicados; apenas as solicitações possuem valores padrão e são aplicadas automaticamente caso não sejam especificadas.

  • Os nomes dos contêineres são listados conforme aparecem nas especificações do pod.

  • Os sidecars estão listados abaixo de cada contêiner principal.

  • Verifique o TORC. status.CurrentInstallationParams Campo para visualizar os valores atualmente aplicados.

resources:
  controller:
    trident-main:
      requests:
        cpu: 10m
        memory: 80Mi
      limits:
          cpu:
          memory:
    csi-provisioner:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-attacher:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-resizer:
      requests:
        cpu: 3m
        memory: 20Mi
      limits:
        cpu:
        memory:
    csi-snapshotter:
      requests:
        cpu: 2m
        memory: 20Mi
      limits:
        cpu:
        memory:
    trident-autosupport:
      requests:
        cpu: 1m
        memory: 30Mi
      limits:
        cpu:
        memory:
  node:
    linux:
      trident-main:
        requests:
          cpu: 10m
          memory: 60Mi
        limits:
          cpu:
          memory:
      node-driver-registrar:
        requests:
          cpu: 1m
          memory: 10Mi
        limits:
          cpu:
          memory:
    windows:
      trident-main:
        requests:
          cpu: 6m
          memory: 40Mi
        limits:
          cpu:
          memory:
      node-driver-registrar:
        requests:
          cpu: 6m
          memory: 40Mi
        limits:
          cpu:
          memory:
      liveness-probe:
        requests:
          cpu: 2m
          memory: 40Mi
        limits:
          cpu:
          memory:

httpsMetrics

Habilite o HTTPS para o endpoint de métricas do Prometheus.

falso

hostNetwork

Habilita a conexão de rede do host para o controlador Trident . Isso é útil quando você deseja separar o tráfego de front-end do tráfego de back-end em uma rede com várias residências.

falso

Observação Para obter mais informações sobre a formatação dos parâmetros do pod, "Atribuindo pods a nós"consulte .

Exemplos de configurações

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 de 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
Configuração de solicitações e limites de recursos do Kubernetes para o controlador Trident e pods de nós Linux do Trident .

Este exemplo configura as solicitações e limites de recursos do Kubernetes para os pods do controlador Trident e do nó Linux do Trident .

Aviso Aviso: Os valores de solicitação e limite fornecidos neste exemplo são apenas para fins de demonstração. Ajuste esses valores com base no seu ambiente e nas necessidades da sua carga de trabalho.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
  resources:
    controller:
      trident-main:
        requests:
          cpu: 10m
          memory: 80Mi
        limits:
          cpu: 200m
          memory: 256Mi
      # sidecars
      csi-provisioner:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-attacher:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-resizer:
        requests:
          cpu: 3m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-snapshotter:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      trident-autosupport:
        requests:
          cpu: 1m
          memory: 30Mi
        limits:
          cpu: 50m
          memory: 128Mi
    node:
      linux:
        trident-main:
          requests:
            cpu: 10m
            memory: 60Mi
          limits:
            cpu: 200m
            memory: 256Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 1m
            memory: 10Mi
          limits:
            cpu: 50m
            memory: 32Mi
Configuração de solicitações e limites de recursos do Kubernetes para o controlador Trident e pods de nós Trident Windows e Linux.

Este exemplo configura solicitações e limites de recursos do Kubernetes para o controlador Trident e para os pods dos nós Trident Windows e Linux.

Aviso Aviso: Os valores de solicitação e limite fornecidos neste exemplo são apenas para fins de demonstração. Ajuste esses valores com base no seu ambiente e nas necessidades da sua carga de trabalho.
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
  windows: true
  resources:
    controller:
      trident-main:
        requests:
          cpu: 10m
          memory: 80Mi
        limits:
          cpu: 200m
          memory: 256Mi
        # sidecars
      csi-provisioner:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-attacher:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-resizer:
        requests:
          cpu: 3m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      csi-snapshotter:
        requests:
          cpu: 2m
          memory: 20Mi
        limits:
          cpu: 100m
          memory: 64Mi
      trident-autosupport:
        requests:
          cpu: 1m
          memory: 30Mi
        limits:
          cpu: 50m
          memory: 128Mi
    node:
      linux:
        trident-main:
          requests:
            cpu: 10m
            memory: 60Mi
          limits:
            cpu: 200m
            memory: 256Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 1m
            memory: 10Mi
          limits:
            cpu: 50m
            memory: 32Mi
      windows:
        trident-main:
          requests:
            cpu: 6m
            memory: 40Mi
          limits:
            cpu: 200m
            memory: 128Mi
        # sidecars
        node-driver-registrar:
          requests:
            cpu: 6m
            memory: 40Mi
          limits:
            cpu: 100m
            memory: 128Mi
        liveness-probe:
          requests:
            cpu: 2m
            memory: 40Mi
          limits:
            cpu: 50m
            memory: 64Mi