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.
Les instructions spécifiques à Kubernetes de cette page partent du principe 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.
Démarrer AlloyDB Omni
Serveur unique
Pour démarrer un conteneur AlloyDB Omni arrêté, exécutez la commande docker container start
:
docker container start CONTAINER_NAME
Remplacez CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.
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
Pour vérifier l'état de tous les conteneurs que vous exécutez, exécutez la commande docker container ls
:
docker container ls
Si votre conteneur AlloyDB Omni s'exécute, son nom apparaît dans la colonne NAMES
du tableau de sortie. La ligne correspondante résume l'état du conteneur.
Si le nom de votre conteneur n'apparaît pas dans la colonne NAMES
, cela signifie qu'AlloyDB Omni n'est pas en cours d'exécution.
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
Pour arrêter un conteneur AlloyDB Omni, exécutez la commande docker container stop
:
docker container stop CONTAINER_NAME
Remplacez CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.
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
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:
docker exec -it CONTAINER_NAME psql -U postgres
Remplacez CONTAINER_NAME
par le nom que vous avez attribué au conteneur AlloyDB Omni lorsque vous l'avez installé.
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, exposez la mise en réseau du conteneur Docker AlloyDB Omni sur votre machine hôte en ajoutant --network=host
ou -p 5432:5432
à votre commande docker run
lorsque vous démarrez AlloyDB Omni.
Pour sélectionner un numéro de port personnalisé, utilisez -p [HOST_PORT]:5432
lorsque vous démarrez AlloyDB Omni. Ensuite, utilisez un client ou une bibliothèque de code compatible avec PostgreSQL pour vous connecter au port 5432
ou au numéro de port personnalisé que vous avez spécifié.
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 -- 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.