Questa pagina fornisce una panoramica dell'operatore AlloyDB Omni Kubernetes, con istruzioni per utilizzarlo per eseguire il deployment di AlloyDB Omni su un cluster Kubernetes. Questa pagina presuppone una conoscenza di base del funzionamento di Kubernetes.
Per istruzioni sull'installazione di AlloyDB Omni in un ambiente Linux standard, vedi Installare AlloyDB Omni.
Panoramica
Per eseguire il deployment di AlloyDB Omni su un cluster Kubernetes, installa l'operatore AlloyDB Omni, un'estensione dell'API Kubernetes fornita da Google.
Configura e controlla un cluster di database AlloyDB Omni basato su Kubernetes associando i file manifest dichiarativi all'utilità kubectl, proprio come qualsiasi altro deployment basato su Kubernetes.
Compatibilità dell'operatore AlloyDB Omni 1.1.0
La versione 1.1.0 dell'operatore AlloyDB Omni non è compatibile con le versioni 15.5.3 e 15.5.4 di AlloyDB Omni. Se utilizzi una di queste versioni di AlloyDB Omni, potresti ricevere un errore simile al seguente:
Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3
Prima di iniziare
Devi avere accesso a:
- Un cluster Kubernetes che esegue il seguente software:
- Kubernetes versione 1.21 o successive.
- Il servizio
cert-manager.
- L'
kubectlutilità. - Il gestore di pacchetti
helm. - Google Cloud CLI. Dopo aver installato la
gcloud CLI, devi autenticare il tuo Google Cloud account eseguendo
gcloud auth login.
Ogni nodo del cluster Kubernetes deve avere:
- Un minimo di due CPU x86 o AMD64.
- Almeno 8 GB di RAM.
- Versione kernel Linux 4.18 o successive.
- Gruppo di controllo versione 2 (cgroup v2) abilitato.
Installare l'operatore AlloyDB Omni
Per installare l'operatore AlloyDB Omni:
Definisci diverse variabili di ambiente:
export GCS_BUCKET=alloydb-omni-operatorexport HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)export OPERATOR_VERSION="${HELM_PATH%%/*}"Scarica l'operatore AlloyDB Omni:
gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursiveInstalla l'operatore AlloyDB Omni:
helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --create-namespace \ --namespace alloydb-omni-system \ --atomic \ --timeout 5mSe l'installazione va a buon fine, viene visualizzato il seguente output:
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: NoneLibera spazio eliminando il file di installazione dell'operatore AlloyDB Omni scaricato. Il file si chiama
alloydbomni-operator-VERSION_NUMBER.tgze si trova in nella directory di lavoro corrente.
Configurare l'archiviazione GDC Connected
Per installare l'operatore AlloyDB Omni su GDC Connected, devi seguire passaggi aggiuntivi per configurare l'archiviazione perché i cluster GDC Connected non impostano una classe di archiviazione predefinita. Devi impostare una classe di archiviazione predefinita prima di creare un cluster di database AlloyDB Omni.
Per scoprire come impostare Symcloud Storage come classe di archiviazione predefinita, vedi Impostare Symcloud Storage come classe di archiviazione predefinita.
Per ulteriori informazioni sulla modifica del valore predefinito per tutte le altre classi di archiviazione, vedi Modificare la StorageClass predefinita.
Passaggi di riconciliazione di Red Hat OpenShift
Se utilizzi Red Hat OpenShift 4.12 o versioni successive, devi completare i seguenti passaggi dopo aver installato l'operatore AlloyDB Omni e prima di creare un cluster di database AlloyDB Omni sul cluster Kubernetes. In caso contrario, puoi saltare questi passaggi.
Aggiungi le autorizzazioni per aggiornare i finalizzatori dell'istanza AlloyDB Omni modificando il ruolo del cluster
system:controller:statefulset-controllercome segue:kubectl edit clusterrole system:controller:statefulset-controllerNell'editor di testo, aggiungi quanto segue alla fine del ruolo del cluster:
- apiGroups: - alloydbomni.internal.dbadmin.goog resources: - instances/finalizers verbs: - update - apiGroups: - alloydbomni.internal.dbadmin.goog resources: - backuprepositories/finalizers verbs: - updateIl controller StatefulSet deve disporre di autorizzazioni aggiuntive per aggiornare i finalizzatori dell'istanza aggiunti al ruolo del cluster, poiché Red Hat OpenShift ha abilitato OwnerReferencesPermissionEnforcement. Senza l'autorizzazione per aggiornare i finalizzatori dell'istanza, il controller StatefulSet non riesce a creare la richiesta di volume permanente (PVC) del database con il seguente messaggio di errore trovato negli eventi StatefulSet del database:
Warning FailedCreate [...] cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers onAggiungi le autorizzazioni per aggiornare i finalizzatori DBInstance di AlloyDB Omni modificando il ruolo del cluster
fleet-manager-role:kubectl edit clusterrole fleet-manager-roleNell'editor di testo, aggiungi quanto segue alla fine del ruolo del cluster:
- apiGroups: - alloydbomni.dbadmin.goog resources: - dbinstances/finalizers verbs: - updateAggiungi il vincolo del contesto di sicurezza
anyuidal account di serviziodefaultnel progetto Red Hat OpenShift come segue:oc adm policy add-scc-to-user anyuid system:serviceaccount:OPENSHIFT_PROJECT:default
Devi consentire all'account di servizio
defaultdi utilizzare il vincolo del contesto di sicurezzaanyuid, poiché all'interno del pod del database, il container di inizializzazione viene eseguito come root e gli altri container vengono eseguiti con ID utente specifici. Senza l'autorizzazione per utilizzareanyuid, il controller StatefulSet non riesce a creare il PVC del database con il seguente messaggio di errore trovato negli eventi StatefulSet del database:Warning FailedCreate [...] unable to validate against any security context constraint
Creare un cluster di database
Un cluster di database AlloyDB Omni contiene tutte le risorse di archiviazione e di calcolo necessarie per eseguire un server AlloyDB Omni, inclusi il server primario, le eventuali repliche e tutti i dati.
Dopo aver installato l'operatore AlloyDB Omni sul cluster Kubernetes, puoi creare un cluster di database AlloyDB Omni sul cluster Kubernetes applicando un manifest simile al seguente:
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.1"
primarySpec:
adminUser:
passwordRef:
name: db-pw-DB_CLUSTER_NAME
resources:
cpu: CPU_COUNT
memory: MEMORY_SIZE
disks:
- name: DataDisk
size: DISK_SIZE
Sostituisci quanto segue:
DB_CLUSTER_NAME: il nome di questo cluster di database, ad esempiomy-db-cluster.ENCODED_PASSWORD: la password di accesso al database per il ruolo utentepostgrespredefinito, codificata come stringa base64, ad esempioQ2hhbmdlTWUxMjM=perChangeMe123.CPU_COUNT: il numero di CPU disponibili per ogni istanza di database in questo cluster di database.MEMORY_SIZE: la quantità di memoria per istanza di database di questo cluster di database. Ti consigliamo di impostare questo valore su 8 gigabyte per CPU. Ad esempio, se hai impostatocpusu2in precedenza in questo manifest, ti consigliamo di impostarememorysu16Gi.DISK_SIZE: le dimensioni del disco per istanza di database, ad esempio10Gi.
Dopo aver applicato questo manifest, il cluster Kubernetes contiene un cluster di database AlloyDB Omni con la configurazione di memoria, CPU e archiviazione specificata. Per stabilire una connessione di test con il nuovo
cluster di database, vedi Connettersi utilizzando psql.
Per ulteriori informazioni sui manifest di Kubernetes e su come applicarli, vedi Gestire le risorse.