Cette page présente l'opérateur Kubernetes AlloyDB Omni, avec des instructions pour l'utiliser afin de déployer AlloyDB Omni sur un cluster Kubernetes. Cette page part du principe que vous connaissez les principes de base de Kubernetes.
Pour obtenir des instructions sur l'installation d'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 base 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. Vous n'utilisez pas la CLI AlloyDB Omni, qui est destinée aux déploiements sur des machines Linux individuelles et non sur des clusters Kubernetes.
Compatibilité avec 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, un message d'erreur semblable à celui-ci peut s'afficher:
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
Vous devez avoir accès aux éléments suivants:
- Un cluster Kubernetes exécutant les logiciels suivants :
- Version 1.21 ou ultérieure de Kubernetes
- Le service
cert-manager
.
- Utilitaire
kubectl
- Le gestionnaire de paquets
helm
- Google Cloud CLI. Une fois gcloud CLI installée, vous devez authentifier votre compte Google Cloud en exécutant
gcloud auth login
.
Chaque nœud du cluster Kubernetes doit disposer des éléments suivants:
- Deux processeurs x86 ou AMD64 minimum
- Au moins 8 Go de RAM
- Version du noyau Linux 4.18 ou ultérieure
- Groupe de contrôle v2 (cgroup v2) activé.
Installer l'opérateur AlloyDB Omni
Pour installer l'opérateur AlloyDB Omni, procédez comme suit:
Définissez plusieurs variables d'environnement:
export GCS_BUCKET=alloydb-omni-operator
export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
export OPERATOR_VERSION="${HELM_PATH%%/*}"
Téléchargez l'opérateur AlloyDB Omni:
gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
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, le résultat suivant s'affiche:
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: None
Effectuez le nettoyage en supprimant le fichier d'installation de l'opérateur AlloyDB Omni téléchargé. Le fichier se nomme
alloydbomni-operator-VERSION_NUMBER.tgz
et se trouve dans votre répertoire de travail actuel.
Configurer le stockage GDC connecté
Pour installer l'opérateur AlloyDB Omni sur un cluster connecté à GDC, vous devez suivre des étapes supplémentaires pour configurer le stockage, car les clusters connectés à GDC 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 base de données AlloyDB Omni.
Pour savoir comment définir Symcloud Storage comme classe de stockage par défaut, consultez la section 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 la section Modifier la ressource StorageClass par défaut.
Procédure de rapprochement Red Hat OpenShift
Si vous utilisez Red Hat OpenShift 4.12 ou une version ultérieure, vous devez suivre les étapes ci-dessous après avoir installé l'opérateur AlloyDB Omni et avant de créer un cluster de base de données AlloyDB Omni sur le cluster Kubernetes. Sinon, vous pouvez ignorer ces étapes.
Ajoutez des autorisations pour mettre à jour les finaliseurs d'instance AlloyDB Omni en modifiant le rôle de cluster
system:controller:statefulset-controller
comme suit:kubectl edit clusterrole system:controller:statefulset-controller
Dans l'éditeur de texte, ajoutez ce qui suit à la fin du rôle de cluster:
- apiGroups: - alloydbomni.internal.dbadmin.goog resources: - instances/finalizers verbs: - update - apiGroups: - alloydbomni.internal.dbadmin.goog resources: - backuprepositories/finalizers verbs: - update
Le contrôleur StatefulSet doit disposer d'autorisations supplémentaires pour mettre à jour les finaliseurs d'instance ajoutés au rôle de cluster, car OwnerReferencesPermissionEnforcement est activé dans Red Hat OpenShift. Sans autorisation de mettre à jour les finaliseurs d'instance, le contrôleur StatefulSet ne parvient pas à créer la revendication de volume persistant (PVC) de la base de données, avec le message d'erreur suivant dans les événements StatefulSet de la base de données:
Warning FailedCreate [...] cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on
Ajoutez la contrainte de contexte de sécurité
anyuid
au compte de servicedefault
dans votre projet Red Hat OpenShift comme suit:oc adm policy add-scc-to-user anyuid system:serviceaccount:DB_CLUSTER_NAMESPACE:default
Vous devez autoriser le compte de service
default
à utiliser la contrainte de contexte de sécuritéanyuid
, car, dans le pod de base de données, le conteneur d'initialisation s'exécute en tant que root et les autres conteneurs s'exécutent avec des ID utilisateur spécifiques. Sans autorisation d'utiliseranyuid
, le contrôleur StatefulSet ne parvient pas à créer le PVC de la base de données, avec le message d'erreur suivant dans les événements StatefulSet de la base de données:Warning FailedCreate [...] unable to validate against any security context constraint
Créer un cluster de base de données
Un cluster de base 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, les éventuels réplicas et toutes vos données.
Après avoir installé l'opérateur AlloyDB Omni sur votre cluster Kubernetes, vous pouvez créer un cluster de base de données AlloyDB Omni sur le cluster Kubernetes en appliquant un fichier manifeste semblable à celui-ci:
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.7.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
).DB_CLUSTER_NAMESPACE
(facultatif): espace de noms dans lequel vous souhaitez créer le cluster de base de données (par exemple,my-db-cluster-namespace
).ENCODED_PASSWORD
: mot de passe de connexion à la base de données pour le rôle utilisateurpostgres
par défaut, encodé en tant que chaîne base64 (par exemple,Q2hhbmdlTWUxMjM=
pourChangeMe123
).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 Go par processeur. Par exemple, si vous avez définicpu
sur2
plus tôt dans ce fichier manifeste, nous vous recommandons de définirmemory
sur16Gi
.DISK_SIZE
: taille de disque par instance de base de données (par exemple,10Gi
).
Après avoir appliqué ce fichier manifeste, votre cluster Kubernetes contient un cluster de base 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 base de données, consultez Se connecter à l'aide de psql
préinstallé.
Pour en savoir plus sur les fichiers manifestes Kubernetes et comment les appliquer, consultez la section Gérer les ressources.
Étape suivante
- Exécuter et se connecter à AlloyDB Omni
- Gérer AlloyDB Omni
- Gérer la haute disponibilité dans Kubernetes