Configure um Cloud Volumes Service para o backend do Google Cloud.
Aprenda como configurar o NetApp Cloud Volumes Service para Google Cloud como backend para sua instalação do Trident usando as configurações de exemplo fornecidas.
Detalhes do driver do Google Cloud
A Trident fornece o gcp-cvs O driver deve se comunicar com o cluster. Os modos de acesso suportados são: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
| Motorista | Protocolo | modo de volume | Modos de acesso suportados | Sistemas de arquivos suportados |
|---|---|---|---|---|
|
NFS |
Sistema de arquivos |
RWO, ROX, RWX, RWOP |
|
Saiba mais sobre o suporte do Trident para o Cloud Volumes Service do Google Cloud.
O Trident pode criar volumes do Cloud Volumes Service de duas maneiras diferentes."tipos de serviço" :
-
CVS-Performance: O tipo de serviço Trident padrão. Este tipo de serviço otimizado para desempenho é mais adequado para cargas de trabalho de produção que valorizam o desempenho. O tipo de serviço CVS-Performance é uma opção de hardware que suporta volumes com tamanho mínimo de 100 GiB. Você pode escolher um dos seguintes:"três níveis de serviço" :
-
standard -
premium -
extreme
-
-
CVS: O tipo de serviço CVS oferece alta disponibilidade zonal com níveis de desempenho limitados a moderados. O tipo de serviço CVS é uma opção de software que utiliza pools de armazenamento para suportar volumes tão pequenos quanto 1 GiB. O pool de armazenamento pode conter até 50 volumes, onde todos os volumes compartilham a capacidade e o desempenho do pool. Você pode escolher um dos seguintes:"dois níveis de serviço" :
-
standardsw -
zoneredundantstandardsw
-
Para configurar e usar o "Cloud Volumes Service para Google Cloud" Para o backend, você precisa do seguinte:
-
Uma conta do Google Cloud configurada com o serviço NetApp Cloud Volumes Service.
-
Número do projeto da sua conta do Google Cloud
-
conta de serviço do Google Cloud com o
netappcloudvolumes.adminpapel -
Arquivo de chave de API para sua conta do Cloud Volumes Service .
Opções de configuração do backend
Cada backend 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 driver de armazenamento |
"gcp-cvs" |
|
Nome personalizado ou o backend de armazenamento |
Nome do driver + "_" + parte da chave da API |
|
Parâmetro opcional usado para especificar o tipo de serviço CVS. Usar |
|
|
Somente o tipo de serviço CVS. Parâmetro opcional usado para especificar os conjuntos de armazenamento para a criação de volumes. |
|
|
Número do projeto da conta do Google Cloud. O valor pode ser encontrado na página inicial do portal do Google Cloud. |
|
|
Obrigatório se estiver usando uma rede VPC compartilhada. Neste cenário, |
|
|
A região do Google Cloud onde o Trident cria volumes do Cloud Volumes Service . Ao criar clusters Kubernetes entre regiões, os volumes criados em uma região são mantidos. |
|
|
Chave de API para a conta de serviço do Google Cloud com o |
|
|
URL do proxy, caso seja necessário um servidor proxy para conectar-se à 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. Servidores proxy com autenticação ativada não são suportados. |
|
|
Controle preciso das opções de montagem NFS. |
"nfsvers=3" |
|
O provisionamento falhará se o tamanho do volume solicitado for superior a esse valor. |
"" (não aplicado por padrão) |
|
O nível de desempenho ou serviço CVS para novos volumes. Os valores de desempenho do CVS são |
A configuração padrão do CVS-Performance é "standard". O padrão do CVS é "standardsw". |
|
A rede do Google Cloud é usada para os volumes do Cloud Volumes Service . |
"padrão" |
|
Sinalizadores de depuração a serem usados na resolução de problemas. Exemplo, |
nulo |
|
Para habilitar o acesso entre regiões, sua definição de StorageClass para |
Opções de provisionamento de volume
Você pode controlar o provisionamento de volume padrão em defaults seção do arquivo de configuração.
| Parâmetro | Descrição | Padrão |
|---|---|---|
|
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" |
|
Percentagem do volume reservada para instantâneos |
"" (aceitar o valor padrão CVS de 0) |
|
O tamanho dos novos volumes. O requisito mínimo de desempenho do CVS é de 100 GiB. O tamanho mínimo exigido pelo CVS é 1 GiB. |
O tipo de serviço CVS-Performance tem como padrão "100GiB". O tipo de serviço CVS não define um valor padrão, mas requer um mínimo de 1 GiB. |
Exemplos de tipos de serviço CVS-Performance
Os exemplos a seguir fornecem configurações de amostra para o tipo de serviço CVS-Performance.
Exemplo 1: Configuração mínima
Esta é a configuração mínima de backend usando o tipo de serviço CVS-Performance padrão com o nível de serviço "standard" 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 do backend, incluindo o nível de serviço e os valores padrão 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 o StorageClasses que se referem a eles. ConsulteDefinições de classe de armazenamento para ver como as classes de armazenamento foram definidas.
Aqui, são definidos valores padrão específicos para todos os pools virtuais, que definem o snapshotReserve a 5% e o exportRule para 0.0.0.0/0. Os pools virtuais são definidos em storage seção. Cada piscina virtual individual define a sua própria. serviceLevel E algumas pools sobrescrevem os valores padrão. Rótulos de piscinas virtuais foram usados para diferenciar as piscinas 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 de StorageClass aplicam-se ao exemplo de configuração de pool virtual. Usando parameters.selector Você pode especificar para cada StorageClass o pool virtual usado para hospedar um volume. O volume terá os aspectos definidos na piscina escolhida.
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
-
A primeira StorageClass(
cvs-extreme-extra-protection) mapeia para a primeira piscina virtual. Esta é a única piscina que oferece desempenho extremo com uma reserva instantânea de 10%. -
A última StorageClass(
cvs-extra-protection) menciona qualquer pool de armazenamento que forneça uma reserva de snapshot de 10%. O Trident decide qual pool virtual será selecionado e garante que o requisito de reserva de snapshots seja atendido.
Exemplos de tipos de serviço CVS
Os exemplos a seguir fornecem configurações de amostra para o tipo de serviço CVS.
Exemplo 1: Configuração mínima
Esta é a configuração mínima de backend usando storageClass para especificar o tipo de serviço CVS e o padrão standardsw nível de serviço.
---
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
Esta configuração de backend de exemplo usa 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 vem a seguir?
Após criar o arquivo de configuração do backend, execute o seguinte comando:
tridentctl create backend -f <backend-file>
Se a criação do backend falhar, há algo errado com a configuração do backend. Você pode visualizar os registros para determinar a causa executando o seguinte comando:
tridentctl logs
Após identificar e corrigir o problema com o arquivo de configuração, você poderá executar o comando de criação novamente.