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.