Personalizar instalação do Trident
O operador Trident permite que você personalize a instalação do Trident usando os atributos na `TridentOrchestrator`spec. Se você quiser personalizar a instalação além do que os `TridentOrchestrator`argumentos permitem, considere usar `tridentctl`para gerar manifestos YAML personalizados para modificar conforme necessário.
Entendendo os pods do controlador e os pods do nó
Trident é executado como um único pod de controlador e um pod de nó em cada nó de trabalho do cluster. O pod de nó deve estar em execução em qualquer host onde você deseja montar um volume Trident.
Kubernetes "seletores de nós" e "tolerations e taints" são usados para restringir um pod a ser executado em 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 storage ao nó.
Opções de configuração
|
|
spec.namespace é especificado em TridentOrchestrator para indicar o namespace onde Trident está instalado. Este parâmetro não pode ser atualizado após Trident ser instalado. Tentar fazer isso faz com que o status TridentOrchestrator mude para Failed. Trident não foi projetado para ser migrado entre namespaces.
|
Esta tabela detalha TridentOrchestrator atributos.
| Parâmetro | Descrição | Padrão | ||||
|---|---|---|---|---|---|---|
|
Namespace para instalar Trident |
|
||||
|
Ative a depuração para Trident |
|
||||
|
|
|
||||
|
Definir como |
|
||||
|
Defina como |
|
||||
|
Defina como workload identity ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") ao usar cloud identity em um cluster AKS. Defina como AWS IAM role ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") ao usar cloud identity em um cluster EKS. Defina como cloud identity ("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'") ao usar cloud identity em um cluster GKE. |
|
||||
|
Instale o Trident via IPv6 |
falso |
||||
|
Tempo limite para operações do Kubernetes.
|
|
||||
|
Não envie pacotes de autosupport para a NetApp automaticamente |
|
||||
|
A imagem do contêiner para Autosupport Telemetry |
|
||||
|
O endereço/porta de um proxy para envio de telemetria do Autosupport |
|
||||
|
Uma flag usada para desinstalar 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 |
|
||||
|
Uma lista de recursos a serem excluídos para realizar uma remoção completa do Trident |
|||||
|
Segredos para puxar imagens de um registro interno |
|||||
|
Define a política de pull de imagem 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 Trident prepare os nós do cluster Kubernetes para gerenciar volumes usando o protocolo de storage especificado. Atualmente,
|
|||||
|
O limite de consultas por segundo (QPS) usado pelo controlador ao se comunicar com o servidor da API do Kubernetes. O valor de Burst é definido automaticamente com base no valor de QPS. |
|
||||
|
Permite operações simultâneas do controlador Trident para melhorar o desempenho.
|
falso |
||||
|
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 mais informações sobre como configurar solicitações e limites de recursos, consulte "Gerenciamento de recursos para pods e contêineres".
|
|
||||
|
Habilite o HTTPS para o endpoint de métricas do Prometheus. |
falso |
||||
|
Habilita a rede do host para o controlador Trident. Isso é útil quando você deseja separar o tráfego de frontend e backend em uma rede com múltiplas interfaces. |
falso |
|
|
Para mais informações sobre formatação de parâmetros de pod, consulte "Atribuindo Pods a Nodes". |
Configurações de exemplo
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 exemplo, criado após a execução do cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml 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 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, criado após a execução do cat deploy/crds/tridentorchestrator_cr.yaml comando, instala 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 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 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 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 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: Os valores de solicitação e limite fornecidos neste exemplo são apenas para fins de demonstração. Ajuste esses valores de acordo com seu ambiente e requisitos de 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: Os valores de solicitação e limite fornecidos neste exemplo são apenas para fins de demonstração. Ajuste esses valores de acordo com seu ambiente e requisitos de 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