Installer AlloyDB Omni sur Kubernetes

Sélectionnez une version de la documentation :

Cette page présente l'opérateur Kubernetes AlloyDB Omni et explique comment l'utiliser pour déployer AlloyDB Omni sur un cluster Kubernetes. Cette page suppose que vous connaissez les bases du fonctionnement de Kubernetes.

Pour savoir comment installer AlloyDB Omni dans un environnement Linux standard, consultez Installer AlloyDB Omni.

Présentation

Pour déployer AlloyDB Omni sur un cluster Kubernetes, installez l'opérateur AlloyDB Omni, une extension de l'API Kubernetes fournie par Google.

Vous configurez et contrôlez un cluster de bases de données AlloyDB Omni basé sur Kubernetes en associant des fichiers manifestes déclaratifs à l'utilitaire kubectl, comme pour tout autre déploiement basé sur Kubernetes.

Image de base

À partir de la version 1.5.0, les images Kubernetes de l'opérateur AlloyDB Omni sont basées sur l'image de base universelle (UBI) 9 de Red Hat. Cette transition améliore la sécurité, la cohérence et la conformité de vos déploiements.

Compatibilité de l'opérateur AlloyDB Omni 1.1.0 (et versions ultérieures)

La version 1.1.0 de l'opérateur AlloyDB Omni n'est pas compatible avec les versions 15.5.3 et 15.5.4 d'AlloyDB Omni. Si vous utilisez l'une de ces versions d'AlloyDB Omni, vous pouvez recevoir une erreur semblable à la suivante :

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

Avant de commencer

Avant d'installer AlloyDB Omni sur un cluster Kubernetes avec l'opérateur AlloyDB Omni, assurez-vous de respecter les conditions suivantes.

Choisir une option de téléchargement ou d'installation

Lorsque vous gérez des charges de travail sur un cluster Kubernetes générique, vous pouvez utiliser Helm ou OLM. Helm est un gestionnaire de paquets universel qui utilise des charts Helm pour installer n'importe quelle charge de travail, y compris les opérateurs, dans toutes les variantes de Kubernetes. En revanche, OLM, le choix standard et préféré sur les plates-formes OpenShift, gère les cycles de vie des opérateurs avec des bundles OLM spécialisés.

En fonction de votre environnement et de vos outils, choisissez l'une des méthodes de déploiement suivantes :

Médias Emplacements de téléchargement et guides d'installation Déploiement vers
Opérateur AlloyDB Omni avec chart Helm Installer AlloyDB Omni sur Kubernetes Environnement de conteneur Kubernetes personnalisé, par exemple, sur site, dans des clouds publics, GKE, Amazon EKS et Azure AKS.

Conseil : Si votre outil de CD (livraison continue) est intégré à Helm, utilisez cette option.
Opérateur AlloyDB Omni avec bundle OLM OperatorHub.io Environnement de conteneur Kubernetes personnalisé, par exemple, sur site, dans des clouds publics, Google Kubernetes Engine, Amazon EKS et Azure AKS.

Pour utiliser un bundle OLM, installez OLM sur le cluster Kubernetes avant d'installer l'opérateur. Pour en savoir plus sur OLM, consultez olm.operatorframework.io.

Conseil : Si votre outil de CD (livraison continue) utilise déjà OLM, choisissez cette option.
Opérateur OpenShift avec bundle OLM Console Web de la plate-forme de conteneurs OpenShift Environnement OpenShift

OpenShift, une variante de Kubernetes, utilise OLM comme méthode standard intégrée pour empaqueter et déployer des opérateurs.

Vérifier l'accès

Vérifiez que vous avez accès aux éléments suivants :

Répondre aux exigences matérielles et logicielles

Chaque nœud du cluster Kubernetes doit disposer des éléments suivants :

  • Au moins deux processeurs x86 ou AMD64.
  • Au moins 8 Go de mémoire RAM.
  • Version 4.18 ou ultérieure du noyau Linux.
  • Groupe de contrôle (cgroup) v2 activé.

Installer l'opérateur AlloyDB Omni

Vous pouvez installer l'opérateur AlloyDB Omni à l'aide de différentes méthodes, y compris Helm et le gestionnaire de cycle de vie des opérateurs (OLM).

Helm

Pour installer l'opérateur AlloyDB Omni, procédez comme suit :

  1. Définissez les variables d'environnement suivantes :
    export HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Téléchargez l'opérateur AlloyDB Omni :
    curl -X GET -o "./alloydbomni-operator-${OPERATOR_VERSION}.tgz" "https://storage.googleapis.com/storage/v1/b/alloydb-omni-operator/o/$(echo ${HELM_PATH} | sed 's/\//%2F/g')?alt=media"
    
  3. Installez l'opérateur AlloyDB Omni :
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    Si l'installation aboutit, la sortie suivante devrait s'afficher :

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. Pour nettoyer, supprimez le fichier d'installation de l'opérateur AlloyDB Omni téléchargé. Le fichier est nommé alloydbomni-operator-VERSION_NUMBER.tgz et se trouve dans votre répertoire de travail actuel.

