Auf dieser Seite finden Sie einen Überblick über den AlloyDB Omni Kubernetes-Operator und eine Anleitung zum Bereitstellen von AlloyDB Omni in einem Kubernetes-Cluster. Auf dieser Seite werden Grundkenntnisse zu Kubernetes vorausgesetzt.
Eine Anleitung zum Installieren von AlloyDB Omni in einer standardmäßigen Linux-Umgebung finden Sie unter AlloyDB Omni installieren.
Übersicht
Wenn Sie AlloyDB Omni in einem Kubernetes-Cluster bereitstellen möchten, installieren Sie den AlloyDB Omni-Operator, eine von Google bereitgestellte Erweiterung der Kubernetes API.
Sie konfigurieren und steuern einen Kubernetes-basierten AlloyDB Omni-Datenbankcluster, indem Sie deklarative Manifestdateien mit dem Dienstprogramm kubectl
verknüpfen, genau wie bei jeder anderen Kubernetes-basierten Bereitstellung. Sie verwenden nicht die AlloyDB Omni-Befehlszeile, die für Bereitstellungen auf einzelnen Linux-Maschinen und nicht für Kubernetes-Cluster gedacht ist.
Kompatibilität mit AlloyDB Omni-Operator 1.1.0 und höher
Die AlloyDB Omni-Operatorversion 1.1.0 ist nicht mit den Versionen 15.5.3 und 15.5.4 von AlloyDB Omni kompatibel. Wenn Sie eine dieser Versionen von AlloyDB Omni verwenden, wird möglicherweise ein Fehler wie der folgende angezeigt:
Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3
Hinweise
Sie benötigen Zugriff auf Folgendes:
- Ein Kubernetes-Cluster mit der folgenden Software:
- Kubernetes-Version 1.21 oder höher
- Der
cert-manager
-Dienst
- Das Dienstprogramm
kubectl
- Der Paketmanager
helm
- Google Cloud CLI Nachdem Sie die gcloud CLI installiert haben, müssen Sie sich mit Ihrem Google Cloud -Konto authentifizieren, indem Sie
gcloud auth login
ausführen.
Jeder Knoten im Kubernetes-Cluster muss Folgendes haben:
- Mindestens zwei x86- oder AMD64-CPUs.
- Mindestens 8 GB RAM
- Linux-Kernel-Version 4.18 oder höher
- Kontrollgruppe v2 (cgroup v2) ist aktiviert.
AlloyDB Omni-Operator installieren
So installieren Sie den AlloyDB Omni-Operator:
Definieren Sie mehrere Umgebungsvariablen:
export GCS_BUCKET=alloydb-omni-operator
export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
export OPERATOR_VERSION="${HELM_PATH%%/*}"
AlloyDB Omni-Operator herunterladen:
gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
Installieren Sie den AlloyDB Omni-Operator:
helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --create-namespace \ --namespace alloydb-omni-system \ --atomic \ --timeout 5m
Nach einer erfolgreichen Installation wird die folgende Ausgabe angezeigt:
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: None
Führen Sie eine Bereinigung durch, indem Sie die heruntergeladene Installationsdatei des AlloyDB Omni-Betreibers löschen. Die Datei hat den Namen
alloydbomni-operator-VERSION_NUMBER.tgz
und befindet sich im aktuellen Arbeitsverzeichnis.
Mit GDC verbundenen Speicher konfigurieren
Wenn Sie den AlloyDB Omni-Betriebsmodus auf einem mit der Google Data Cloud verbundenen Cluster installieren möchten, müssen Sie zusätzliche Schritte ausführen, um den Speicher zu konfigurieren, da für mit der Google Data Cloud verbundene Cluster keine Standardspeicherklasse festgelegt ist. Sie müssen eine Standardspeicherklasse festlegen, bevor Sie einen AlloyDB Omni-Datenbankcluster erstellen.
Informationen zum Festlegen von Symcloud Storage als Standardspeicherklasse finden Sie unter Symcloud Storage als Standardspeicherklasse festlegen.
Weitere Informationen zum Ändern der Standardeinstellung für alle anderen Speicherklassen finden Sie unter Standard-StorageClass ändern.
Schritte zur Abgleichung in Red Hat OpenShift
Wenn Sie Red Hat OpenShift 4.12 oder höher verwenden, müssen Sie die folgenden Schritte ausführen, nachdem Sie den AlloyDB Omni-Operator installiert und bevor Sie einen AlloyDB Omni-Datenbankcluster im Kubernetes-Cluster erstellt haben. Andernfalls können Sie diese Schritte überspringen.
Fügen Sie Berechtigungen zum Aktualisieren von AlloyDB Omni-Instanz-Finalisierern hinzu, indem Sie die Clusterrolle
system:controller:statefulset-controller
so bearbeiten:kubectl edit clusterrole system:controller:statefulset-controller
Fügen Sie im Texteditor am Ende der Clusterrolle Folgendes hinzu:
- apiGroups: - alloydbomni.internal.dbadmin.goog resources: - instances/finalizers verbs: - update - apiGroups: - alloydbomni.internal.dbadmin.goog resources: - backuprepositories/finalizers verbs: - update
Der StatefulSet-Controller muss zusätzliche Berechtigungen haben, um Instanz-Finalisierer zu aktualisieren, die der Clusterrolle hinzugefügt wurden, da in Red Hat OpenShift OwnerReferencesPermissionEnforcement aktiviert ist. Ohne die Berechtigung zum Aktualisieren von Instanz-Finalisierern kann der StatefulSet-Controller den Persistent Volume Claim (PVC) der Datenbank nicht erstellen. In den StatefulSet-Ereignissen der Datenbank wird die folgende Fehlermeldung ausgegeben:
Warning FailedCreate [...] cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on
Fügen Sie die Sicherheitskontextbeschränkung
anyuid
dem Dienstkontodefault
in Ihrem Red Hat OpenShift-Projekt so hinzu:oc adm policy add-scc-to-user anyuid system:serviceaccount:DB_CLUSTER_NAMESPACE:default
Sie müssen dem
default
-Dienstkonto die Verwendung deranyuid
-Sicherheitskontextbeschränkung erlauben, da der Init-Container innerhalb des Datenbank-Pods als Root ausgeführt wird und die anderen Container mit bestimmten Nutzer-IDs ausgeführt werden. Ohne Berechtigung zur Verwendung vonanyuid
kann der StatefulSet-Controller den PVC für die Datenbank nicht erstellen. In den StatefulSet-Ereignissen der Datenbank wird die folgende Fehlermeldung ausgegeben:Warning FailedCreate [...] unable to validate against any security context constraint
Datenbankcluster erstellen
Ein AlloyDB Omni-Datenbankcluster enthält alle Speicher- und Rechenressourcen, die zum Ausführen eines AlloyDB Omni-Servers erforderlich sind, einschließlich des primären Servers, aller Replikate und aller Daten.
Nachdem Sie den AlloyDB Omni-Operator in Ihrem Kubernetes-Cluster installiert haben, können Sie einen AlloyDB Omni-Datenbankcluster im Kubernetes-Cluster erstellen, indem Sie ein Manifest wie das folgende anwenden:
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
Ersetzen Sie Folgendes:
DB_CLUSTER_NAME
: der Name dieses Datenbankclusters, z. B.my-db-cluster
.DB_CLUSTER_NAMESPACE
(optional): der Namespace, in dem Sie den Datenbankcluster erstellen möchten, z. B.my-db-cluster-namespace
.ENCODED_PASSWORD
: Das Datenbank-Anmeldepasswort für die Standardnutzerrollepostgres
, codiert als Base64-String, z. B.Q2hhbmdlTWUxMjM=
fürChangeMe123
.CPU_COUNT
: die Anzahl der CPUs, die für jede Datenbankinstanz in diesem Datenbankcluster verfügbar sind.MEMORY_SIZE
: die Größe des Arbeitsspeichers pro Datenbankinstanz dieses Datenbankclusters. Wir empfehlen, diesen Wert auf 8 Gigabyte pro CPU festzulegen. Wenn Sie beispielsweisecpu
in diesem Manifest zuvor auf2
gesetzt haben, empfehlen wir,memory
auf16Gi
festzulegen.DISK_SIZE
: die Laufwerksgröße pro Datenbankinstanz, z. B.10Gi
.
Nachdem Sie dieses Manifest angewendet haben, enthält Ihr Kubernetes-Cluster einen AlloyDB Omni-Datenbankcluster mit der angegebenen Arbeitsspeicher-, CPU- und Speicherkonfiguration. Informationen zum Herstellen einer Testverbindung mit dem neuen Datenbankcluster finden Sie unter Verbindung über die vorinstallierte psql
herstellen.
Weitere Informationen zu Kubernetes-Manifesten und ihrer Anwendung finden Sie unter Ressourcen verwalten.
Nächste Schritte
- AlloyDB Omni ausführen und eine Verbindung herstellen
- AlloyDB Omni verwalten
- Hochverfügbarkeit in Kubernetes verwalten