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 Kubernetes-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 kombinieren, genau wie bei jeder anderen Kubernetes-basierten Bereitstellung. Sie verwenden nicht die AlloyDB Omni CLI, die für die Bereitstellung auf einzelnen Linux-Maschinen und nicht auf Kubernetes-Clustern vorgesehen ist.
Basis-Image
Ab Version 1.5.0 basieren die Kubernetes-Images des AlloyDB Omni-Operators auf dem Universal Base Image (UBI) 9 von Red Hat. Diese Umstellung verbessert die Sicherheit, Konsistenz und Compliance Ihrer Bereitstellungen.
Image-Referenzen mit SHA-Digest
Um Angriffe auf die Lieferkette zu verhindern und die Anforderungen der OpenShift-Zertifizierung zu erfüllen, verwendet der AlloyDB Omni-Operator SHA-256-Digests anstelle von Versionstags für alle Container-Image-Referenzen.
Automatische Upgrades: Der AlloyDB Omni-Operator verwendet einen internen ImageCatalog, um diese Digests zu verwalten und zuverlässige Rollbacks der Datenebene bei fehlgeschlagenen Upgrades zu gewährleisten.
Aktivierung: Für das OpenShift-zertifizierte Paket ist diese Funktion standardmäßig aktiviert. Nutzer der OLM- oder Helm-Pakete können Digest-Referenzen manuell aktivieren, indem sie die
ENABLE_DIGEST_IMAGE_REFSUmgebungsvariable auftruesetzen, indem sie die Abo-Konfiguration für OLM oder den WertenableDigestImageRefsim Helm-Diagramm verwenden.
Hinweis
Bevor Sie AlloyDB Omni in einem Kubernetes-Cluster mit dem AlloyDB Omni-Operator installieren, müssen Sie die folgenden Anforderungen erfüllen.
Download- oder Installationsoption auswählen
Wenn Sie Arbeitslasten in einem generischen Kubernetes-Cluster verwalten, können Sie entweder Helm oder OLM verwenden. Helm ist ein universeller Paketmanager, mit dem Sie mit Helm-Diagrammen beliebige Arbeitslasten, einschließlich Operatoren, in allen Kubernetes-Varianten installieren können. OLM ist die Standardoption auf OpenShift-Plattformen und verwaltet Operator-Lebenszyklen mit speziellen OLM-Bundles.
Wählen Sie je nach Umgebung und Tools eine der folgenden Bereitstellungsmethoden aus:
| Medien | Downloadorte und Installationsanleitungen | Bereitstellung für |
|---|---|---|
| AlloyDB Omni-Operator mit Helm-Diagramm | AlloyDB Omni in Kubernetes installieren | Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B.
lokal, in öffentlichen Clouds, in GKE, Amazon EKS und
Azure AKS. Tipp:Wenn Ihre CD-Tools (Continuous Delivery) in Helm integriert sind, verwenden Sie diese Option. |
| AlloyDB Omni-Operator mit OLM-Bundle | OperatorHub.io | Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B.
lokal, in öffentlichen Clouds, in Google Kubernetes Engine, Amazon EKS und Azure
AKS. Wenn Sie ein OLM-Bundle verwenden möchten, installieren Sie OLM im Kubernetes-Cluster, bevor Sie den Operator installieren. Weitere Informationen finden Sie unter olm.operatorframework.io. Tipp:Wenn Ihre CD-Tools (Continuous Delivery) bereits OLM verwenden, wählen Sie diese Option aus. |
| OpenShift-Operator mit OLM-Bundle | Openshift Container Platform Web Console | OpenShift-Umgebung OpenShift, eine Variante von Kubernetes, verwendet OLM als Standardmethode zum Verpacken und Bereitstellen von Operatoren. |
Zugriff überprüfen
Prüfen Sie, ob Sie Zugriff auf Folgendes haben:
Einen Kubernetes-Cluster mit der folgenden Software:
- Kubernetes-Version 1.21 oder höher
- Den Dienst
cert-manager, der mit Helm installiert wurde
Eine bekannte Race-Bedingung in
cert-managerkann dazu führen, dass die Zertifikatsausstellung fehlschlägt. Um die Wahrscheinlichkeit dieses Problems zu verringern, konfigurieren Sie dencert-manager-Controller mit den empfohlenen Einstellungen. Weitere Informationen finden Sie unter Fehler bei der Zertifikatsausstellung in cert-manager beheben.
Hardware- und Softwareanforderungen erfüllen
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
- Aktivierte Kontrollgruppe (cgroup) v2
AlloyDB Omni-Operator installieren
Sie können den AlloyDB Omni-Operator mit verschiedenen Methoden installieren, z. B. mit Helm und dem Operator Lifecycle Manager (OLM).
Helm
So installieren Sie den AlloyDB Omni-Operator:
- Installieren Sie den AlloyDB Omni-Operator aus der OCI-Registry:
helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \ --version 1.9.0 \ --create-namespace \ --namespace alloydb-omni-system \ $(helm install --help | grep -q -- '--rollback-on-failure' && echo '--rollback-on-failure' || echo '--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
OLM
So installieren Sie den AlloyDB Omni-Operator mit dem Operator Lifecycle Manager:
Rufen Sie die Seite AlloyDB Omni-Operator auf.
Klicken Sie auf Installieren. Wenn Sie dies noch nicht getan haben, befolgen Sie die Anweisungen, um nur den OLM-Operator und den OperatorHub.io-Katalog zu installieren.
Erstellen Sie den Namespace
alloydb-omni-system, falls er noch nicht vorhanden ist.kubectl create ns alloydb-omni-system
Richten Sie die OLM-
OperatorGroupein, damit der Operator clusterweit gilt.kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: operator-sdk-og namespace: alloydb-omni-system spec: upgradeStrategy: Default EOF
Installieren Sie den Operator mit einer OLM-Aboressource.
kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: my-alloydb-omni-operator namespace: alloydb-omni-system spec: channel: stable name: alloydb-omni-operator source: operatorhubio-catalog sourceNamespace: olm EOF
Installieren Sie das Standardzertifikat
ClusterIssuer. Dieser Schritt ist optional, wenn Sie benutzerdefinierte Zertifikatsaussteller verwenden.kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
OLM
So installieren Sie den AlloyDB Omni-Operator in Ihrer Red Hat OpenShift-Umgebung mit OLM:
- Melden Sie sich in der Red Hat OpenShift-Webkonsole an.
- Für Offline- oder getrennte Nutzer müssen Sie die
erforderlichen Images mit Tools, die SHA
Digests beibehalten, manuell in Ihre private Registry spiegeln, z. B. mit
oc image mirror. Sie müssen einImageDigestMirrorSetkonfigurieren, um Image-Pulls aus dem öffentlichengcr.ioRepository in Ihre private Registry umzuleiten. So wird sichergestellt, dass der AlloyDB Omni-Operator die erforderlichen Images mit ihren unveränderlichen SHA256-Digests abrufen kann. Gehen Sie in der OpenShift-Webkonsole zu Operators > OperatorHub. Der AlloyDB Omni-Operator ist in den Katalogen Certified und Community aufgeführt.
Klicken Sie im Bereich des AlloyDB Omni-Operators auf Installieren.
Installieren Sie das Standardzertifikat
ClusterIssuer. Dieser Schritt ist optional, wenn Sie benutzerdefinierte Zertifikatsaussteller verwenden.kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
GDC Connected Storage konfigurieren
Wenn Sie den AlloyDB Omni-Operator auf einem GDC Connected-Cluster installieren möchten, müssen Sie zusätzliche Schritte ausführen, um den Speicher zu konfigurieren, da für GDC Connected-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-Speicherklasse ändern.
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.
So erstellen Sie einen AlloyDB Omni-Datenbankcluster:
Erstellen Sie einen dedizierten Namespace für Ihren Datenbankcluster. Dadurch werden Isolation und Sicherheit verbessert.
kubectl create namespace DB_CLUSTER_NAMESPACEErsetzen Sie
DB_CLUSTER_NAMESPACEdurch den Namespace, in dem Sie den Datenbankcluster erstellen möchten, z. B.my-db-cluster-namespace.Erstellen Sie eine Manifestdatei mit dem Namen
db-cluster.yamlund dem folgenden Inhalt. Dieses Manifest definiert sowohl das Secret für das Datenbankpasswort als auch die DBCluster-Ressource selbst.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: "17.10.0" # Optional: Specify the base OS type for the database image. # Valid values are "Debian" and "UBI9". # If not specified, the operator defaults to "Debian" for databaseVersion < 16.9.0 # and "UBI9" for databaseVersion 16.9.0 or later. # databaseImageOSType: "OS_TYPE" primarySpec: adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME resources: cpu: CPU_COUNT memory: MEMORY_SIZE disks: - name: DataDisk size: DISK_SIZEErsetzen Sie Folgendes:
DB_CLUSTER_NAME: Der Name dieses Datenbankclusters, z. B.my-db-cluster.OS_TYPE: Optional. Der Typ des Basisbetriebssystems für das Datenbank-Image. Gültige Werte sindDebianundUBI9. Wenn Sie nichts angeben, wird der Wert vom Operator automatisch aufDebiangesetzt, wenndatabaseVersionkleiner als16.9.0ist, und aufUBI9, wenndatabaseVersion16.9.0oder höher ist.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 Menge an Arbeitsspeicher pro Datenbankinstanz dieses Datenbankclusters. Wir empfehlen, diesen Wert auf 8 GB pro CPU festzulegen. Wenn Sie beispielsweisecpuweiter oben in diesem Manifest auf2gesetzt haben, empfehlen wir,memoryauf16Gizu setzen.DISK_SIZE: Die Laufwerksgröße pro Datenbankinstanz, z. B.10Gi.
Wenden Sie das Manifest auf Ihren Kubernetes-Cluster an:
kubectl apply -f db-cluster.yaml
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 psqlverbinden.
Weitere Informationen zu Kubernetes-Manifesten und dazu, wie Sie sie anwenden, finden Sie unter Ressourcen verwalten.
Secrets für das Abrufen von Images
Wenn Sie eine private Registry für Ihre Container-Images verwenden, können Sie
die Secrets für das Abrufen von Images
für Ihren Datenbankcluster angeben. Der AlloyDB Omni-Operator überträgt die Secrets für das Abrufen von Images an das Dienstkonto des Datenbankclusters mit dem Namen
DB_CLUSTER_NAME-sa.
Wenn Sie Secrets für das Abrufen von Images konfigurieren möchten, geben Sie die Secret-Namen in der Spezifikation Ihres Datenbankclusters an. Das Secret muss sich im selben Namespace wie der Datenbankcluster befinden.
spec:
primarySpec:
serviceAccount:
imagePullSecrets:
- name: PULL_SECRET_NAME
Ersetzen Sie PULL_SECRET_NAME durch den Namen des Secrets für das Abrufen von Images.
Nächste Schritte
- Speicher- und PVC-Größen planen
- AlloyDB Omni ausführen und eine Verbindung dazu herstellen
- AlloyDB Omni verwalten
- Hochverfügbarkeit in Kubernetes verwalten