Skip to main content
Uma versão mais recente deste produto está disponível.
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.

Configure uma classe de armazenamento

O "Objeto Kubernetes StorageClass" identifica um provisionador e instrui o provisionador sobre como provisionar volumes. Esta seção mostra como configurar um objeto StorageClass do Kubernetes que especifica Trident como provisionador.

Criar um StorageClass Objeto

Ao criar um StorageClass para FSx for ONTAP, o Trident criará automaticamente a configuração de backend.

Observação Se você deseja configurar manualmente o backend de armazenamento, consulte a [create-a-kubernetes-storageclass-without-automatic-backend-configuration] seção sobre como criar o backend Trident e a classe de armazenamento separadamente.

Especifique os parâmetros necessários de StorageClass

Os três parâmetros a seguir precisam ser definidos ao criar um StorageClass:

Parâmetro Obrigatório Tipo Descrição

fsxFilesystemID

Sim

string

FSx para NetApp ONTAP ID do sistema de arquivos

storageDriverName

Sim

string

Driver de storage Trident (por exemplo, ontap-nas ou ontap-san)

credentialsName

Sim

string

Nome do segredo do Kubernetes que contém as credenciais do FSx for ONTAP

Especifique parâmetros opcionais

Você pode passar parâmetros opcionais para o backend através do StorageClass. Defina todos os valores opcionais como strings na StorageClass parameters section. Para obter uma lista completa dos parâmetros de backend, consulte: "Configuração do backend FSx para NetApp ONTAP".

Exemplo de arquivos de configuração StorageClass.

O exemplo a seguir mostra um StorageClass que aciona a configuração automática do backend.

YAML
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-fsx-demo
  annotations:
    description: "Demo StorageClass for FSx for NetApp ONTAP"
provisioner: csi.trident.netapp.io
parameters:
  fsxFilesystemID: "fs-0abc123"
  storageDriverName: "ontap-nas"
  credentialsName: trident-fsx-credentials
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
JSON
{
  "apiVersion": "storage.k8s.io/v1",
  "kind": "StorageClass",
  "metadata": {
    "name": "ontap-fsx-demo",
    "annotations": {
      "description": "Demo StorageClass for FSx for NetApp ONTAP"
    }
  },
  "provisioner": "csi.trident.netapp.io",
  "parameters": {
    "fsxFilesystemID": "fs-0abc123",
    "storageDriverName": "ontap-nas",
    "credentialsName": "trident-fsx-credentials"
  },
  "allowVolumeExpansion": true,
  "reclaimPolicy": "Delete",
  "volumeBindingMode": "Immediate"
}

Crie o StorageClass

Após criar o arquivo de configuração, execute o seguinte comando para criar a storage class.

kubectl create -f storage-class-ontapnas.yaml

Agora você deverá ver uma classe de storage basic-csi tanto no Kubernetes quanto no Trident, e o Trident deverá ter descoberto os pools no backend.

kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Após aplicar o StorageClass, Trident cria o backend automaticamente. Você pode então criar PersistentVolumeClaims que referenciam esse StorageClass.

Verifique o status da configuração do backend

Trident registra o resultado da criação do backend em anotações de StorageClass.

Anotação Descrição

trident.netapp.io/configuratorStatus

Resultado da configuração (Success ou Failure)

trident.netapp.io/configuratorMessage

Mensagem detalhada de status ou erro

trident.netapp.io/configuratorName

Nome do recurso interno do configurador

trident.netapp.io/managed

Indica que o StorageClass é gerenciado pela Trident

trident.netapp.io/additionalStoragePools

Pools de storage criados para este backend

Para verificar o status, execute:

kubectl get storageclass ontap-fsx-demo -o yaml

Confirme que trident.netapp.io/configuratorStatus está definido como Success. Se o valor for Failure, revise trident.netapp.io/configuratorMessage para o erro.

Adicionar sistemas de arquivos FSxN adicionais

Se você precisar de capacidade de storage adicional enquanto continua usando o mesmo StorageClass, adicione IDs de sistema de arquivos FSxN adicionais.

