Instala AlloyDB Omni con el organizador de contenedores

Selecciona una versión de la documentación:

En esta página, se proporciona una descripción general del operador de Kubernetes de AlloyDB Omni, con instrucciones para usarlo y, así, implementar AlloyDB Omni en un clúster de Kubernetes. En esta página, se supone que tienes conocimientos básicos sobre el funcionamiento de Kubernetes.

Si deseas obtener instrucciones para instalar AlloyDB Omni en un entorno Linux estándar, consulta Cómo instalar AlloyDB Omni.

Descripción general

Para implementar AlloyDB Omni en un clúster de Kubernetes, instala el operador de Kubernetes de AlloyDB Omni, una extensión de la API de Kubernetes proporcionada por Google.

Para configurar y controlar un clúster de base de datos de AlloyDB Omni basado en Kubernetes, debes vincular archivos de manifiesto declarativos con la utilidad kubectl, al igual que con cualquier otra implementación basada en Kubernetes. No usas la CLI de AlloyDB Omni, que está diseñada para implementaciones en máquinas Linux individuales y no en clústeres de Kubernetes.

Imagen base

A partir de la versión 1.5.0, las imágenes de Kubernetes del operador de AlloyDB Omni se compilan en la imagen base universal (UBI) 9 de Red Hat. Esta transición mejora la seguridad, la coherencia y el cumplimiento de tus implementaciones.

Referencias de imágenes de resúmenes SHA

Para evitar ataques de suministro y cumplir con los requisitos de certificación de OpenShift, el operador de AlloyDB Omni usa resúmenes SHA-256 en lugar de etiquetas de versión para todas las referencias de imágenes de contenedores.

  • Actualizaciones automáticas: El operador de AlloyDB Omni usa un ImageCatalog interno para administrar estos resúmenes y garantizar reversiones confiables del plano de datos durante las actualizaciones fallidas.

  • Habilitación: Si bien está habilitado de forma predeterminada para el paquete certificado de OpenShift, los usuarios de los paquetes de OLM o Helm pueden habilitar manualmente las referencias de resúmenes estableciendo la variable de entorno ENABLE_DIGEST_IMAGE_REFS en true con la configuración de suscripción para OLM o el valor enableDigestImageRefs en el gráfico de Helm.

Antes de comenzar

Antes de instalar AlloyDB Omni en un clúster de Kubernetes con el operador de AlloyDB Omni, asegúrate de cumplir con los siguientes requisitos.

Elige una opción de descarga o instalación

Cuando administras cargas de trabajo en un clúster genérico de Kubernetes, puedes usar Helm o OLM. Helm es un administrador de paquetes universal que usa gráficos de Helm para instalar cualquier carga de trabajo, incluidos los operadores, en todas las variantes de Kubernetes. OLM, la opción estándar y preferida en las plataformas de OpenShift, administra los ciclos de vida de los operadores con paquetes de OLM especializados.

Según tu entorno y tus herramientas, elige uno de los siguientes métodos de implementación:

Medios Ubicaciones de descarga y guías de instalación Implementación en
Operador de AlloyDB Omni con gráfico de Helm Instala AlloyDB Omni en Kubernetes Tu propio entorno de contenedores de Kubernetes, por ejemplo, en instalaciones locales, nubes públicas, GKE, Amazon EKS y Azure AKS

Nota: Si tus herramientas de CD (entrega continua) están integradas con Helm, usa esta opción.
Operador de AlloyDB Omni con paquete de OLM OperatorHub.io Tu propio entorno de contenedores de Kubernetes (por ejemplo, en las instalaciones, en nubes públicas, en Google Kubernetes Engine, en Amazon EKS y en Azure AKS)

Para usar un paquete de OLM, instala OLM en el clúster de Kubernetes antes de instalar el operador. Para obtener más información, consulta olm.operatorframework.io.

Nota: Si tus herramientas de CD (entrega continua) ya usan OLM, elige esta opción.
Operador de OpenShift con paquete de OLM Consola web de Openshift Container Platform Entorno de OpenShift

OpenShift, una variante de Kubernetes, usa OLM como su método estándar integrado para empaquetar e implementar operadores.

Verifica el acceso

