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.

Configure uma classe de armazenamento

Colaboradores netapp-aruldeepa kcantrel

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

cadeia de carateres

FSx para NetApp ONTAP ID do sistema de arquivos

storageDriverName

Sim

cadeia de carateres

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

credentialsName

Sim

cadeia de carateres

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ê deve ver uma classe de armazenamento Basic-csi no Kubernetes e no Trident, e o Trident deve ter descoberto os pools no back-end.

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 o Trident com o 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 informações sobre o condutor, "Controladores NAS"consulte e "Controladores SAN".

Crie 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 back-end 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
  • Validar a configuração de back-end do 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 necessário mountOptions à 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 gerenciado pelo Trident devem ser utilizados para provisionar volumes de um determinado tipo.

Atributo Tipo Valores Oferta Pedido Suportado por

1

cadeia de carateres

hdd, híbrido, ssd

Pool contém Mídia desse tipo; híbrido significa ambos

Tipo de material especificado

ONTAP-nas, ONTAP-nas-economy, ONTAP-nas-FlexGroup, ONTAP-san, SolidFire-san

ProvisioningType

cadeia de carateres

fino, grosso

O pool é compatível com esse método de provisionamento

Método de provisionamento especificado

thick: all ONTAP; thin: all ONTAP & SolidFire-san

BackendType

cadeia de carateres

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

Back-end especificado

Todos os drivers

instantâneos

bool

verdadeiro, falso

O pool é compatível com volumes com snapshots

Volume com instantâneos ativados

ontap-nas, ontap-san, solidfire-san

clones

bool

verdadeiro, falso

O pool é compatível com volumes de clonagem

Volume com clones ativados

ontap-nas, ontap-san, solidfire-san

criptografia

bool

verdadeiro, falso

O pool é compatível com volumes criptografados

Volume com encriptação ativada

ONTAP-nas, ONTAP-nas-economy, ONTAP-nas-flexgroups, ONTAP-san

IOPS

int

número inteiro positivo

O pool é capaz de garantir IOPS nessa faixa

Volume garantido estas operações de entrada/saída por segundo

SolidFire-san

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

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

Crie a classe de armazenamento

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

Passos
  1. Esse é um objeto do Kubernetes, então use kubectl para criá-lo no Kubernetes.

    kubectl create -f storage-class-ontapnas.yaml
  2. Agora você deve ver uma classe de armazenamento Basic-csi no Kubernetes e no Trident, e o Trident deve ter descoberto os pools no back-end.

    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 de backend e exemplos

Consulte a tabela a seguir para obter as opções de configuração de back-end:

Parâmetro Descrição Exemplo

version

Sempre 1

storageDriverName

Nome do controlador de armazenamento

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

backendName

Nome personalizado ou back-end de storage

Nome do driver e 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 definido para usar endereços IPv6 se o Trident tiver sido instalado usando 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 aws campo, não precisará fornecer o managementLIF porque o Trident recupera as informações do SVM managementLIF da AWS. Portanto, você deve fornecer credenciais para um usuário sob o SVM (por exemplo: Vsadmin) e o usuário deve ter a vsadmin função.

"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 no 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 usando o parâmetro 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 da política de exportação [Boolean]. Usando as autoExportPolicy opções e autoExportCIDRs, o Trident pode gerenciar políticas de exportação automaticamente.

false

autoExportCIDRs

Lista de CIDR para filtrar IPs de nós do Kubernetes quando autoExportPolicy está ativado. Usando as autoExportPolicy opções e autoExportCIDRs, o 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 em 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 CA confiável. Opcional. Usado para autenticação baseada em certificado.

""

username

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

password

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

svm

Máquina virtual de armazenamento para usar

Derivado se um SVM managementLIF for especificado.

storagePrefix

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

trident

limitAggregateUsage

Não especifique para o Amazon FSX for NetApp ONTAP. O fornecido fsxadmin e vsadmin não contém as permissões necessárias para recuperar o uso agregado e limitá-lo usando o Trident.

Não utilizar.

limitVolumeSize