Edite o StorageClass e adicione a seguinte anotação:

metadata:
  annotations:
    trident.netapp.io/additionalFsxNFileSystemID: '["fs-xxxxxxxxxxxxxxxxxx"]'

Após aplicar a alteração, Trident atualiza a configuração do backend e atualiza as anotações de StorageClass.

Considerações operacionais e limitações

  • Excluir um StorageClass que possui a configuração automática de backend geralmente exclui o Trident backend associado. Isso pode interromper a conectividade de storage e interromper cargas de trabalho em execução. Valide o impacto antes de excluir um StorageClass gerenciado.

  • A configuração automática de backend é suportada apenas para AWS FSx para NetApp ONTAP.

Crie um Kubernetes StorageClass sem configuração automática de backend

Se você deseja criar o backend do Trident e o StorageClass separadamente, siga estas etapas.

Entenda como funciona a configuração automática do backend

Trident deriva a configuração do backend da definição de StorageClass. Quando você aplica o StorageClass, Trident valida os parâmetros necessários, cria o backend e anota o StorageClass com o status.

Trident cria o VolumeSnapshotClass apenas uma vez. Trident reutiliza o mesmo VolumeSnapshotClass para StorageClasses subsequentes.

Crie o backend do Trident

Para criar um backend Trident, você precisa criar um arquivo de configuração em formato JSON ou YAML. O arquivo deve especificar o tipo de storage desejado (NAS ou SAN), o sistema de arquivos, a SVM de onde obtê-lo e como autenticar com ela. O exemplo a seguir mostra como definir um storage baseado em NAS e usar um segredo da AWS para armazenar as credenciais da SVM que você deseja usar:

YAML
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: ontap-nas
  backendName: tbc-ontap-nas
  svm: svm-name
  aws:
    fsxFilesystemID: fs-xxxxxxxxxx
  credentials:
    name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
    type: awsarn
JSON
{
  "apiVersion": "trident.netapp.io/v1",
  "kind": "TridentBackendConfig",
  "metadata": {
    "name": "backend-tbc-ontap-nas"
    "namespace": "trident"
  },
  "spec": {
    "version": 1,
    "storageDriverName": "ontap-nas",
    "backendName": "tbc-ontap-nas",
    "svm": "svm-name",
    "aws": {
      "fsxFilesystemID": "fs-xxxxxxxxxx"
    },
    "managementLIF": null,
    "credentials": {
      "name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
      "type": "awsarn"
    }
  }
}

Detalhes do driver FSx for ONTAP

Você pode integrar Trident com Amazon FSx for NetApp ONTAP usando os seguintes drivers:

Nome do driver Descrição

ontap-san

Cada PV provisionado é um LUN dentro de seu próprio volume Amazon FSx for NetApp ONTAP. Recomendado para armazenamento em bloco.

ontap-nas

Cada PV provisionado é um volume completo do Amazon FSx for NetApp ONTAP. Recomendado para NFS e SMB.

ontap-san-economy

Cada PV provisionado é um LUN com um número configurável de LUNs por Amazon FSx for NetApp ONTAP volume.

ontap-nas-economy

Cada PV provisionado é uma qtree, com um número configurável de qtrees por volume do Amazon FSx for NetApp ONTAP.

ontap-nas-flexgroup

Cada PV provisionado é um volume completo do Amazon FSx for NetApp ONTAP FlexGroup.

Para obter detalhes sobre o driver, consulte "Drivers NAS" e "Drivers SAN".

Criar o backend

Após criar o arquivo de configuração, execute os seguintes comandos para criar e validar a Trident Backend Configuration (TBC):

  • Crie a configuração de backend do Trident (TBC) a partir do arquivo yaml e execute o seguinte comando:

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • Valide se a configuração do backend Trident (TBC) foi criada com sucesso:

    Kubectl get tbc -n trident
    NAME                         BACKEND NAME         BACKEND UUID                           PHASE   STATUS
    
    backend-tbc-ontap-nas        tbc-ontap-nas        933e0071-66ce-4324-b9ff-f96d916ac5e9   Bound   Success

