Sidecar-Container in Kubernetes verwenden

Wenn Ihre Datenbank in einem Kubernetes-Cluster ausgeführt wird, können Sie Ihrem Datenbankcluster mit dem AlloyDB Omni Kubernetes-Operator Sidecar-Container hinzufügen. AlloyDB Omni-Betreiber-Sidecar-Container sind reguläre Kubernetes-Container, die unabhängig neben dem Hauptanwendungscontainer im selben Pod ausgeführt werden. Sie können diese Sidecar-Container verwenden, um Anfragen für das Monitoring, Logging und Tracing von Anwendungen zu bedienen.

Die Sidecar-Container des AlloyDB Omni-Operators unterscheiden sich von den in Kubernetes integrierten Sidecar-Containern.

Wenn Sie einer vorhandenen AlloyDB Omni-Installation manuell einen Sidecar-Container hinzufügen möchten, erstellen Sie eine benutzerdefinierte Sidecar-Ressource (CR) und fügen Sie sie Ihrem Datenbankcluster hinzu.

Sidecar-CR erstellen

  1. Wenden Sie das folgende Manifest an:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: Sidecar
    metadata:
      name: SIDECAR_CR_NAME
    spec:
      sidecars:
      - image: CONTAINER_IMAGE
        command: ["CONTAINER_COMMAND"]
        args: ["CONTAINER_ARGS"]
        name: CONTAINER_NAME
    

    Ersetzen Sie die folgenden Variablen:

    • SIDECAR_CR_NAME: der Name des Sidecar-Containers.
    • CONTAINER_IMAGE: Der Name der Imagedatei, die in Ihrem Sidecar-Container ausgeführt werden soll. Beispiel: busybox.
    • CONTAINER_COMMAND: Der Befehl für den Container, der im Pod ausgeführt wird. Der Befehl kann eine Liste von Anführungszeichen enthalten. Weitere Informationen finden Sie unter Befehl und Argumente beim Erstellen eines Pods definieren.
    • CONTAINER_ARGS: Argumente für CONTAINER_COMMAND.
    • CONTAINER_NAME: der Name des Containers. Sie können mehrere Container in derselben Sidecar-Konfigurationsdatei haben. Jeder Container hat einen anderen Containernamen, ein anderes Image, einen anderen Befehl und andere Argumente.
  2. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Sidecar-Kopie erstellt wurde:

    kubectl describe Sidecar/SIDECAR_CR_NAME

    Die Ausgabe sieht etwa so aus:

    Name:  SIDECAR_CR_NAME
    Labels:       <none>
    Annotations:  <none>
    API Version:  alloydbomni.dbadmin.goog/v1
    Kind:         Sidecar
    Metadata:
      Creation Timestamp:  2024-04-15T21:49:00Z
      Finalizers:
        sidecars.dbadmin.goog/finalizer
      Generation:        2
      Resource Version:  2561336
      UID:               e57f2e13-20c5-4905-b13b-39203bab36b4
    Spec:
      Sidecars:
        Args:
          CONTAINER_ARGS
        Command:
          CONTAINER_COMMAND
        Image:  CONTAINER_IMAGE
        Name:   CONTAINER_NAME
        Resources:
    Status:
      Observed Generation:  2
      Reconciled:           true
    Events:                 <none>
    

Sidecar-Container registrieren

Um den Namen des Sidecar-Containers bei Ihrem Datenbankcluster zu registrieren, wenden Sie die aktualisierte Spezifikation mit dem folgenden Befehl an:

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"primarySpec":{"sidecarRef":{"name":"SIDECAR_CR_NAME"}}}}' --type=merge

Ersetzen Sie die folgenden Variablen:

  • DB_CLUSTER_NAME: Der Name Ihres Datenbankclusters.
  • SIDECAR_CR_NAME: der Name Ihres Sidecar-Containers.

Zugriff auf Protokolle aus einem Sidecar-Container

  1. Erstellen oder ändern Sie einen vorhandenen Sidecar-Container so, dass spec.sidecars.volumeMounts.name auf obsdisk und spec.sidecars.volumeMounts.mountPath auf einen Pfad festgelegt ist, der im Sidecar-Container sichtbar ist.

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: Sidecar
      metadata:
        name: SIDECAR_CR_NAME
      spec:
        sidecars:
        - image: CONTAINER_IMAGE
          command: ["CONTAINER_COMMAND"]
          args: ["CONTAINER_ARGS"]
          name: CONTAINER_NAME
          volumeMounts:
            - name: obsdisk
              mountPath: LOGS_PATH
    

    Ersetzen Sie Folgendes:

    • SIDECAR_CR_NAME: der Name des Sidecar-Containers.
    • CONTAINER_IMAGE: der Name der Imagedatei, die in Ihrem Sidecar-Container ausgeführt werden soll. Beispiel: busybox.
    • CONTAINER_COMMAND: Der Befehl für den Container, der im Pod ausgeführt wird. Der Befehl kann eine Liste von Anführungszeichen enthalten. Weitere Informationen finden Sie unter Befehl und Argumente beim Erstellen eines Pods definieren.
    • CONTAINER_ARGS: die Argumente für CONTAINER_COMMAND.
    • CONTAINER_NAME: der Name des Containers. Sie können mehrere Container im selben Sidecar-CR haben. Jeder Container hat einen anderen Containernamen, ein anderes Image, einen anderen Befehl und andere Argumente.
    • LOGS_PATH: der Pfad innerhalb des Sidecar-Containers, in dem AlloyDB Omni Protokolle ausgeben soll.
  2. Registrieren Sie Ihren neuen oder geänderten Sidecar-Container.

Nächste Schritte