Opções e exemplos de configuração do backend do Google Cloud NetApp Volumes
Saiba mais sobre as opções de configuração de back-end para o Google Cloud NetApp Volumes e veja exemplos de configuração.
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 |
O valor de |
|
(Opcional) Nome personalizado do backend de armazenamento |
Nome do driver + "_" + parte da chave da API |
|
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. |
|
|
Localização no Google Cloud onde o Trident cria volumes GCNV. 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 |
|
|
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 serviço de um pool de armazenamento e seus volumes. Os valores são |
|
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar aos volumes |
"" |
|
A rede Google Cloud é usada para os volumes GCNV. |
|
|
Sinalizadores de depuração a serem usados na resolução de problemas. Exemplo, |
nulo |
|
Configure a criação de volumes NFS ou SMB. As opções são |
|
|
Representa uma lista de regiões e zonas que são suportadas por este sistema. Para obter mais informações, consulte"Utilizar a topologia CSI" . Por exemplo: |
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 de endereços IPv4, separados por vírgulas, contendo qualquer combinação de endereços IPv4. |
"0.0.0.0/0" |
|
Acesso ao |
"verdadeiro" para NFSv4 "falso" para NFSv3 |
|
Percentagem do volume reservada para instantâneos |
"" (aceitar o valor padrão de 0) |
|
Permissões Unix de novos volumes (4 dígitos octais). |
"" |
Configurações de exemplo
Os exemplos a seguir mostram configurações básicas que deixam a maioria dos parâmetros com os valores padrão. Esta é a maneira mais fácil de definir um backend.
Configuração mínima
Esta é a configuração mínima absoluta do backend. Com essa configuração, o Trident descobre todos os seus pools de armazenamento delegados ao Google Cloud NetApp Volumes no local configurado e coloca novos volumes em um desses pools aleatoriamente. Porque nasType é omitido, o nfs A configuração padrão será aplicada e o servidor provisionará volumes NFS.
Essa configuração é ideal para quem está começando a usar o Google Cloud NetApp Volumes e a experimentar, mas na prática, provavelmente será necessário definir um escopo adicional para os volumes provisionados.
---
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-gcnv-secret
type: Opaque
stringData:
private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
private_key: |
-----BEGIN PRIVATE KEY-----\n
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m\n
XsYg6gyxy4zq7OlwWgLwGa==\n
-----END PRIVATE KEY-----\n
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: "123455380079"
location: europe-west6
serviceLevel: premium
apiKey:
type: service_account
project_id: my-gcnv-project
client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
client_id: "103346282737811234567"
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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
credentials:
name: backend-tbc-gcnv-secret
Configuração para volumes SMB
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcnv1
namespace: trident
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: "123456789"
location: asia-east1
serviceLevel: flex
nasType: smb
apiKey:
type: service_account
project_id: cloud-native-data
client_email: trident-sample@cloud-native-data.iam.gserviceaccount.com
client_id: "123456789737813416734"
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/trident-sample%40cloud-native-data.iam.gserviceaccount.com
credentials:
name: backend-tbc-gcnv-secret
Configuração com filtro StoragePools
---
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-gcnv-secret
type: Opaque
stringData:
private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
private_key: |
-----BEGIN PRIVATE KEY-----
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
XsYg6gyxy4zq7OlwWgLwGa==
-----END PRIVATE KEY-----
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: "123455380079"
location: europe-west6
serviceLevel: premium
storagePools:
- premium-pool1-europe-west6
- premium-pool2-europe-west6
apiKey:
type: service_account
project_id: my-gcnv-project
client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
client_id: "103346282737811234567"
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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
credentials:
name: backend-tbc-gcnv-secret
Configuração de pool virtual
Essa configuração de backend define vários pools virtuais em um único arquivo. Os pools virtuais são definidos em storage seção. São úteis quando você tem vários pools de armazenamento que suportam diferentes níveis de serviço e deseja criar classes de armazenamento no Kubernetes que os representem. Etiquetas de piscinas virtuais são usadas para diferenciar as piscinas. Por exemplo, no exemplo abaixo. performance rótulo e serviceLevel O tipo é usado para diferenciar pools virtuais.
Você também pode definir alguns valores padrão que serão aplicáveis a todos os pools virtuais e sobrescrever os valores padrão para pools virtuais individuais. No exemplo a seguir, snapshotReserve e exportRule servem como valores padrão para todos os pools virtuais.
Para obter mais informações, consulte"Piscinas virtuais" .
---
apiVersion: v1
kind: Secret
metadata:
name: backend-tbc-gcnv-secret
type: Opaque
stringData:
private_key_id: f2cb6ed6d7cc10c453f7d3406fc700c5df0ab9ec
private_key: |
-----BEGIN PRIVATE KEY-----
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE4jK3bl/qp8B4Kws8zX5ojY9m
XsYg6gyxy4zq7OlwWgLwGa==
-----END PRIVATE KEY-----
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: "123455380079"
location: europe-west6
apiKey:
type: service_account
project_id: my-gcnv-project
client_email: myproject-prod@my-gcnv-project.iam.gserviceaccount.com
client_id: "103346282737811234567"
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/myproject-prod%40my-gcnv-project.iam.gserviceaccount.com
credentials:
name: backend-tbc-gcnv-secret
defaults:
snapshotReserve: "10"
exportRule: 10.0.0.0/24
storage:
- labels:
performance: extreme
serviceLevel: extreme
defaults:
snapshotReserve: "5"
exportRule: 0.0.0.0/0
- labels:
performance: premium
serviceLevel: premium
- labels:
performance: standard
serviceLevel: standard
Identidade na nuvem para GKE
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcp-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: '012345678901'
network: gcnv-network
location: us-west2
serviceLevel: Premium
storagePool: pool-premium1
Configuração de topologias suportadas
O Trident facilita o provisionamento de volumes para cargas de trabalho com base em regiões e zonas de disponibilidade. O supportedTopologies O bloco nesta configuração de backend é usado para fornecer uma lista de regiões e zonas por backend. Os valores de região e zona especificados aqui devem corresponder aos valores de região e zona dos rótulos em cada nó do cluster Kubernetes. Essas regiões e zonas representam a lista de valores permitidos que podem ser fornecidos em uma classe de armazenamento. Para classes de armazenamento que contêm um subconjunto das regiões e zonas fornecidas em um backend, o Trident cria volumes na região e zona mencionadas. Para obter mais informações, consulte"Utilizar a topologia CSI" .
---
version: 1
storageDriverName: google-cloud-netapp-volumes
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: asia-east1
serviceLevel: flex
supportedTopologies:
- topology.kubernetes.io/region: asia-east1
topology.kubernetes.io/zone: asia-east1-a
- topology.kubernetes.io/region: asia-east1
topology.kubernetes.io/zone: asia-east1-b
O que vem a seguir?
Após criar o arquivo de configuração do backend, execute o seguinte comando:
kubectl create -f <backend-file>
Para verificar se o backend foi criado com sucesso, execute o seguinte comando:
kubectl get tridentbackendconfig NAME BACKEND NAME BACKEND UUID PHASE STATUS backend-tbc-gcnv backend-tbc-gcnv b2fd1ff9-b234-477e-88fd-713913294f65 Bound Success
Se a criação do backend falhar, há algo errado com a configuração do backend. Você pode descrever o backend usando o kubectl get tridentbackendconfig <backend-name> Execute o comando ou visualize 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ê pode excluir o backend e executar o comando de criação novamente.
Definições de classe de armazenamento
A seguir, apresentamos um básico. StorageClass definição que se refere ao backend acima.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-nfs-sc
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
Exemplos de definições usando o parameter.selector campo:
Usando parameter.selector Você pode especificar para cada um StorageClass o"piscina virtual" que é usado para hospedar um volume. O volume terá os aspectos definidos na piscina escolhida.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: extreme-sc
provisioner: csi.trident.netapp.io
parameters:
selector: performance=extreme
backendType: google-cloud-netapp-volumes
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premium-sc
provisioner: csi.trident.netapp.io
parameters:
selector: performance=premium
backendType: google-cloud-netapp-volumes
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard-sc
provisioner: csi.trident.netapp.io
parameters:
selector: performance=standard
backendType: google-cloud-netapp-volumes
Para obter mais detalhes sobre classes de armazenamento, consulte"Criar uma classe de armazenamento" .
Exemplos de definições para volumes SMB
Usando nasType , node-stage-secret-name , e node-stage-secret-namespace Você pode especificar um volume SMB e fornecer as credenciais necessárias do Active Directory. Qualquer usuário/senha do Active Directory, com quaisquer permissões ou sem permissões, pode ser usado como segredo de estágio do nó.
Configuração básica no namespace padrão
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: "default"
Utilizando segredos diferentes por namespace
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
Utilizando segredos diferentes em cada volume.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gcnv-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "google-cloud-netapp-volumes"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: ${pvc.name}
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
|
|
nasType: smb`Filtros para pools que suportam volumes SMB. `nasType: nfs ou nasType: null Filtros para pools NFS.
|
Exemplo de definição de PVC
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: gcnv-nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
storageClassName: gcnv-nfs-sc
Para verificar se o PVC está vinculado, execute o seguinte comando:
kubectl get pvc gcnv-nfs-pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE gcnv-nfs-pvc Bound pvc-b00f2414-e229-40e6-9b16-ee03eb79a213 100Gi RWX gcnv-nfs-sc 1m