Para obter mais informações sobre outras opções de configuração, consulte a [Backend-advanced-configuration-and-examples] seção abaixo.

Configurar uma Storage Class sem configuração automática de backend

A seguir, apresentamos exemplos de configurações de Storage Class para uso com Trident e FSx for ONTAP.

Classe de armazenamento para NFS

Você pode usar este exemplo para configurar StorageClass para volumes usando NFS (consulte a seção de Atributos do Trident abaixo para obter a lista completa de atributos):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  provisioningType: "thin"
  snapshots: "true"

Classe de armazenamento para iSCSI

Use este exemplo para configurar StorageClass para volumes usando iSCSI:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  provisioningType: "thin"
  snapshots: "true"

Classe de armazenamento usando NFSv3 e AWS Bottlerocket

Para provisionar volumes NFSv3 no AWS Bottlerocket, adicione o `mountOptions`necessário à classe de armazenamento:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-gold
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  media: "ssd"
  provisioningType: "thin"
  snapshots: "true"
mountOptions:
  - nfsvers=3
  - nolock

Atributos do Trident StorageClass

Esses parâmetros determinam quais pools de storage gerenciados pelo Trident devem ser utilizados para provisionar volumes de um determinado tipo.

Atributo Tipo Valores Oferta Solicitação Apoiado por

mídia1

string

hdd, híbrido, ssd

O pool contém mídias deste tipo; híbrido significa ambos

Tipo de mídia especificado

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san

provisioningType

string

fino, grosso

Pool suporta este método de provisionamento

Método de provisionamento especificado

espesso: all ontap; fino: all ontap & solidfire-san

backendType

string

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, solidfire-san, azure-netapp-files, ontap-san-economy

Pool pertence a este tipo de backend

Backend especificado

Todos os drivers

instantâneos

bool

true, false

O pool suporta volumes com snapshots

Volume com snapshots ativados

ontap-nas, ontap-san, solidfire-san

clones

bool

true, false

Pool suporta clonagem de volumes

Volume com clonagem ativada

ontap-nas, ontap-san, solidfire-san

criptografia

bool

true, false

Pool suporta volumes criptografados

Volume com criptografia ativada

ontap-nas, ontap-nas-economy, ontap-nas-flexgroups, ontap-san

IOPS

inteiro

inteiro positivo

O pool é capaz de garantir IOPS nessa faixa

Volume garantiu esses IOPS

solidfire-san

1: Não suportado pelo ONTAP Select ou FSx for ONTAP systems

Consulte "Objetos Kubernetes e Trident" para obter detalhes sobre como as classes de armazenamento interagem com o PersistentVolumeClaim e os parâmetros para controlar como Trident provisiona volumes.

Crie a classe de armazenamento

Depois de configurar o StorageClass, você pode criá-lo no Kubernetes.

Passos
  1. Este é um objeto do Kubernetes, portanto, use kubectl para criá-lo no Kubernetes.

    kubectl create -f storage-class-ontapnas.yaml
  2. Agora você deverá ver uma classe de storage basic-csi tanto no Kubernetes quanto no Trident, e o Trident deverá ter descoberto os pools no backend.

    kubectl get sc basic-csi
NAME         PROVISIONER             AGE
basic-csi    csi.trident.netapp.io   15h

Provisionar volumes SMB

Você pode provisionar volumes SMB usando o ontap-nas driver. No entanto, para isso, você deve concluir estas etapas: "Prepare-se para provisionar volumes SMB".

Configuração avançada do backend e exemplos

Consulte a tabela a seguir para as opções de configuração do backend:

Parâmetro Descrição Exemplo

version

Sempre 1

storageDriverName

Nome do driver de armazenamento

ontap-nas, ontap-nas-economy, ontap-nas-flexgroup, ontap-san, ontap-san-economy

backendName

Nome personalizado ou o storage backend

Nome do driver + "_" + dataLIF

managementLIF

