Cette page explique comment exécuter et vous connecter à AlloyDB Omni après l'avoir installé sur votre propre machine ou déployé dans votre cluster Kubernetes.
Avant de commencer
Serveur unique
La plupart des commandes de cette page utilisent la CLI AlloyDB Omni.
Pour installer cet outil de ligne de commande sur votre machine, consultez Installer la CLI AlloyDB Omni.
Kubernetes
Vous devez installer l'opérateur Kubernetes AlloyDB Omni sur votre cluster Kubernetes pour effectuer les tâches décrites sur cette page.
Les instructions spécifiques à Kubernetes de cette page supposent que vous connaissez les principes de base de l'exploitation de Kubernetes.
Exécuter AlloyDB Omni
Les procédures que vous utilisez pour exécuter AlloyDB Omni dépendent de si vous exécutez AlloyDB Omni dans un conteneur sur un seul serveur ou sur un cluster Kubernetes. Cette section répartit ses instructions entre ces styles de déploiement.
Serveur unique
L'installation d'AlloyDB Omni configure un service système appelé alloydb-dataplane
, qui est configuré pour se lancer à chaque démarrage de votre machine.
Pour contrôler et surveiller de manière basique AlloyDB Omni, utilisez la commande sudo alloydb
, comme illustré dans les sections suivantes.
Kubernetes
Pour contrôler et surveiller AlloyDB Omni, mettez à jour les fichiers manifestes de votre cluster Kubernetes, comme indiqué dans les sections suivantes.
Démarrer AlloyDB Omni
Serveur unique
sudo alloydb database-server start
Pour effectuer un test de connexion, consultez Se connecter à l'aide de psql
conteneurisé.
Kubernetes
Démarrez un cluster de base de données arrêté en définissant isStopped
sur false
dans sa définition de fichier manifeste.
Vous pouvez effectuer cette opération sur la ligne de commande à l'aide de kubectl
:
kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample \
-p '{"spec":{"primarySpec":{"isStopped":false}}}' --type=merge
Vérifier l'état d'AlloyDB Omni
Serveur unique
sudo alloydb database-server status
Kubernetes
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME
Remplacez DB_CLUSTER_NAME
par le nom de votre cluster de bases de données.
Arrêter AlloyDB Omni
Serveur unique
sudo alloydb database-server stop
Kubernetes
Pour arrêter un cluster de base de données, définissez isStopped
sur true
dans sa définition de fichier manifeste.
Vous pouvez effectuer cette opération sur la ligne de commande à l'aide de kubectl
:
kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge
Désactiver le lancement au démarrage
L'exécution de la commande suivante empêche AlloyDB Omni de démarrer automatiquement au démarrage de votre machine.
Serveur unique
sudo systemctl disable alloydb-dataplane
Kubernetes
Cette tâche ne s'applique pas lorsque vous utilisez l'opérateur Kubernetes AlloyDB Omni.
Réactiver le lancement au démarrage
Serveur unique
sudo systemctl enable alloydb-dataplane
Kubernetes
Cette tâche ne s'applique pas lorsque vous utilisez l'opérateur Kubernetes AlloyDB Omni.
Se connecter à AlloyDB Omni exécuté sur un seul serveur
Le conteneur AlloyDB Omni inclut sa propre copie de psql
qui vous permet d'ouvrir une session de shell SQL interactive avec son serveur de base de données.
Vous pouvez également vous connecter à AlloyDB Omni en dehors du conteneur, à l'aide du logiciel compatible avec PostgreSQL de votre choix.
Pour savoir comment vous connecter à un cluster de base de données AlloyDB Omni exécuté sur un cluster Kubernetes, consultez Se connecter à AlloyDB Omni exécuté sur Kubernetes.
Se connecter à l'aide de psql
conteneurisé
Pour vous connecter au serveur de base de données AlloyDB Omni à l'aide de sa propre copie conteneurisée de psql
, exécutez la commande suivante:
Serveur unique
docker exec -it pg-service psql -h localhost -U postgres
Cette commande vous connecte au serveur en tant que rôle utilisateur postgres
et affiche une invite de commande postgres=#
. Vous pouvez désormais exécuter des commandes psql
et des requêtes SQL.
Pour quitter psql
, exécutez la commande \q
.
Se connecter à l'aide de vos propres applications
Toute application compatible avec PostgreSQL peut également l'être avec AlloyDB Omni, sans aucune modification.
Pour vous connecter au serveur de base de données AlloyDB Omni, utilisez un client ou une bibliothèque de code compatible avec PostgreSQL pour vous connecter au port 5432
(port de serveur de base de données PostgreSQL par défaut) de la machine exécutant AlloyDB Omni.
Cela fonctionne, car le conteneur AlloyDB Omni expose son propre port 5432
au même port de la machine sur laquelle il s'exécute.
Après vous être connecté au serveur de base de données, vous pouvez définir, interroger et modifier vos bases de données à l'aide de requêtes LMD et SQL à l'aide de protocoles de communication PostgreSQL standards.
Étant donné qu'AlloyDB Omni s'exécute dans votre propre environnement, vous pouvez contrôler la manière dont vous vous connectez à AlloyDB Omni. Cela inclut l'autorisation ou la restriction de l'accès réseau à ce service en fonction des besoins de votre application, comme vous le feriez avec un serveur PostgreSQL ordinaire.
Se connecter à AlloyDB Omni exécuté sur Kubernetes
L'opérateur Kubernetes AlloyDB Omni autorise les connexions au cluster de base de données à partir du même cluster Kubernetes, éventuellement à l'aide de certificats pour l'authentification.
Se connecter à l'aide de psql
préinstallé
Vous pouvez établir une connexion de test à l'aide d'un client psql
déjà installé sur le pod exécutant la base de données.
Pour ce faire, exécutez les commandes suivantes:
export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- /bin/psql -h localhost -U postgres
Remplacez DB_CLUSTER_NAME
par le nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.
Une fois la commande saisie, le serveur de base de données vous invite à saisir un mot de passe.
Saisissez le mot de passe dont vous avez fourni la version encodée en base64 en tant que secret Kubernetes lors de la création du cluster de base de données. Par exemple, si vous avez créé le cluster de base de données avec un secret Q2hhbmdlTWUxMjM=
, le mot de passe de connexion à utiliser ici est ChangeMe123
.
L'opérateur AlloyDB Omni vous connecte au serveur en tant que rôle utilisateur postgres
et affiche une invite de commande postgres=#
. Vous pouvez désormais exécuter des commandes psql
et des requêtes SQL.
Pour quitter psql
, exécutez la commande \q
.
Se connecter à partir d'un pod distinct du même cluster
Le pod exécutant le cluster de base de données AlloyDB Omni autorise les connexions à partir du même cluster Kubernetes, par défaut. Nous vous recommandons de sécuriser toutes les connexions au cluster de base de données à l'aide de TLS.
Pour fournir votre propre certificat TLS de serveur, spécifiez un secret de certificat lors de la configuration de votre cluster de base de données. Si vous ne spécifiez pas de secret de certificat, l'opérateur Kubernetes Omni AlloyDB crée un secret de certificat TLS pour vous, basé sur un certificat signé par une autorité de certification autosignée. Dans les deux cas, vous pouvez exiger que votre pod client de base de données exige la validation du certificat à chaque connexion, ce qui garantit la sécurité TLS.
Pour établir des connexions de base de données sécurisées à l'aide de TLS, procédez comme suit:
Dans le fichier manifeste qui définit le pod établissant les connexions client, spécifiez un secret de certificat TLS. Il peut s'agir de l'un des suivants :
Un secret de certificat TLS que vous avez déjà créé dans votre cluster Kubernetes. Pour en savoir plus sur l'utilisation des secrets de certificats TLS dans Kubernetes, consultez la section Secrets TLS.
Le secret de certificat par défaut que l'opérateur Kubernetes Omni AlloyDB crée pour vous, nommé
DB_CLUSTER_NAME-ca-cert
, si vous ne spécifiez pas de secret TLS dans le fichier manifeste de votre cluster de base de données.
Chaque fois que votre pod client se connecte au cluster de base de données, il doit définir les variables d'environnement suivantes avant d'établir la connexion:
Définissez
PGSSLMODE
sur"verify-ca"
.Définissez
PGSSLROOTCERT
sur le chemin absolu, dans le système de fichiers du pod client, du fichierca.crt
approprié.
L'exemple de fichier manifeste suivant montre comment configurer un pod qui installe l'image PostgreSQL officielle, qui inclut le client de ligne de commande psql
. L'exemple suppose que vous ne spécifiez aucune configuration secrète TLS dans le fichier manifeste qui définit votre cluster de bases de données. Par conséquent, l'opérateur Kubernetes AlloyDB Omni utilise le secret TLS par défaut, nommé dbs-al-cert-DB_CLUSTER_NAME
.
apiVersion: v1
kind: Pod
metadata:
name: postgres
spec:
containers:
- image: "docker.io/library/postgres:latest"
command:
- "sleep"
- "604800"
imagePullPolicy: IfNotPresent
name: db-client
volumeMounts:
- name: ca-cert
mountPath: "/DB_CLUSTER_NAME-ca-cert"
readOnly: true
volumes:
- name: ca-cert
secret:
secretName: dbs-al-cert-DB_CLUSTER_NAME
restartPolicy: Always
Remplacez DB_CLUSTER_NAME
par le nom de votre cluster de bases de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.
Vous pouvez maintenant utiliser le pod pour vous connecter de manière sécurisée à votre cluster de base de données en procédant comme suit:
Déterminez l'adresse IP interne de votre cluster de base de données:
kubectl get dbclusters.alloydbomni.dbadmin.goog
Le résultat se présente comme suit :
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE DB_CLUSTER_NAME IP_ADDRESS Ready DBClusterReady
Notez
IP_ADDRESS
et utilisez-le à l'étape suivante.Utilisez
psql
pour vous connecter à votre cluster à partir du pod client, en définissant les variables d'environnement qui activent et exigent la validation du certificat TLS:kubectl exec -it postgres -- bash
PGSSLMODE="verify-ca" PGSSLROOTCERT=/DB_CLUSTER_NAME-ca-cert/ca.crt psql -h IP_ADDRESS -p 5432 -U postgres -d postgres
Remplacez
IP_ADDRESS
par l'adresse IP interne que vous avez déterminée à l'étape précédente.