Créer une configuration de chart Helm pour Spanner Omni

Ce document explique comment créer une configuration Helm pour Spanner Omni sur Kubernetes.

Présentation

Vous configurez des charts Helm pour les déploiements Spanner Omni sur Kubernetes. Passez en revue les options de configuration disponibles pour personnaliser votre déploiement. Le modèle Helm inclut une propriété global.platform, qui définit des valeurs par défaut pour les paramètres clés tels que StorageClass et les annotations de service en fonction de la plate-forme choisie.

Découvrez comment le graphique Helm applique des valeurs par défaut spécifiques à la plate-forme pour Google Kubernetes Engine (GKE) et Amazon Elastic Kubernetes Service (Amazon EKS). Ces valeurs par défaut couvrent des configurations telles que les classes de stockage, les emplacements des données et les annotations de service. Personnalisez ces paramètres pour les adapter aux exigences de déploiement spécifiques à chaque plate-forme.

Avant de commencer

Si vous ne l'avez pas déjà fait, installez Helm.

Préparer une configuration de chart Helm

Pour créer une configuration de graphique Helm :

  1. Utilisez la commande helm show values pour examiner les options de configuration disponibles pour créer un déploiement :

    helm show values oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.1.0
    

    La documentation sur la création d'un déploiement utilise l'indicateur --set pour spécifier différentes options. Vous pouvez également spécifier ces options dans un fichier YAML et utiliser l'option -f dans la commande helm. Pour faciliter le déploiement, le modèle Helm inclut la propriété global.platform, qui détermine les valeurs par défaut pour StorageClass, les annotations de service et d'autres paramètres en fonction de la plate-forme.

  2. Le tableau suivant récapitule les valeurs par défaut spécifiques à la plate-forme pour Google Kubernetes Engine (GKE) et Amazon EKS :

Propriété Par défaut Plate-forme
GKE Amazon EKS
storageClasses - name: my_sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
- name: hyperdisk-balanced-rwo
provisioner: pd.csi.storage.gke.io
parameters:
  type: hyperdisk-balanced
- name: aws-gp3
provisioner: ebs.csi.aws.com
parameters:
  type: gp3
- name: aws-standard
provisioner: ebs.csi.aws.com
parameters:
  type: standard
locations - name: us
namespace: ""
zones:
- name: "us-a"
shortName: "a"
replicas: 1
rootServers: 1
singleServer: true
- name: "us-b"
shortName: "b"
- name: "us-c"
shortName: "c"
- name: us-east1
zones:
- name: us-east1-b
shortName: a
- name: us-east1-c
shortName: b
- name: us-east1-d
shortName: c
- name: us-east-1
zones:
- name: us-east-1a
shortName: a
- name: us-east-1c
shortName: b
- name: us-east-1d
shortName: c
dataStorageClass <default> premium-rwo aws-gp3
logsStorageClass <default> standard-rwo aws-standard
serviceAnnotations null networking.gke.io/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

Étapes suivantes