Instala AlloyDB Omni en Kubernetes

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 para 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.

Para obtener instrucciones sobre cómo instalar AlloyDB Omni en un entorno estándar de Linux, consulta Instala AlloyDB Omni.

Descripción general

Para implementar AlloyDB Omni en un clúster de Kubernetes, instala el operador de AlloyDB Omni, una extensión de la API de Kubernetes que proporciona 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 cualquier otra implementación basada en Kubernetes. No uses 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.

Compatibilidad del operador de AlloyDB Omni 1.1.0 (y versiones posteriores)

El operador de AlloyDB Omni versión 1.1.0 no es compatible con las versiones 15.5.3 y 15.5.4 de AlloyDB Omni. Si usas una de estas versiones de AlloyDB Omni, es posible que recibas un error similar al siguiente:

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

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 de Kubernetes genérico, 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 del operador con paquetes 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 Entorno de contenedor de Kubernetes propio, por ejemplo, en la nube pública, local, GKE, Amazon EKS y Azure AKS.

Sugerencia: Si tu herramienta de CD (entrega continua) está integrada con Helm, usa esta opción.
Operador de AlloyDB Omni con paquete OLM OperatorHub.io Entorno de contenedor de Kubernetes propio, por ejemplo, en la nube pública, local, Google Kubernetes Engine, Amazon EKS y Azure AKS.

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

Sugerencia: Si tu herramienta de CD (entrega continua) ya usa OLM, elige esta opción.
Operador de OpenShift con paquete 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 y, luego, 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:

  • Un mínimo de dos CPUs x86 o AMD64
  • Al menos 8 GB de RAM
  • Versión 4.18 o posterior del kernel de Linux
  • Grupo de control (cgroup) v2 habilitado

Instala el operador de AlloyDB Omni

Puedes instalar el operador de AlloyDB Omni con diferentes métodos, incluidos Helm y el administrador del ciclo de vida del operador (OLM).

Helm

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

  1. Define las siguientes variables de entorno:
    export HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Descarga el operador de AlloyDB Omni:
    curl -X GET -o "./alloydbomni-operator-${OPERATOR_VERSION}.tgz" "https://storage.googleapis.com/storage/v1/b/alloydb-omni-operator/o/$(echo ${HELM_PATH} | sed 's/\//%2F/g')?alt=media"
    
  3. Instala el operador de AlloyDB Omni:
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    Una instalación exitosa muestra el siguiente resultado:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. Para realizar una limpieza, borra el archivo de instalación del operador de AlloyDB Omni descargado. El archivo se llama alloydbomni-operator-VERSION_NUMBER.tgz y se encuentra en tu directorio de trabajo actual.

OLM

Para instalar el operador de AlloyDB Omni con el administrador del ciclo de vida del operador, sigue estos pasos:

  1. Ve a https://operatorhub.io/operator/alloydb-omni-operator.

  2. Haz clic en el botón Install para mostrar las instrucciones.

  3. Completa todos los pasos de instalación.

  4. Este paso es opcional si usas emisores de certificados personalizados. De lo contrario, debes instalar los emisores de certificados predeterminados ejecutando los siguientes comandos:

    kubectl create ns NAMESPACE
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    Reemplaza NAMESPACE por el espacio de nombres en el que tienes tu operador, por ejemplo, alloydb-omni-system.

OLM

Para instalar el operador de AlloyDB Omni en tu entorno de Red Hat OpenShift con OLM, accede a la consola web de Red Hat OpenShift.

  1. Selecciona Operators > OperatorHub.

  2. Busca el operador de AlloyDB Omni con el campo de búsqueda.

    Central de operadores de AlloyDB Omni
    Figura 1: El operador de AlloyDB Omni en OperatorHub
  3. En el panel del operador de AlloyDB Omni, haz clic en Install.

    Panel del operador de AlloyDB Omni
    Figura 2: El panel del operador de AlloyDB Omni
  4. Este paso es opcional si usas emisores de certificados personalizados. De lo contrario, debes instalar los emisores de certificados predeterminados ejecutando los siguientes comandos:

    kubectl create ns NAMESPACE
    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: fleet-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: fleet-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - fleet-webhook-service.alloydb-omni-system.svc
      - fleet-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: fleet-selfsigned-issuer
      secretName: fleet-webhook-server-cert
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: local-selfsigned-issuer
      namespace: NAMESPACE
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: local-serving-cert
      namespace: NAMESPACE
    spec:
      dnsNames:
      - local-webhook-service.alloydb-omni-system.svc
      - local-webhook-service.alloydb-omni-system.svc.cluster.local
      issuerRef:
        kind: Issuer
        name: local-selfsigned-issuer
      secretName: local-webhook-server-cert
    EOF

    Reemplaza NAMESPACE por el espacio de nombres en el que tienes tu operador, por ejemplo, alloydb-omni-system.

Configura el almacenamiento conectado de GDC

Para instalar el operador de AlloyDB Omni en GDC conectado, debes seguir pasos adicionales para configurar el almacenamiento, ya que los clústeres de GDC conectado 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 obtener información sobre cómo establecer Symcloud Storage como la clase de almacenamiento predeterminada, consulta Establece Symcloud Storage como la clase de almacenamiento predeterminada.

Para obtener más información sobre cómo cambiar la configuración predeterminada 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.

Para crear un clúster de base de datos de AlloyDB Omni, sigue estos pasos:

  1. Crea un espacio de nombres dedicado para tu clúster de base de datos. Esto mejora el aislamiento y la seguridad.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    Reemplaza DB_CLUSTER_NAMESPACE por el espacio de nombres en el que quieres crear el clúster de base de datos, por ejemplo, my-db-cluster-namespace.

  2. Crea un archivo de manifiesto llamado db-cluster.yaml con el siguiente contenido: En este manifiesto, se define el secreto de la contraseña de la base de datos y el recurso DBCluster.

    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.5.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_SIZE
    

    Reemplaza lo siguiente:

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

    • OS_TYPE: Opcional El tipo de sistema operativo base para la imagen de la base de datos. Los valores válidos son Debian y UBI9. Si no especificas esto, el operador lo establece automáticamente en Debian si databaseVersion es inferior a 16.9.0 y en UBI9 si databaseVersion es 16.9.0 o posterior.

    • 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.

  3. Aplica el manifiesto a tu clúster de Kubernetes:

    kubectl apply -f db-cluster.yaml
    

Después de aplicar este manifiesto, tu clúster de Kubernetes contiene 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.

¿Qué sigue?