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.
|
|
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 |
|---|---|---|---|
|
Sim |
cadeia de carateres |
FSx para NetApp ONTAP ID do sistema de arquivos |
|
Sim |
cadeia de carateres |
Driver de storage Trident (por exemplo, |
|
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.
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
{
"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 |
|---|---|
|
Resultado da configuração ( |
|
Mensagem detalhada de status ou erro |
|
Nome do recurso interno do configurador |
|
Indica que o StorageClass é gerenciado pela Trident |
|
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:
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
{
"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 |
|---|---|
|
Cada PV provisionado é um LUN dentro de seu próprio volume Amazon FSx for NetApp ONTAP. Recomendado para armazenamento em bloco. |
|
Cada PV provisionado é um volume completo do Amazon FSx for NetApp ONTAP. Recomendado para NFS e SMB. |
|
Cada PV provisionado é um LUN com um número configurável de LUNs por Amazon FSx for NetApp ONTAP volume. |
|
Cada PV provisionado é uma qtree, com um número configurável de qtrees por volume do Amazon FSx for NetApp ONTAP. |
|
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 tridenttridentbackendconfig.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 tridentNAME 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.
-
Esse é um objeto do Kubernetes, então use
kubectlpara criá-lo no Kubernetes.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
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 |
|---|---|---|
|
Sempre 1 |
|
|
Nome do controlador de armazenamento |
|
|
Nome personalizado ou back-end de storage |
Nome do driver e dataLIF |
|
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 |
"10,0.0,1", "[2001:1234:abcd::fefe]" |
|
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]. |
|
|
Ativar a criação e atualização automática da política de exportação [Boolean]. Usando as |
|
|
Lista de CIDR para filtrar IPs de nós do Kubernetes quando |
"["0,0.0,0/0", ":::/0"]" |
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar em volumes |
"" |
|
Valor codificado em base64 do certificado do cliente. Usado para autenticação baseada em certificado |
"" |
|
Valor codificado em base64 da chave privada do cliente. Usado para autenticação baseada em certificado |
"" |
|
Valor codificado em base64 do certificado CA confiável. Opcional. Usado para autenticação baseada em certificado. |
"" |
|
Nome de usuário para se conetar ao cluster ou SVM. Usado para autenticação baseada em credenciais. Por exemplo, vsadmin. |
|
|
Senha para se conectar ao cluster ou SVM. Usado para autenticação baseada em credenciais. |
|
|
Máquina virtual de armazenamento para usar |
Derivado se um SVM managementLIF for especificado. |
|
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. |
|
|
Não especifique para o Amazon FSX for NetApp ONTAP. O fornecido |
Não utilizar. |
|
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 |
"" (não aplicado por padrão) |
|
O máximo de LUNs por FlexVol volume tem de estar no intervalo [50, 200]. Apenas SAN. |
"100" |
|
Debug flags para usar ao solucionar problemas. Por exemplo, não use |
nulo |
|
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. |
"" |
|
Configurar a criação de volumes NFS ou SMB. As opções são |
|
|
Qtrees máximos por FlexVol volume, têm de estar no intervalo [50, 300] |
|
|
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. |
|
|
Parâmetro booleano para usar APIs REST do ONTAP. Quando definido como |
|
|
Você pode especificar o seguinte no arquivo de configuração do AWS FSX for ONTAP: - |
|
|
Especifique as credenciais do FSX SVM para armazenar no AWS Secrets Manager. |
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 |
|---|---|---|
|
Alocação de espaço para LUNs |
|
|
Modo de reserva de espaço; "nenhum" (fino) ou "volume" (grosso) |
|
|
Política de instantâneos a utilizar |
|
|
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. |
"" |
|
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. |
"" |
|
Percentagem de volume reservado para instantâneos "0" |
Se |
|
Divida um clone de seu pai na criação |
|
|
Ative a criptografia de volume do NetApp (NVE) no novo volume; o padrão é |
|
|
Ativar encriptação LUKS. "Usar a configuração de chave unificada do Linux (LUKS)"Consulte a . Apenas SAN. |
"" |
|
Política de disposição em camadas para usar |
|
|
Modo para novos volumes. Deixe vazio para volumes SMB. |
"" |
|
Estilo de segurança para novos volumes. Estilos de segurança e |
O padrão NFS é |