Usar un contenedor sidecar en Kubernetes

Selecciona una versión de la documentación:

Si tu base de datos se ejecuta en un clúster de Kubernetes, puedes añadir contenedores sidecar a tu clúster de base de datos mediante el operador AlloyDB Omni Kubernetes. Los contenedores sidecar del operador de AlloyDB Omni son contenedores de Kubernetes normales que se ejecutan de forma independiente junto con el contenedor de la aplicación principal en el mismo pod. Puedes usar estos contenedores sidecar para atender solicitudes de monitorización, registro y seguimiento de aplicaciones.

Los contenedores secundarios del operador de AlloyDB Omni son distintos de los contenedores secundarios integrados de Kubernetes.

Para añadir manualmente un contenedor sidecar a una instalación de AlloyDB Omni, crea un recurso personalizado (CR) sidecar y añádelo a tu clúster de base de datos.

Crear un CR de sidecar

  1. Aplica el siguiente archivo de manifiesto:

    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
    

    Sustituye las siguientes variables:

    • SIDECAR_CR_NAME: el nombre del contenedor sidecar.
    • CONTAINER_IMAGE: el nombre del archivo de imagen que se va a ejecutar en el contenedor sidecar. Por ejemplo, busybox.
    • CONTAINER_COMMAND: el comando del contenedor que se ejecuta en el pod. El comando puede ser una lista de cadenas entre comillas. Para obtener más información, consulta Definir un comando y argumentos al crear un pod.
    • CONTAINER_ARGS: argumentos de CONTAINER_COMMAND.
    • CONTAINER_NAME: el nombre del contenedor. Puedes tener varios contenedores en el mismo CR sidecar y cada contenedor tiene un nombre, una imagen, un comando y argumentos diferentes.
  2. Para verificar que se ha creado el CR sidecar, ejecuta el siguiente comando:

    kubectl describe Sidecar/SIDECAR_CR_NAME

    El resultado debería ser similar al siguiente:

    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>
    

Registrar un contenedor secundario

Para registrar el nombre del contenedor sidecar en tu clúster de base de datos, usa el siguiente comando para aplicar la especificación actualizada:

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

Sustituye las siguientes variables:

  • DB_CLUSTER_NAME: el nombre de tu clúster de bases de datos.
  • SIDECAR_CR_NAME: el nombre del contenedor secundario.

Acceder a los registros de un contenedor sidecar

  1. Crea o modifica un contenedor sidecar para que spec.sidecars.volumeMounts.name se defina como obsdisk y spec.sidecars.volumeMounts.mountPath como una ruta visible en el contenedor 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
    

    Haz los cambios siguientes:

    • SIDECAR_CR_NAME: el nombre del contenedor secundario.
    • CONTAINER_IMAGE: el nombre del archivo de imagen que se va a ejecutar en el contenedor sidecar. Por ejemplo, busybox.
    • CONTAINER_COMMAND: el comando del contenedor que se ejecuta en el pod. El comando puede ser una lista de cadenas entre comillas. Para obtener más información, consulta Definir un comando y argumentos al crear un pod.
    • CONTAINER_ARGS: los argumentos de CONTAINER_COMMAND.
    • CONTAINER_NAME: el nombre del contenedor. Puedes tener varios contenedores en el mismo CR de sidecar y cada contenedor tiene un nombre, una imagen, un comando y argumentos diferentes.
    • LOGS_PATH: la ruta del contenedor sidecar en la que AlloyDB Omni debe registrar los eventos.
  2. Registre el contenedor sidecar nuevo o modificado.

Siguientes pasos