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. 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, |
|
|
Permite a configuração automática de back-end, que cria facilmente classes de back-end e armazenamento com base em parâmetros de entrada. |
Sem padrão; opcional |
|
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
, , onatp-nas
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. O NGNS é habilitado por padrão para o Kubernetes 1,28 e posterior. Para obter mais informações, "Kubernetes: Desligamento do nó não gracioso"consulte .
|
Ao usar o ontap-nas driver ou ontap-nas-economy , 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 exemplo, criado após executar o 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 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, criado após executar o cat deploy/crds/tridentorchestrator_cr.yaml
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 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