Utiliser un conteneur sidecar dans Kubernetes

Si votre base de données s'exécute dans un cluster Kubernetes, vous pouvez ajouter des conteneurs sidecar à votre cluster de base de données à l'aide de l'opérateur Kubernetes AlloyDB Omni. Les conteneurs side-car de l'opérateur AlloyDB Omni sont des conteneurs Kubernetes standards qui s'exécutent indépendamment à côté du conteneur d'application principal dans le même pod. Vous pouvez utiliser ces conteneurs sidecar pour répondre aux requêtes de surveillance, de journalisation et de traçage des applications.

Les conteneurs sidecar de l'opérateur AlloyDB Omni sont distincts des conteneurs sidecar intégrés à Kubernetes.

Pour ajouter manuellement un conteneur sidecar à une installation AlloyDB Omni existante, vous devez créer une ressource personnalisée (CR) sidecar et l'ajouter à votre cluster de base de données.

Créer une demande de correction pour un sidecar

  1. Appliquez le fichier manifeste suivant:

    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
    

    Remplacez les variables suivantes :

    • SIDECAR_CR_NAME: nom de votre conteneur side-car.
    • CONTAINER_IMAGE: nom du fichier image à exécuter dans votre conteneur side-car. Exemple :busybox
    • CONTAINER_COMMAND: commande du conteneur exécuté dans le pod. La commande peut être une liste de chaînes entre guillemets. Pour en savoir plus, consultez la section Définir une commande et des arguments lors de la création d'un pod.
    • CONTAINER_ARGS: arguments pour CONTAINER_COMMAND.
    • CONTAINER_NAME: nom du conteneur. Vous pouvez avoir plusieurs conteneurs dans le même CR de sidecar, et chaque conteneur a un nom, une image, une commande et des arguments différents.
  2. Pour vérifier que le CR de sidecar a été créé, exécutez la commande suivante:

    kubectl describe Sidecar/SIDECAR_CR_NAME

    Le résultat ressemble à ce qui suit :

    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>
    

Enregistrer un conteneur side-car

Pour enregistrer le nom du conteneur de sidecar dans votre cluster de base de données, utilisez la commande suivante pour appliquer la spécification mise à jour:

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

Remplacez les variables suivantes :

  • DB_CLUSTER_NAME: nom de votre cluster de base de données.
  • SIDECAR_CR_NAME: nom de votre conteneur side-car.

Accéder aux journaux d'un conteneur sidecar

  1. Créez ou modifiez un conteneur sidecar existant afin que spec.sidecars.volumeMounts.name soit défini sur obsdisk et spec.sidecars.volumeMounts.mountPath sur un chemin visible dans le conteneur sidecar.

      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
    

    Remplacez les éléments suivants :

    • SIDECAR_CR_NAME: nom de votre conteneur side-car.
    • CONTAINER_IMAGE: nom du fichier image à exécuter dans votre conteneur side-car. Exemple :busybox
    • CONTAINER_COMMAND: commande du conteneur exécuté dans le pod. La commande peut être une liste de chaînes entre guillemets. Pour en savoir plus, consultez la section Définir une commande et des arguments lors de la création d'un pod.
    • CONTAINER_ARGS: arguments pour CONTAINER_COMMAND.
    • CONTAINER_NAME: nom du conteneur. Vous pouvez avoir plusieurs conteneurs dans le même CR de sidecar, et chaque conteneur a un nom, une image, une commande et des arguments différents.
    • LOGS_PATH: chemin d'accès dans le conteneur sidecar vers lequel AlloyDB Omni doit générer des journaux.
  2. Enregistrez votre conteneur sidecar nouveau ou modifié.

Étape suivante