OLM

Pour installer l'opérateur AlloyDB Omni à l'aide du gestionnaire de cycle de vie des opérateurs, procédez comme suit :

  1. Accédez à la page AlloyDB Omni Operator (Opérateur AlloyDB Omni).

  2. Cliquez sur Install (Installer). Si ce n'est pas déjà fait, suivez les instructions pour n'installer que l'opérateur OLM et le catalogue OperatorHub.io.

  3. Créez l'espace de noms alloydb-omni-system s'il n'existe pas déjà.

    kubectl create ns alloydb-omni-system
    
  4. Configurez l'OperatorGroup OLM pour vous assurer que l'opérateur est limité au cluster.

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: operator-sdk-og
      namespace: alloydb-omni-system
    spec:
      upgradeStrategy: Default
    EOF
    
  5. Installez l'opérateur à l'aide d'une ressource d'abonnement OLM.

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: my-alloydb-omni-operator
      namespace: alloydb-omni-system
    spec:
      channel: stable
      name: alloydb-omni-operator
      source: operatorhubio-catalog
      sourceNamespace: olm
    EOF
    
  6. Installez le certificat par défaut ClusterIssuer. Cette étape est facultative si vous utilisez des émetteurs de certificats personnalisés.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

OLM

Pour installer l'opérateur AlloyDB Omni dans votre environnement Red Hat OpenShift à l'aide d'OLM, connectez-vous à votre console Web Red Hat OpenShift.

  1. Sélectionnez Operators > OperatorHub (Opérateurs > OperatorHub).

  2. Recherchez l'opérateur AlloyDB Omni à l'aide du champ de recherche.

  3. Dans le volet de l'opérateur AlloyDB Omni, cliquez sur Install (Installer).

  4. Installez le certificat par défaut ClusterIssuer. Cette étape est facultative si vous utilisez des émetteurs de certificats personnalisés.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

Configurer le stockage connecté GDC

Pour installer l'opérateur AlloyDB Omni sur GDC connecté, vous devez suivre des étapes supplémentaires pour configurer le stockage, car les clusters GDC connectés ne définissent pas de classe de stockage par défaut. Vous devez définir une classe de stockage par défaut avant de créer un cluster de bases de données AlloyDB Omni.

Pour savoir comment définir Symcloud Storage comme classe de stockage par défaut, consultez Définir Symcloud Storage comme classe de stockage par défaut.

Pour en savoir plus sur la modification de la valeur par défaut pour toutes les autres classes de stockage, consultez Modifier la ressource StorageClass par défaut.

Créer un cluster de bases de données

Un cluster de bases de données AlloyDB Omni contient toutes les ressources de stockage et de calcul nécessaires pour exécuter un serveur AlloyDB Omni, y compris le serveur principal, toutes les répliques et toutes vos données.

Pour créer un cluster de bases de données AlloyDB Omni, procédez comme suit :

  1. Créez un espace de noms dédié pour votre cluster de bases de données. Cela améliore l'isolation et la sécurité.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    Remplacez DB_CLUSTER_NAMESPACE par l'espace de noms dans lequel vous souhaitez créer le cluster de bases de données, par exemple my-db-cluster-namespace.

  2. Créez un fichier manifeste nommé db-cluster.yaml avec le contenu suivant. Ce fichier manifeste définit à la fois le secret du mot de passe de la base de données et la ressource DBCluster elle-même.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
      namespace: DB_CLUSTER_NAMESPACE
    spec:
      databaseVersion: "15.12.0"
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
    

    Remplacez les éléments suivants :

    • DB_CLUSTER_NAME : nom de ce cluster de bases de données, par exemple my-db-cluster.

    • ENCODED_PASSWORD : mot de passe de connexion à la base de données pour le rôle utilisateur postgres par défaut, encodé sous forme de chaîne base64 (par exemple, Q2hhbmdlTWUxMjM= pour ChangeMe123).

    • CPU_COUNT: nombre de processeurs disponibles pour chaque instance de base de données de ce cluster de bases de données.

    • MEMORY_SIZE: quantité de mémoire par instance de base de données de ce cluster de bases de données. Nous vous recommandons de définir cette valeur sur 8 gigaoctets par processeur. Par exemple, si vous avez défini cpu sur 2 plus haut dans ce fichier manifeste, nous vous recommandons de définir memory sur 16Gi.

    • DISK_SIZE : taille de disque par instance de base de données (par exemple, 10Gi).

  3. Appliquez le fichier manifeste à votre cluster Kubernetes :

    kubectl apply -f db-cluster.yaml
    

Une fois ce fichier manifeste appliqué, votre cluster Kubernetes contient un cluster de bases de données AlloyDB Omni avec la configuration de mémoire, de processeur et de stockage spécifiée. Pour établir une connexion de test avec le nouveau cluster de bases de données, consultez Se connecter à l'aide de psql.

Pour en savoir plus sur les fichiers manifestes Kubernetes et sur la manière de les appliquer, consultez Gérer les ressources.

Étape suivante