Endereço IP de um cluster ou LIF de gerenciamento de SVM. Um nome de domínio totalmente qualificado (FQDN) pode ser especificado. Pode ser configurado para usar endereços IPv6 se Trident foi instalado com o sinalizador IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Se você fornecer o fsxFilesystemID sob o campo aws, não é necessário fornecer o managementLIF, pois Trident recupera as informações da SVM managementLIF da AWS. Portanto, você deve fornecer credenciais para um usuário na SVM (por exemplo: vsadmin) e o usuário deve ter a função vsadmin.

"10.0.0.1", "[2001:1234:abcd::fefe]"

dataLIF

Endereço IP do protocolo LIF. ONTAP NAS drivers: NetApp recomenda especificar dataLIF. Caso não seja fornecido, Trident busca os dataLIFs da SVM. Você pode especificar um nome de domínio totalmente qualificado (FQDN) para ser usado nas operações de montagem NFS, permitindo criar um DNS round-robin para balancear a carga entre vários dataLIFs. Pode ser alterado após a configuração inicial. ONTAP SAN drivers: não especifique para iSCSI. Trident usa ONTAP Selective LUN Map para descobrir os LIFs iSCSI necessários para estabelecer uma sessão multipath. Um aviso é gerado se dataLIF for definido explicitamente. Pode ser configurado para usar endereços IPv6 se Trident foi instalado com o sinalizador IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555].

autoExportPolicy

Ativar a criação e atualização automática de políticas de exportação [Booleano]. Usando as opções autoExportPolicy e autoExportCIDRs, Trident pode gerenciar políticas de exportação automaticamente.

false

autoExportCIDRs

Lista de CIDRs para filtrar os IPs dos nós do Kubernetes quando autoExportPolicy estiver habilitado. Usando as opções autoExportPolicy e autoExportCIDRs, Trident pode gerenciar políticas de exportação automaticamente.

"["0.0.0.0/0", "::/0"]"

labels

Conjunto de rótulos arbitrários formatados em JSON para aplicar aos volumes

""

clientCertificate

Valor codificado em Base64 do certificado do cliente. Usado para autenticação baseada em certificado

""

clientPrivateKey

Valor codificado em Base64 da chave privada do cliente. Usado para autenticação baseada em certificado

""

trustedCACertificate

Valor codificado em Base64 do certificado da CA confiável. Opcional. Usado para autenticação baseada em certificado.

""

username

Nome de usuário para conectar-se ao cluster ou SVM. Usada para autenticação baseada em credenciais. Por exemplo, vsadmin.

password

Senha para conectar-se ao cluster ou SVM. Usada para autenticação baseada em credenciais.

svm

Máquina virtual de storage para usar

Derivado se um SVM managementLIF for especificado.

storagePrefix

Prefixo usado ao provisionar novos volumes no SVM. Não pode ser modificado após a criação. Para atualizar este parâmetro, você precisará criar um novo backend.

trident

limitAggregateUsage

Não especifique para Amazon FSx para NetApp ONTAP. As configurações fornecidas fsxadmin e vsadmin não contêm as permissões necessárias para recuperar o uso agregado e limitá-lo usando Trident.

Não use.

limitVolumeSize

O provisionamento falha se o tamanho do volume solicitado for superior a este valor. Também restringe o tamanho máximo dos volumes que gerencia para qtrees e LUNs, e a qtreesPerFlexvol opção permite personalizar o número máximo de qtrees por FlexVol volume

"" (não aplicado por padrão)

lunsPerFlexvol

LUNs máximas por FlexVol volume, deve estar no intervalo [50, 200]. Somente SAN.

“100”

debugTraceFlags

Sinalizadores de depuração para usar na resolução de problemas. Exemplo, {"api":false, "method":true} não use debugTraceFlags a menos que esteja solucionando problemas e precise de um despejo de log detalhado.

null

nfsMountOptions

Lista separada por vírgulas de opções de montagem NFS. As opções de montagem para volumes persistentes do Kubernetes são normalmente especificadas nas classes de armazenamento, mas se nenhuma opção de montagem for especificada em uma classe de armazenamento, Trident usará as opções de montagem especificadas no arquivo de configuração do backend de storage. Se nenhuma opção de montagem for especificada na classe de armazenamento ou no arquivo de configuração, Trident não definirá nenhuma opção de montagem em um volume persistente associado.

