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 |
string |
FSx para NetApp ONTAP ID do sistema de arquivos |
|
Sim |
string |
Driver de storage Trident (por exemplo, |
|
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.
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ê 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 |
|---|---|
|
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 Trident com 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 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 tridenttridentbackendconfig.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 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 `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.
-
Este é um objeto do Kubernetes, portanto, use
kubectlpara criá-lo no Kubernetes.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
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 |
|---|---|---|
|
Sempre 1 |
|
|
Nome do driver de armazenamento |
|
|
Nome personalizado ou o storage backend |
Nome do driver + "_" + 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 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 |
"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 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]. |
|
|
Ativar a criação e atualização automática de políticas de exportação [Booleano]. Usando as opções |
|
|
Lista de CIDRs para filtrar os IPs dos nós do Kubernetes quando |
"["0.0.0.0/0", "::/0"]" |
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar aos 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 da CA confiável. Opcional. Usado para autenticação baseada em certificado. |
"" |
|
Nome de usuário para conectar-se ao cluster ou SVM. Usada para autenticação baseada em credenciais. Por exemplo, vsadmin. |
|
|
Senha para conectar-se ao cluster ou SVM. Usada para autenticação baseada em credenciais. |
|
|
Máquina virtual de storage para usar |
Derivado se um SVM managementLIF for especificado. |
|
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. |
|
|
Não especifique para Amazon FSx para NetApp ONTAP. As configurações fornecidas |
Não use. |
|
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 |
"" (não aplicado por padrão) |
|
LUNs máximas por FlexVol volume, deve estar no intervalo [50, 200]. Somente SAN. |
“100” |
|
Sinalizadores de depuração para usar na resolução de problemas. Exemplo, {"api":false, "method":true} não use |
null |
|
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. |
"" |
|
Configurar a criação de volumes NFS ou SMB. As opções são |
|
|
Número máximo de qtrees por FlexVol volume, deve estar no intervalo [50, 300] |
|
|
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. |
|
|
Parâmetro booleano para usar as ONTAP REST APIs. Quando definido como |
|
|
Você pode especificar o seguinte no arquivo de configuração do AWS FSx para ONTAP: - |
|
|
Especifique as credenciais do FSx SVM a serem armazenadas no AWS Secrets Manager. - |
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 |
|---|---|---|
|
Alocação de espaço para LUNs |
|
|
Modo de reserva de espaço; "none" (fino) ou "volume" (grosso) |
|
|
Política do Snapshot a ser usada |
|
|
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. |
"" |
|
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. |
"" |
|
Porcentagem do volume reservada para snapshots "0" |
Se |
|
Separar um clone de seu progenitor no momento da criação |
|
|
Habilite NetApp Volume Encryption (NVE) no novo volume; o padrão é |
|
|
Ative a criptografia LUKS. Consulte "Use Linux Unified Key Setup (LUKS)". Somente SAN. |
"" |
|
Política de tiering a ser usada |
|
|
Modo para novos volumes. Deixe em branco para volumes SMB. |
"" |
|
Estilo de segurança para novos volumes. NFS suporta |
NFS default é |