Falha no provisionamento se o tamanho do volume solicitado estiver acima desse 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

O máximo de LUNs por FlexVol volume tem de estar no intervalo [50, 200]. Apenas SAN.

"100"

debugTraceFlags

Debug flags para usar ao solucionar problemas. Por exemplo, não use debugTraceFlags a menos que você esteja solucionando problemas e exija um despejo de log detalhado.

nulo

nfsMountOptions

Lista separada por vírgulas de opções de montagem NFS. As opções de montagem para volumes persistentes do Kubernetes normalmente são especificadas em classes de armazenamento, mas se nenhuma opção de montagem for especificada em uma classe de armazenamento, o Trident voltará a usar as opções de montagem especificadas no arquivo de configuração do back-end de armazenamento. Se nenhuma opção de montagem for especificada na classe de armazenamento ou no arquivo de configuração, 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 definir como smb para volumes SMB. A configuração como null padrão para volumes NFS.

nfs

qtreesPerFlexvol

Qtrees máximos por FlexVol volume, têm de estar no intervalo [50, 300]

"200"

smbShare

Você pode especificar uma das seguintes opções: O nome de um compartilhamento SMB criado usando o Console de Gerenciamento da Microsoft ou a CLI do ONTAP ou um nome para permitir que o Trident crie o compartilhamento SMB. Esse parâmetro é necessário para backends do Amazon FSX for ONTAP.

smb-share

useREST

Parâmetro booleano para usar APIs REST do ONTAP. Quando definido como true, o Trident usará APIs REST do ONTAP para se comunicar com o back-end. Esse recurso requer o ONTAP 9.11,1 e posterior. Além disso, a função de login do ONTAP usada deve ter acesso ao ontap aplicativo. Isso é satisfeito com as funções e cluster-admin predefinidas vsadmin.

false

aws

Você pode especificar o seguinte no arquivo de configuração do AWS FSX for ONTAP: - fsxFilesystemID: Especifique o ID do sistema de arquivos AWS FSX. apiRegion- : Nome da região da API AWS. apikey- : Chave da API da AWS. secretKey- : Chave secreta da AWS.



""
""
""

credentials

Especifique as credenciais do FSX SVM para armazenar no AWS Secrets Manager. name- : Nome do recurso Amazon (ARN) do segredo, que contém as credenciais do SVM. type- : Defina para awsarn. "Crie um segredo do AWS Secrets Manager"Consulte para obter mais informações.

Opções de configuração de back-end para volumes de provisionamento

Você pode controlar o provisionamento padrão usando essas opções na defaults seção da configuração. Para obter um exemplo, consulte 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; "nenhum" (fino) ou "volume" (grosso)

none

snapshotPolicy

Política de instantâneos a utilizar

none

qosPolicy

Grupo de políticas de QoS a atribuir aos volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento ou backend. O uso de grupos de política de QoS com Trident requer o 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 individualmente a cada componente. Um grupo de políticas de QoS compartilhado impõe o limite máximo da taxa de transferência total de todos os workloads.

""

adaptiveQosPolicy

Grupo de políticas de QoS adaptável a atribuir para volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento ou backend. Não suportado pela ONTAP-nas-Economy.

""

snapshotReserve

Percentagem de volume reservado para instantâneos "0"

Se snapshotPolicy for none, else ""

splitOnClone

Divida um clone de seu pai na criação

false

encryption

Ative a criptografia de volume do NetApp (NVE) no novo volume; o padrão é false. O NVE deve ser licenciado e habilitado no cluster para usar essa opção. Se NAE estiver ativado no back-end, qualquer volume provisionado no Trident será NAE habilitado. Para obter mais informações, consulte: "Como o Trident funciona com NVE e NAE".

false

luksEncryption

Ativar encriptação LUKS. "Usar a configuração de chave unificada do Linux (LUKS)"Consulte a . Apenas SAN.

""

tieringPolicy

Política de disposição em camadas para usar none

unixPermissions

Modo para novos volumes. Deixe vazio para volumes SMB.

""

securityStyle

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

O padrão NFS é unix. O padrão SMB é ntfs.