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 une connaissance de base du fonctionnement 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 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.
Compatibilité de l'opérateur AlloyDB Omni 1.1.0
L'opérateur AlloyDB Omni version 1.1.0 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
Vous devez avoir accès aux éléments suivants :
- Un cluster Kubernetes exécutant les logiciels suivants :
- Kubernetes version 1.21 ou ultérieure.
- Le service
cert-manager.
- L'
kubectlutilitaire. - Le gestionnaire de paquets
helm. - Google Cloud CLI. Une fois que vous avez installé le
gcloud CLI, vous devez authentifier votre Google Cloud compte en
exécutant
gcloud auth login.
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.
- Linux Kernel 4.18 ou une version ultérieure.
- Le 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-operatorexport 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 ./ --recursiveInstallez l'opérateur AlloyDB Omni :
helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --create-namespace \ --namespace alloydb-omni-system \ --atomic \ --timeout 5mSi 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: NoneNettoyez l'installation en supprimant le fichier d'installation de l'opérateur AlloyDB Omni téléchargé. Le fichier est nommé
alloydbomni-operator-VERSION_NUMBER.tgzet se trouve dans votre répertoire de travail actuel.
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.
Étapes de réconciliation Red Hat OpenShift
Si vous utilisez Red Hat OpenShift 4.12 ou 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 bases de données AlloyDB Omni sur le cluster Kubernetes. Dans le cas contraire, veuillez 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-controllercomme suit :kubectl edit clusterrole system:controller:statefulset-controllerDans l'éditeur de texte, ajoutez les éléments suivants à 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: - updateLe contrôleur StatefulSet doit disposer d'autorisations supplémentaires pour mettre à jour les finaliseurs d'instance ajoutés au rôle de cluster, car Red Hat OpenShift a activé OwnerReferencesPermissionEnforcement. Sans l'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, qui se trouve 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 onAjoutez des autorisations pour mettre à jour les finaliseurs DBInstance AlloyDB Omni en modifiant le rôle de cluster
fleet-manager-role:kubectl edit clusterrole fleet-manager-roleDans l'éditeur de texte, ajoutez les éléments suivants à la fin du rôle de cluster :
- apiGroups: - alloydbomni.dbadmin.goog resources: - dbinstances/finalizers verbs: - updateAjoutez la contrainte de contexte de sécurité
anyuidau compte de servicedefaultdans votre projet Red Hat OpenShift comme suit :oc adm policy add-scc-to-user anyuid system:serviceaccount:OPENSHIFT_PROJECT:default
Vous devez autoriser le compte de service
defaultà utiliser la contrainte de contexte de sécuritéanyuid, car dans le pod de la base de données, le conteneur d'initialisation s'exécute en tant que racine et les autres conteneurs s'exécutent avec des ID utilisateur spécifiques. Sans l'autorisation d'utiliseranyuid, le contrôleur StatefulSet ne parvient pas à créer la PVC de la base de données avec le message d'erreur suivant, qui se trouve 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 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, les réplicas et toutes vos données.
Une fois que vous avez installé l'opérateur AlloyDB Omni sur votre cluster Kubernetes, vous pouvez créer un cluster de bases 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
type: Opaque
data:
DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
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 exemplemy-db-cluster.ENCODED_PASSWORD: mot de passe de connexion à la base de données pour le rôle utilisateurpostgrespar défaut, encodé sous forme de 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 gigaoctets par processeur. Par exemple, si vous avez définicpusur2plus haut dans ce fichier manifeste, nous vous recommandons de définirmemorysur16Gi.DISK_SIZE: taille de disque par instance de base de données (par exemple,10Gi).
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
- Exécuter AlloyDB Omni et s'y connecter
- Gérer AlloyDB Omni
- Gérer la haute disponibilité dans Kubernetes