Verifica que tengas acceso a lo siguiente:

Cumple con los requisitos de hardware y software

Cada nodo del clúster de Kubernetes debe tener lo siguiente:

  • Al menos dos CPUs x86 o AMD64
  • Al menos 8 GB de RAM
  • Versión 4.18 o posterior del kernel de Linux
  • El grupo de control (cgroup) v2 está habilitado.

Instala el operador de AlloyDB Omni

Si deseas implementar AlloyDB Omni en tu entorno de producción, consulta Cómo ejecutar AlloyDB Omni en producción.

Puedes instalar el operador de AlloyDB Omni con diferentes métodos, incluidos Helm y Operator Lifecycle Manager (OLM).

Helm

Para instalar el operador de AlloyDB Omni, sigue estos pasos:

  1. Instala el operador de AlloyDB Omni desde el registro de OCI:
    helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \
    --version 1.8.0 \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    Si la instalación se realiza correctamente, se muestra el siguiente resultado:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    

OLM

Para instalar el operador de AlloyDB Omni con Operator Lifecycle Manager, sigue estos pasos:

  1. Ve a la página Operador de AlloyDB Omni.

  2. Haz clic en Instalar. Si aún no lo hiciste, sigue las instrucciones para instalar solo el operador de OLM y el catálogo de OperatorHub.io.

  3. Crea el espacio de nombres alloydb-omni-system si aún no existe.

    kubectl create ns alloydb-omni-system
    
  4. Configura el OLM OperatorGroup para asegurarte de que el operador tenga alcance de clúster.

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: operator-sdk-og
      namespace: alloydb-omni-system
    spec:
      upgradeStrategy: Default
    EOF
    
  5. Instala el operador con un recurso de suscripción de OLM.

    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
    
  6. Instala el certificado predeterminado ClusterIssuer. Este paso es opcional si usas emisores de certificados personalizados.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

OLM

Para instalar el operador de AlloyDB Omni en tu entorno de Red Hat OpenShift con OLM, sigue estos pasos:

  1. Accede a tu consola web de Red Hat OpenShift.
  2. En el caso de los usuarios sin conexión o desconectados, debes duplicar manualmente las imágenes requeridas en tu registro privado con herramientas que conserven los resúmenes SHA, como oc image mirror. Debes configurar un ImageDigestMirrorSet para redireccionar las extracciones de imágenes del repositorio público gcr.io a tu registro privado. Esto garantiza que el operador de AlloyDB Omni pueda extraer las imágenes requeridas con sus resúmenes SHA256 inmutables.
  3. En la consola web de OpenShift, navega a Operators > OperatorHub. El operador de AlloyDB Omni aparece en los catálogos Certificado y Comunidad.

  4. En el panel del operador de AlloyDB Omni, haz clic en Install.

  5. Instala el certificado predeterminado ClusterIssuer ejecutando los siguientes comandos. Este paso es opcional si usas emisores de certificados personalizados.

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

Configura el almacenamiento de GDC conectado

Para instalar el operador de AlloyDB Omni en GDC connected, debes seguir pasos adicionales para configurar el almacenamiento, ya que los clústeres de GDC connected no establecen una clase de almacenamiento predeterminada. Debes establecer una clase de almacenamiento predeterminada antes de crear un clúster de base de datos de AlloyDB Omni.

Para aprender a configurar Symcloud Storage como la clase de almacenamiento predeterminada, consulta Cómo configurar Symcloud Storage como la clase de almacenamiento predeterminada.

Si deseas obtener más información para cambiar el valor predeterminado de todas las demás clases de almacenamiento, consulta Cambia el recurso StorageClass predeterminado.

Crea un clúster de base de datos

Un clúster de base de datos de AlloyDB Omni contiene todos los recursos de almacenamiento y procesamiento necesarios para ejecutar un servidor de AlloyDB Omni, incluido el servidor principal, las réplicas y todos tus datos.

Después de instalar el operador de AlloyDB Omni en tu clúster de Kubernetes, puedes crear un clúster de base de datos de AlloyDB Omni en el clúster de Kubernetes aplicando un manifiesto similar al siguiente:

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: "18.3.0"
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DB_CLUSTER_NAME
    resources:
      cpu: CPU_COUNT
      memory: MEMORY_SIZE
      disks:
      - name: DataDisk
        size: DISK_SIZE

