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 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
|
|
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. 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. |
|
||||
|
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,
|
|||||
|
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 |
||||
|
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" .
|
|
||||
|
Habilite o HTTPS para o endpoint de métricas do Prometheus. |
falso |
||||
|
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 |
|
|
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: 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: 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