Auf dieser Seite erhalten Sie einen Überblick über den AlloyDB Omni Kubernetes-Operator. Außerdem finden Sie eine Anleitung dazu, wie Sie damit AlloyDB Omni in einem Kubernetes-Cluster bereitstellen. Auf dieser Seite werden Grundkenntnisse im Umgang mit Kubernetes vorausgesetzt.
Eine Anleitung zum Installieren von AlloyDB Omni in einer Standard-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 kubectl
-Dienstprogramm kombinieren, genau wie bei jeder anderen Kubernetes-basierten Bereitstellung. Sie verwenden nicht die AlloyDB Omni-Befehlszeile, die für die Bereitstellung auf einzelnen Linux-Maschinen und nicht auf Kubernetes-Clustern vorgesehen ist.
Kompatibilität mit AlloyDB Omni Operator 1.1.0
Die AlloyDB Omni Operator-Version 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, erhalten Sie möglicherweise einen Fehler wie den folgenden:
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
kubectl
-Tool. - Der Paketmanager
helm
- Google Cloud CLI Nach der Installation der gcloud CLI müssen Sie Ihr 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%%/*}"
Laden Sie den AlloyDB Omni-Operator herunter:
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
Bei 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 für den AlloyDB Omni-Operator löschen. Die Datei hat den Namen
alloydbomni-operator-VERSION_NUMBER.tgz
und befindet sich in Ihrem aktuellen Arbeitsverzeichnis.
GDC Connected-Speicher konfigurieren
Wenn Sie den AlloyDB Omni-Operator auf einem GDC-verbundenen-Cluster installieren möchten, müssen Sie zusätzliche Schritte ausführen, um den Speicher zu konfigurieren, da für GDC-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.
Abstimmungsschritte für 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 haben und bevor Sie einen AlloyDB Omni-Datenbankcluster im Kubernetes-Cluster erstellen. Andernfalls können Sie diese Schritte überspringen.
Fügen Sie Berechtigungen hinzu, um Finalizer für AlloyDB Omni-Instanzen zu aktualisieren, indem Sie die Clusterrolle
system:controller:statefulset-controller
so bearbeiten:kubectl edit clusterrole system:controller:statefulset-controller
Hängen Sie im Texteditor Folgendes an das Ende der Clusterrolle an:
- 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 zum Aktualisieren von Instanz-Finalizern haben, die der Clusterrolle hinzugefügt wurden, da in Red Hat OpenShift OwnerReferencesPermissionEnforcement aktiviert ist. Ohne die Berechtigung zum Aktualisieren von Finalizern für Instanzen kann der StatefulSet-Controller den PersistentVolumeClaim (PVC) für die Datenbank nicht erstellen. In den Ereignissen des Datenbank-StatefulSets wird die folgende Fehlermeldung angezeigt:
Warning FailedCreate [...] cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on
Fügen Sie Berechtigungen zum Aktualisieren von Finalizern für AlloyDB Omni-DBInstance hinzu, indem Sie die Clusterrolle
fleet-manager-role
bearbeiten:kubectl edit clusterrole fleet-manager-role
Hängen Sie im Texteditor Folgendes an das Ende der Clusterrolle an:
- apiGroups: - alloydbomni.dbadmin.goog resources: - dbinstances/finalizers verbs: - update
Fügen Sie dem
default
-Dienstkonto in Ihrem Red Hat OpenShift-Projekt dieanyuid
-Sicherheitskontextbeschränkung hinzu:oc adm policy add-scc-to-user anyuid system:serviceaccount:OPENSHIFT_PROJECT:default
Sie müssen dem
default
-Dienstkonto die Verwendung deranyuid
-Sicherheitskontexteinschränkung erlauben, da der Init-Container im Datenbank-Pod als Root ausgeführt wird und die anderen Container mit bestimmten Nutzer-IDs ausgeführt werden. Ohne die Berechtigung zur Verwendung vonanyuid
kann der StatefulSet-Controller den PVC der Datenbank nicht erstellen. In den Ereignissen des Datenbank-StatefulSets wird die folgende Fehlermeldung angezeigt: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 Ihrer Daten.
Nachdem Sie den AlloyDB Omni-Operator auf Ihrem Kubernetes-Cluster installiert haben, können Sie einen AlloyDB Omni-Datenbankcluster auf dem Kubernetes-Cluster erstellen, indem Sie ein Manifest anwenden, das dem folgenden ähnelt:
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.5.5"
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
.ENCODED_PASSWORD
: Das Datenbankanmeldepasswort 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 Menge an Arbeitsspeicher pro Datenbankinstanz dieses Datenbankclusters. Wir empfehlen, diesen Wert auf 8 GB pro CPU festzulegen. Wenn Sie beispielsweisecpu
weiter oben in diesem Manifest auf2
gesetzt haben, empfehlen wir,memory
auf16Gi
zu setzen.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 Mit dem vorinstallierten psql
verbinden.
Weitere Informationen zu Kubernetes-Manifesten und dazu, wie Sie sie anwenden, finden Sie unter Ressourcen verwalten.
Nächste Schritte
- AlloyDB Omni ausführen und eine Verbindung dazu herstellen
- AlloyDB Omni verwalten
- Hochverfügbarkeit in Kubernetes verwalten