Reemplaza lo siguiente:

  • DB_CLUSTER_NAME: Es el nombre de este clúster de base de datos, por ejemplo, my-db-cluster.

  • ENCODED_PASSWORD: Es la contraseña de acceso a la base de datos del rol de usuario postgres predeterminado, codificada como una cadena base64 (por ejemplo, Q2hhbmdlTWUxMjM= para ChangeMe123).

  • CPU_COUNT: Es la cantidad de CPU disponibles para cada instancia de base de datos en este clúster de base de datos.

  • MEMORY_SIZE: Es la cantidad de memoria por instancia de base de datos de este clúster de base de datos. Recomendamos establecer este valor en 8 gigabytes por CPU. Por ejemplo, si estableciste cpu en 2 anteriormente en este manifiesto, te recomendamos que establezcas memory en 16Gi.

  • DISK_SIZE: Es el tamaño del disco por instancia de base de datos, por ejemplo, 10Gi.

Después de aplicar este manifiesto, tu clúster de Kubernetes contendrá un clúster de base de datos de AlloyDB Omni con la configuración de memoria, CPU y almacenamiento especificada. Para establecer una conexión de prueba con el nuevo clúster de base de datos, consulta Conéctate con psql preinstalado.

Para obtener más información sobre los manifiestos de Kubernetes y cómo aplicarlos, consulta Administra recursos.

Cómo escalar un clúster de base de datos

Para ajustar los recursos de procesamiento de tu clúster de base de datos, actualiza los valores de cpu y memory en tu manifiesto de db-cluster.yaml y aplica los cambios. El proceso de ajuste de escala depende de si optas por una operación de ajuste de escala normal o una con un tiempo de inactividad bajo.

Ajuste de escala regular

Cuando actualizas la especificación de escalamiento y aplicas el manifiesto sin ninguna otra configuración, los Pods de la base de datos se reinician de inmediato. Esto genera un breve tiempo de inactividad en las instancias principal y en espera mientras se aplican las nuevas asignaciones de recursos.

Escalamiento con tiempo de inactividad bajo

En el caso de los clústeres de alta disponibilidad (HA) con al menos un nodo en espera, puedes minimizar el tiempo de inactividad durante el ajuste de escala con la estrategia de preparación y cambio de Low Downtime Maintenance (LDTM). Esta estrategia aplica los cambios de escalamiento primero a la instancia en espera, realiza un cambio rápido y, luego, aplica los cambios a la instancia principal original. Puedes escalar verticalmente o disminuir la escala con la estrategia del LDTM.

Para habilitar y supervisar el ajuste de escala con un tiempo de inactividad bajo, sigue estos pasos:

  1. Habilita el ajuste de escala con un tiempo de inactividad bajo. Agrega la anotación enableLDTM a tu clúster de base de datos:

    kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
    

    Reemplaza DB_CLUSTER_NAME por el nombre de tu clúster de base de datos.

  2. Aplica las especificaciones de escalamiento actualizadas. Actualiza los valores de cpu y memory en primarySpec.resources en tu manifiesto y aplica los cambios:

    kubectl apply -f db-cluster.yaml
    
  3. Supervisa el proceso de ajuste de escala. Verifica la condición de estado LDTMScalingInProgress para supervisar la operación:

    kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "LDTMScalingInProgress")'
    

    Reemplaza DB_CLUSTER_NAME por el nombre de tu clúster de base de datos.

    Mientras el proceso está en curso, el estado es true. Cuando se completa el ajuste de escala, el estado de la condición cambia a false.

Limitaciones

  • El ajuste de escala de LDTM solo se admite para clústeres de HA con al menos un servidor en espera.
  • No puedes realizar dos operaciones de LDTM de forma simultánea. Por ejemplo, puedes usar LDTM para escalar clústeres de bases de datos o para realizar actualizaciones de versiones secundarias, pero no ambas al mismo tiempo.
  • Debes revertir manualmente la operación de ajuste de escala del LDTM después de que falle.

¿Qué sigue?