Instalar AlloyDB Omni en Kubernetes

Selecciona una versión de la documentación:

En esta página se ofrece una descripción general del operador AlloyDB Omni Kubernetes, con instrucciones para usarlo y desplegar AlloyDB Omni en un clúster de Kubernetes. En esta página se da por supuesto que tienes conocimientos básicos sobre el funcionamiento de Kubernetes.

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

Información general

Para desplegar AlloyDB Omni en un clúster de Kubernetes, instala el operador 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 AlloyDB Omni basado en Kubernetes, empareja archivos de manifiesto declarativos con la utilidad kubectl, al igual que con cualquier otro despliegue basado 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 basan 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 con el operador 1.1.0 (y versiones posteriores) de AlloyDB Omni

La versión 1.1.0 del operador AlloyDB Omni 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 empezar

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

Elige una opción de descarga o instalación

Elige una de las siguientes opciones de descarga e instalación:

Medios de comunicación Ubicaciones de descarga y guías de instalación Despliegue en
Operador de OpenShift con paquete OLM Consola web de OpenShift Container Platform Entorno de OpenShift
Operador de Kubernetes con paquete OLM Artifacthub.io Usa tu propio entorno de contenedores de Kubernetes, como entornos locales, nubes públicas, Google Kubernetes Engine, Amazon EKS y Azure AKS.
Operador de Kubernetes con gráfico de Helm Instalar AlloyDB Omni en Kubernetes (esta página) Entorno de contenedor de Kubernetes propio, por ejemplo, on-premise, nubes públicas, GKE, Amazon EKS y Azure AKS.

Verificar acceso

Verifica que tienes acceso a lo siguiente:

Cumplir 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.
  • Se ha habilitado la versión 2 del grupo de control (cgroup).

Instalar el operador de AlloyDB Omni

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

Helm

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

  1. Define las siguientes variables de entorno:
    export GCS_BUCKET=alloydb-omni-operator
    export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Descarga el operador de AlloyDB Omni:
    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
    
  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
    

    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
    
  4. Para limpiar, elimina el archivo de instalación del operador de AlloyDB Omni descargado. El archivo se llama alloydbomni-operator-VERSION_NUMBER.tgz y se encuentra en el directorio de trabajo actual.

OLM

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

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

  2. Haz clic en el botón Instalar para ver las instrucciones.

  3. Completa todos los pasos de instalación.

  4. Después de instalar el operador AlloyDB Omni, crea manualmente los recursos de cert-manager en tu clúster. Es un requisito. Utiliza estos 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

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

OLM

Para instalar el operador AlloyDB Omni en tu entorno Red Hat OpenShift con OLM, inicia sesión en la consola web de Red Hat OpenShift.

  1. Selecciona Operadores > OperatorHub.

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

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

    Panel Operador de AlloyDB Omni
    Imagen 2: panel del operador de AlloyDB Omni
  4. Después de instalar el operador AlloyDB Omni, crea manualmente los recursos de cert-manager en tu clúster. Es un requisito. Utiliza estos 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

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

Configurar el almacenamiento de GDC conectado

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

Para saber cómo definir Symcloud Storage como clase de almacenamiento predeterminada, consulta el artículo Definir Symcloud Storage como clase de almacenamiento predeterminada.

Para obtener más información sobre cómo cambiar el valor predeterminado de todas las demás clases de almacenamiento, consulta el artículo Cambiar la clase de almacenamiento predeterminada.

Crear un clúster de bases de datos

Un clúster de base de datos de AlloyDB Omni contiene todos los recursos de almacenamiento y de computación 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
  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: "16.8.0"
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DB_CLUSTER_NAME
    resources:
      cpu: CPU_COUNT
      memory: MEMORY_SIZE
      disks:
      - name: DataDisk
        size: DISK_SIZE

Haz los cambios siguientes:

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

  • DB_CLUSTER_NAMESPACE (Opcional): el espacio de nombres en el que quieres crear el clúster de bases de datos. Por ejemplo, my-db-cluster-namespace.

  • ENCODED_PASSWORD: la contraseña de inicio de sesión de la base de datos del rol de usuario postgres predeterminado, codificada como una cadena base64. Por ejemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

  • CPU_COUNT: número de CPUs disponibles para cada instancia de base de datos de este clúster de bases de datos.

  • MEMORY_SIZE: la cantidad de memoria por instancia de base de datos de este clúster de bases de datos. Recomendamos que este valor sea de 8 gigabytes por CPU. Por ejemplo, si has definido cpu como 2 en este manifiesto, te recomendamos que definas memory como 16Gi.

  • DISK_SIZE: 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 Conectarse mediante psql preinstalado.

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

Siguientes pasos