Configure um back-end do Cloud Volumes Service para o Google Cloud
Saiba como configurar o NetApp Cloud Volumes Service para o Google Cloud como o back-end para sua instalação do Trident usando as configurações de exemplo fornecidas.
Detalhes do driver do Google Cloud
O Trident fornece ao gcp-cvs
controlador para comunicar com o cluster. Os modos de acesso suportados são: ReadWriteOnce (RWO), ReadOnlyMuy (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
Condutor | Protocolo | VolumeMode | Modos de acesso suportados | Sistemas de arquivos suportados |
---|---|---|---|---|
|
NFS |
Sistema de ficheiros |
RWO, ROX, RWX, RWOP |
|
Saiba mais sobre o suporte do Trident para o Cloud Volumes Service
O Trident pode criar volumes Cloud Volumes Service em um de dois "tipos de serviço":
-
CVS-Performance: O tipo de serviço Trident padrão. Esse tipo de serviço otimizado para performance é mais adequado para workloads de produção que valorizam a performance. O tipo de serviço CVS-Performance é uma opção de hardware que suporta volumes com um tamanho mínimo de 100 GiB. Você pode escolher um dos "três níveis de serviço":
-
standard
-
premium
-
extreme
-
-
CVS: O tipo de serviço CVS fornece alta disponibilidade por zonas com níveis de desempenho limitados a moderados. O tipo de serviço CVS é uma opção de software que usa pools de armazenamento para dar suporte a volumes tão pequenos quanto 1 GiB. O pool de storage pode conter até 50 volumes em que todos os volumes compartilham a capacidade e a performance do pool. Você pode escolher um dos "dois níveis de serviço":
-
standardsw
-
zoneredundantstandardsw
-
Para configurar e usar o "Cloud Volumes Service para Google Cloud" back-end, você precisa do seguinte:
-
Uma conta do Google Cloud configurada com o NetApp Cloud Volumes Service
-
Número do projeto da sua conta do Google Cloud
-
Conta de serviço do Google Cloud com a
netappcloudvolumes.admin
função -
Arquivo de chave de API para sua conta Cloud Volumes Service
Opções de configuração de back-end
Cada back-end provisiona volumes em uma única região do Google Cloud. Para criar volumes em outras regiões, você pode definir backends adicionais.
Parâmetro | Descrição | Padrão |
---|---|---|
|
Sempre 1 |
|
|
Nome do controlador de armazenamento |
"gcp-cvs" |
|
Nome personalizado ou back-end de storage |
Nome do driver e parte da chave da API |
|
Parâmetro opcional usado para especificar o tipo de serviço CVS. |
|
|
Apenas tipo de serviço CVS. Parâmetro opcional usado para especificar pools de armazenamento para criação de volume. |
|
|
Número do projeto da conta Google Cloud. O valor é encontrado na página inicial do portal do Google Cloud. |
|
|
Necessário se estiver usando uma rede VPC compartilhada. Neste cenário, |
|
|
A região do Google Cloud onde o Trident cria o Cloud Volumes Service volumes. Ao criar clusters de Kubernetes entre regiões, os volumes criados em um |
|
|
Chave de API para a conta de serviço do Google Cloud com a |
|
|
URL do proxy se o servidor proxy for necessário para se conetar à conta CVS. O servidor proxy pode ser um proxy HTTP ou um proxy HTTPS. Para um proxy HTTPS, a validação do certificado é ignorada para permitir o uso de certificados autoassinados no servidor proxy. Os servidores proxy com autenticação ativada não são suportados. |
|
|
Controle refinado das opções de montagem NFS. |
"3" |
|
Falha no provisionamento se o tamanho do volume solicitado estiver acima desse valor. |
"" (não aplicado por padrão) |
|
O nível de serviço CVS-Performance ou CVS para novos volumes. Os valores CVS-Performance são |
O padrão CVS-Performance é "padrão". O padrão CVS é "standardsw". |
|
Rede Google Cloud usada para Cloud Volumes Service volumes. |
"predefinição" |
|
Debug flags para usar ao solucionar problemas. Exemplo, |
nulo |
|
Para habilitar o acesso entre regiões, a definição do StorageClass para |
Opções de provisionamento de volume
Você pode controlar o provisionamento de volume padrão defaults
na seção do arquivo de configuração.
Parâmetro | Descrição | Padrão |
---|---|---|
|
As regras de exportação para novos volumes. Deve ser uma lista separada por vírgulas de qualquer combinação de endereços IPv4 ou sub-redes IPv4 na notação CIDR. |
"0,0.0,0/0" |
|
Acesso ao |
"falso" |
|
Porcentagem de volume reservado para snapshots |
"" (aceitar o padrão CVS de 0) |
|
O tamanho dos novos volumes. O mínimo de desempenho do CVS é de 100 GiB. CVS mínimo é de 1 GiB. |
O tipo de serviço CVS-Performance é padrão para "100GiB". O tipo de serviço CVS não define um padrão, mas requer um mínimo de 1 GiB. |
Exemplos de tipos de serviço CVS-Performance
Os exemplos a seguir fornecem exemplos de configurações para o tipo de serviço CVS-Performance.
Exemplo 1: Configuração mínima
Essa é a configuração mínima de back-end usando o tipo de serviço CVS-Performance padrão com o nível de serviço padrão.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com
Exemplo 2: Configuração do nível de serviço
Este exemplo ilustra as opções de configuração de back-end, incluindo nível de serviço e padrões de volume.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com proxyURL: http://proxy-server-hostname/ nfsMountOptions: vers=3,proto=tcp,timeo=600 limitVolumeSize: 10Ti serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '5' exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100 size: 5Ti
Exemplo 3: Configuração de pool virtual
Este exemplo usa storage
para configurar pools virtuais e os StorageClasses
que se referem a eles. Definições de classe de armazenamentoConsulte para ver como as classes de armazenamento foram definidas.
Aqui, padrões específicos são definidos para todos os pools virtuais, que definem o snapshotReserve
em 5% e o exportRule
para 0,0.0,0/0. Os pools virtuais são definidos na storage
seção. Cada pool virtual individual define seu próprio serviceLevel
, e alguns pools substituem os valores padrão. Rótulos de pool virtual foram usados para diferenciar os pools com base em performance
e protection
.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com nfsMountOptions: vers=3,proto=tcp,timeo=600 defaults: snapshotReserve: '5' exportRule: 0.0.0.0/0 labels: cloud: gcp region: us-west2 storage: - labels: performance: extreme protection: extra serviceLevel: extreme defaults: snapshotDir: 'true' snapshotReserve: '10' exportRule: 10.0.0.0/24 - labels: performance: extreme protection: standard serviceLevel: extreme - labels: performance: premium protection: extra serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '10' - labels: performance: premium protection: standard serviceLevel: premium - labels: performance: standard serviceLevel: standard
Definições de classe de armazenamento
As seguintes definições do StorageClass se aplicam ao exemplo de configuração de pool virtual. Usando `parameters.selector`o , você pode especificar para cada StorageClass o pool virtual usado para hospedar um volume. O volume terá os aspetos definidos no pool escolhido.
Exemplo de classe de armazenamento
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: csi.trident.netapp.io parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "protection=extra" allowVolumeExpansion: true
-
O primeiro StorageClass ) (`cvs-extreme-extra-protection`mapeia para o primeiro pool virtual. Esse é o único pool que oferece desempenho extremo com uma reserva de snapshot de 10%.
-
O último StorageClass ) (`cvs-extra-protection`chama qualquer pool de armazenamento que forneça uma reserva de snapshot de 10%. O Trident decide qual pool virtual é selecionado e garante que o requisito de reserva de snapshot seja atendido.
Exemplos de tipo de serviço CVS
Os exemplos a seguir fornecem exemplos de configurações para o tipo de serviço CVS.
Exemplo 1: Configuração mínima
Essa é a configuração mínima de back-end usada storageClass
para especificar o tipo de serviço CVS e o nível de serviço padrão standardsw
.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' storageClass: software apiRegion: us-east4 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com serviceLevel: standardsw
Exemplo 2: Configuração do pool de armazenamento
Essa configuração de back-end de exemplo é usada storagePools
para configurar um pool de armazenamento.
--- version: 1 storageDriverName: gcp-cvs backendName: gcp-std-so-with-pool projectNumber: '531265380079' apiRegion: europe-west1 apiKey: type: service_account project_id: cloud-native-data private_key_id: "<id_value>" private_key: |- -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com client_id: '107071413297115343396' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40cloud-native-data.iam.gserviceaccount.com storageClass: software zone: europe-west1-b network: default storagePools: - 1bc7f380-3314-6005-45e9-c7dc8c2d7509 serviceLevel: Standardsw
O que se segue?
Depois de criar o arquivo de configuração de back-end, execute o seguinte comando:
tridentctl create backend -f <backend-file>
Se a criação do backend falhar, algo está errado com a configuração do backend. Você pode exibir os logs para determinar a causa executando o seguinte comando:
tridentctl logs
Depois de identificar e corrigir o problema com o arquivo de configuração, você pode executar o comando create novamente.