Instale o AlloyDB Omni no Kubernetes

Selecione uma versão da documentação:

Esta página oferece uma vista geral do operador do AlloyDB Omni Kubernetes, com instruções para o usar para implementar o AlloyDB Omni num cluster do Kubernetes. Esta página pressupõe uma familiaridade básica com o funcionamento do Kubernetes.

Para ver instruções sobre como instalar o AlloyDB Omni num ambiente Linux padrão, consulte o artigo Instale o AlloyDB Omni.

Vista geral

Para implementar o AlloyDB Omni num cluster do Kubernetes, instale o operador do AlloyDB Omni, uma extensão da API Kubernetes fornecida pela Google.

Configura e controla um cluster de base de dados AlloyDB Omni baseado em Kubernetes associando ficheiros de manifesto declarativos ao utilitário kubectl, tal como qualquer outra implementação baseada em Kubernetes. Não usa a CLI do AlloyDB Omni, que se destina a implementações em máquinas Linux individuais e não em clusters do Kubernetes.

Imagem base

A partir da versão 1.5.0, as imagens do Kubernetes do operador do AlloyDB Omni são criadas com base na Universal Base Image (UBI) 9 da Red Hat. Esta transição melhora a segurança, a consistência e a conformidade das suas implementações.

Compatibilidade do operador 1.1.0 (e posterior) do AlloyDB Omni

A versão 1.1.0 do operador do AlloyDB Omni não é compatível com as versões 15.5.3 e 15.5.4 do AlloyDB Omni. Se usar uma destas versões do AlloyDB Omni, pode receber um erro semelhante ao seguinte:

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 começar

Antes de instalar o AlloyDB Omni num cluster do Kubernetes com o operador do AlloyDB Omni, certifique-se de que cumpre os seguintes requisitos.

Escolha uma opção de transferência ou instalação

Escolha uma das seguintes opções de transferência e instalação:

Multimédia Localizações de transferência e guias de instalação Implementação para
Operador do OpenShift com pacote OLM Openshift Container Platform Web Console Ambiente OpenShift
Operador do Kubernetes com pacote OLM Artifacthub.io Traga o seu próprio ambiente de contentor Kubernetes, por exemplo, nas instalações, em nuvens públicas, no Google Kubernetes Engine, no Amazon EKS e no Azure AKS.
Operador do Kubernetes com o gráfico Helm Instale o AlloyDB Omni no Kubernetes (esta página) Traga o seu próprio ambiente de contentores Kubernetes, por exemplo, no local, nuvens públicas, GKE, Amazon EKS e Azure AKS.

Valide o acesso

Confirme se tem acesso ao seguinte:

Cumprir os requisitos de hardware e software

Cada nó no cluster do Kubernetes tem de ter o seguinte:

  • Um mínimo de duas CPUs x86 ou AMD64.
  • No mínimo, 8 GB de RAM.
  • Versão 4.18 ou posterior do kernel do Linux.
  • Grupo de controlo (cgroup) v2 ativado.

Instale o operador do AlloyDB Omni

Pode instalar o operador do AlloyDB Omni através de diferentes métodos, incluindo o Helm e o Operator Lifecycle Manager (OLM).

Leme

Para instalar o operador do AlloyDB Omni, siga estes passos:

  1. Defina as seguintes variáveis de ambiente:
    export HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Transfira o operador do 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. Instale o operador do AlloyDB Omni:
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    A instalação bem-sucedida apresenta o seguinte resultado:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. Para limpar, elimine o ficheiro de instalação do operador do AlloyDB Omni transferido. O ficheiro chama-se alloydbomni-operator-VERSION_NUMBER.tgz e encontra-se no seu diretório de trabalho atual.

OLM

Para instalar o operador do AlloyDB Omni através do Operator Lifecycle Manager, siga estes passos:

  1. Navegue até https://operatorhub.io/operator/alloydb-omni-operator.

  2. Clique no botão Instalar para ver as instruções.

  3. Conclua todos os passos de instalação.

  4. Depois de instalar o operador do AlloyDB Omni, crie manualmente os recursos do cert-manager no cluster. Este campo é obrigatório. Use estes 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

    Substitua NAMESPACE pelo espaço de nomes onde tem o seu operador, por exemplo, alloydb-omni-system.