""

nasType

Configurar a criação de volumes NFS ou SMB. As opções são nfs, smb ou null. Deve ser definido como smb para volumes SMB. Definir como null define volumes NFS por padrão.

nfs

qtreesPerFlexvol

Número máximo de qtrees por FlexVol volume, deve estar no intervalo [50, 300]

"200"

smbShare

Você pode especificar uma das seguintes opções: o nome de um compartilhamento SMB criado usando o Microsoft Management Console ou ONTAP CLI, ou um nome para permitir que Trident crie o compartilhamento SMB. Este parâmetro é obrigatório para Amazon FSx for ONTAP backends.

smb-share

useREST

Parâmetro booleano para usar as ONTAP REST APIs. Quando definido como true, Trident usará as ONTAP REST APIs para se comunicar com o backend. Este recurso requer ONTAP 9.11.1 e versões posteriores. Além disso, a função de login do ONTAP utilizada deve ter acesso ao aplicativo ontap. Isso é atendido pelas funções predefinidas vsadmin e cluster-admin.

false

aws

Você pode especificar o seguinte no arquivo de configuração do AWS FSx para ONTAP: - fsxFilesystemID: especificar o ID do sistema de arquivos AWS FSx. - apiRegion: nome da região da API da AWS. - apikey: chave da API da AWS. - secretKey: chave secreta da AWS.



""
""
""

credentials

Especifique as credenciais do FSx SVM a serem armazenadas no AWS Secrets Manager. - name: Amazon Resource Name (ARN) do segredo, que contém as credenciais do SVM. - type: Defina como awsarn. Consulte "Crie um segredo do AWS Secrets Manager" para mais informações.

Opções de configuração de backend para provisionamento de volumes

Você pode controlar o provisionamento padrão usando essas opções na seção defaults do arquivo de configuração. Para um exemplo, veja os exemplos de configuração abaixo.

Parâmetro Descrição Padrão

spaceAllocation

Alocação de espaço para LUNs

true

spaceReserve

Modo de reserva de espaço; "none" (fino) ou "volume" (grosso)

none

snapshotPolicy

Política do Snapshot a ser usada

none

qosPolicy

Grupo de políticas de QoS a ser atribuído aos volumes criados. Escolha uma das opções qosPolicy ou adaptiveQosPolicy por pool de storage ou backend. O uso de grupos de políticas de QoS com Trident requer ONTAP 9.8 ou posterior. Você deve usar um grupo de políticas de QoS não compartilhado e garantir que o grupo de políticas seja aplicado a cada componente individualmente. Um grupo de políticas de QoS compartilhado impõe o limite máximo para a taxa de transferência total de todas as cargas de trabalho.

""

adaptiveQosPolicy

Grupo de políticas de QoS adaptável para atribuir aos volumes criados. Escolha uma das opções qosPolicy ou adaptiveQosPolicy por pool de storage ou backend. Não compatível com ontap-nas-economy.

""

snapshotReserve

Porcentagem do volume reservada para snapshots "0"

Se snapshotPolicy for none, else ""

splitOnClone

Separar um clone de seu progenitor no momento da criação

false

encryption

Habilite NetApp Volume Encryption (NVE) no novo volume; o padrão é false. A NVE deve estar licenciada e habilitada no cluster para usar esta opção. Se a NAE estiver habilitada no backend, qualquer volume provisionado no Trident terá a NAE habilitada. Para mais informações, consulte: "Como Trident funciona com NVE e NAE".

false

luksEncryption

Ative a criptografia LUKS. Consulte "Use Linux Unified Key Setup (LUKS)". Somente SAN.

""

tieringPolicy

Política de tiering a ser usada none

unixPermissions

Modo para novos volumes. Deixe em branco para volumes SMB.

""

securityStyle

Estilo de segurança para novos volumes. NFS suporta mixed e unix estilos de segurança. SMB suporta mixed e ntfs estilos de segurança.

NFS default é unix. SMB default é ntfs.