OLM

Para instalar o operador do AlloyDB Omni no seu ambiente do Red Hat OpenShift através do OLM, inicie sessão na consola Web do Red Hat OpenShift.

  1. Selecione Operadores > OperatorHub.

  2. Encontre o operador do AlloyDB Omni através do campo de pesquisa.

    AlloyDB Omni Operator hub
    Figura 1: o operador do AlloyDB Omni no OperatorHub
  3. No painel do operador do AlloyDB Omni, clique em Instalar.

    Painel do operador do AlloyDB Omni
    Figura 2: o painel do operador do AlloyDB Omni
  4. Depois de instalar o operador do AlloyDB Omni, crie manualmente os recursos do cert-manager no cluster. Este campo é obrigatório. Use estes 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

    Substitua NAMESPACE pelo espaço de nomes onde tem o seu operador, por exemplo, alloydb-omni-system.

Configure o armazenamento associado do GDC

Para instalar o operador AlloyDB Omni no GDC ligado, tem de seguir passos adicionais para configurar o armazenamento porque os clusters do GDC ligado não definem uma classe de armazenamento predefinida. Tem de definir uma classe de armazenamento predefinida antes de criar um cluster de base de dados do AlloyDB Omni.

Para saber como definir o Symcloud Storage como a classe de armazenamento predefinida, consulte o artigo Defina o Symcloud Storage como a classe de armazenamento predefinida.

Para mais informações sobre como alterar a predefinição de todas as outras classes de armazenamento, consulte o artigo Alterar a classe de armazenamento predefinida.

Crie um cluster de base de dados

Um cluster de base de dados do AlloyDB Omni contém todos os recursos de armazenamento e computação necessários para executar um servidor do AlloyDB Omni, incluindo o servidor principal, todas as réplicas e todos os seus dados.

Para criar um cluster de base de dados do AlloyDB Omni, siga estes passos:

  1. Crie um espaço de nomes dedicado para o cluster da base de dados. Isto melhora o isolamento e a segurança.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    Substitua DB_CLUSTER_NAMESPACE pelo espaço de nomes onde quer criar o cluster de base de dados, por exemplo, my-db-cluster-namespace.

  2. Crie um ficheiro de manifesto com o nome db-cluster.yaml com o seguinte conteúdo. Este manifesto define o segredo para a palavra-passe da base de dados e o próprio 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: "15.13.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
    

    Substitua o seguinte:

    • DB_CLUSTER_NAME: o nome deste cluster de base de dados, por exemplo, my-db-cluster.

    • OS_TYPE: opcional. O tipo de sistema operativo base para a imagem da base de dados. Os valores válidos são Debian e UBI9. Se não especificar esta opção, o operador define-a automaticamente como Debian se databaseVersion for inferior a 16.9.0 e como UBI9 se databaseVersion for igual ou superior a 16.9.0.

    • ENCODED_PASSWORD: a palavra-passe de início de sessão na base de dados para a função de utilizador postgres predefinida, codificada como uma string base64, por exemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

    • CPU_COUNT: o número de CPUs disponíveis para cada instância da base de dados neste cluster de base de dados.

    • MEMORY_SIZE: a quantidade de memória por instância da base de dados deste cluster de base de dados. Recomendamos que defina esta opção para 8 gigabytes por CPU. Por exemplo, se definir cpu como 2 anteriormente neste manifesto, recomendamos que defina memory como 16Gi.

    • DISK_SIZE: o tamanho do disco por instância da base de dados, por exemplo, 10Gi.

  3. Aplique o manifesto ao seu cluster do Kubernetes:

    kubectl apply -f db-cluster.yaml
    

Depois de aplicar este manifesto, o cluster do Kubernetes contém um cluster de base de dados do AlloyDB Omni com a configuração de memória, CPU e armazenamento especificada. Para estabelecer uma ligação de teste com o novo cluster de base de dados, consulte o artigo Estabeleça ligação através do psql pré-instalado.

Para mais informações sobre os manifestos do Kubernetes e como aplicá-los, consulte o artigo Gerir recursos.

O que se segue?