Para instruções sobre como instalar o AlloyDB Omni em um ambiente Linux padrão, consulte Instalar o AlloyDB Omni.
Visão geral
Para implantar o AlloyDB Omni em um cluster do Kubernetes, instale o operador do AlloyDB Omni no Kubernetes, uma extensão da API do Kubernetes fornecida pelo Google.
Você configura e controla um cluster de banco de dados do AlloyDB Omni baseado no Kubernetes pareando arquivos de manifesto declarativos com o utilitário kubectl, assim como qualquer outra implantação baseada no Kubernetes. Não use a CLI para AlloyDB Omni, que é destinada a implantações em máquinas Linux individuais e não em clusters do Kubernetes.
Imagem de 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. Essa transição melhora a segurança, a consistência e a conformidade das implantações.
Referências de imagem de resumo SHA
Para evitar ataques à cadeia de suprimentos e atender aos requisitos de certificação do OpenShift, o operador do AlloyDB Omni usa resumos SHA-256 em vez de tags de versão para todas as referências de imagem de contêiner.
Upgrades automáticos: o operador do AlloyDB Omni usa um ImageCatalog interno para gerenciar esses resumos e garantir rollbacks confiáveis do plano de dados durante upgrades com falha.
Ativação: embora ativado por padrão para o pacote certificado do OpenShift, os usuários dos pacotes OLM ou Helm podem ativar manualmente as referências de resumo definindo a variável de ambiente
ENABLE_DIGEST_IMAGE_REFScomotrueusando a configuração de assinatura para OLM ou o valorenableDigestImageRefsno gráfico do Helm.
Antes de começar
Antes de instalar o AlloyDB Omni em um cluster do Kubernetes com o operador do AlloyDB Omni, verifique se você atende aos requisitos a seguir.
Escolher uma opção de download ou instalação
Ao gerenciar cargas de trabalho em um cluster genérico do Kubernetes, é possível usar o Helm ou o OLM. O Helm é um gerenciador de pacotes universal que usa gráficos do Helm para instalar qualquer carga de trabalho, incluindo operadores, em todas as variantes do Kubernetes. O OLM, a opção padrão e preferencial nas plataformas OpenShift, gerencia os ciclos de vida do operador com pacotes OLM especializados.
Com base no ambiente e nas ferramentas, escolha um dos seguintes métodos de implantação:
| Mídia | Locais de download e guias de instalação | Implantação em |
|---|---|---|
| Operador do AlloyDB Omni com gráfico do Helm | Instalar o AlloyDB Omni no Kubernetes | Ambiente de contêiner do Kubernetes próprio, por exemplo, no local, nuvens públicas, GKE, Amazon EKS e
Azure AKS. Dica:se a ferramenta de CD (entrega contínua) estiver integrada ao Helm, use essa opção. |
| Operador do AlloyDB Omni com pacote OLM | OperatorHub.io | Ambiente de contêiner do Kubernetes próprio, por exemplo, no local, nuvens públicas, Google Kubernetes Engine, Amazon EKS e Azure
AKS. Para usar um pacote OLM, instale o OLM no cluster do Kubernetes antes de instalar o operador. Para mais informações, consulte olm.operatorframework.io. Dica:se a ferramenta de CD (entrega contínua) já usa o OLM, escolha essa opção. |
| Operador do OpenShift com pacote OLM | Console da Web do OpenShift Container Platform | Ambiente do OpenShift O OpenShift, uma variante do Kubernetes, usa o OLM como método padrão integrado para empacotar e implantar operadores. |
Verificar o acesso
Verifique se você tem acesso ao seguinte:
- Um cluster do Kubernetes que executa o seguinte software:
- Kubernetes versão 1.21 ou mais recente.
- O serviço
cert-manager.
- O
kubectlutilitário. - O gerenciador de pacotes
helmou o Operator Lifecycle Manager.
Atender aos requisitos de hardware e software
Cada nó no cluster do Kubernetes precisa ter o seguinte:
- Mínimo de duas CPUs x86 ou AMD64.
- Pelo menos 8 GB de RAM.
- Kernel do Linux versão 4.18 ou mais recente.
- Grupo de controle (cgroup) v2 ativado.
Instalar o operador do AlloyDB Omni
Se você quiser implantar o AlloyDB Omni no ambiente de produção, consulte Executar o AlloyDB Omni em produção.
É possível instalar o operador do AlloyDB Omni usando diferentes métodos, incluindo o Helm e o Operator Lifecycle Manager (OLM).
Helm
Para instalar o operador do AlloyDB Omni, siga estas etapas:
- Instale o operador do AlloyDB Omni no registro do 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
A instalação bem-sucedida mostra a seguinte saída:
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: None
OLM
Para instalar o operador do AlloyDB Omni usando o Operator Lifecycle Manager, siga estas etapas:
Acesse a página Operador do AlloyDB Omni.
Clique em Instalar. Se você ainda não fez isso, siga as instruções para instalar apenas o operador OLM e o catálogo OperatorHub.io.
Crie o namespace
alloydb-omni-systemse ele ainda não existir.kubectl create ns alloydb-omni-system
Configure o
OperatorGroupdo OLM para garantir que o operador tenha escopo de cluster.kubectl apply -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: operator-sdk-og namespace: alloydb-omni-system spec: upgradeStrategy: Default EOF
Instale o operador usando um recurso de assinatura do 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
Instale o certificado padrão
ClusterIssuer. Essa etapa é opcional se você usar emissores 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 o operador do AlloyDB Omni no ambiente do Red Hat OpenShift usando o OLM, siga estas etapas:
- Faça login no console da Web do Red Hat OpenShift.
- Para usuários off-line ou desconectados, é necessário espelhar manualmente as
imagens necessárias no registro particular usando ferramentas que preservem resumos SHA
como
oc image mirror. É necessário configurar umImageDigestMirrorSetpara redirecionar extrações de imagens do repositório públicogcr.iopara o registro particular. Isso garante que o operador do AlloyDB Omni possa extrair as imagens necessárias usando os resumos SHA256 imutáveis. No console da Web do OpenShift, acesse Operadores > OperatorHub. O operador do AlloyDB Omni está listado nos catálogos Certificado e Comunidade.
No painel do operador do AlloyDB Omni, clique em Instalar.
Instale o certificado padrão
ClusterIssuerexecutando os comandos a seguir. Essa etapa é opcional se você usar emissores de certificados personalizados.kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} EOF
Configurar o armazenamento conectado do GDC
Para instalar o operador do AlloyDB Omni no GDC conectado, siga outras etapas para configurar o armazenamento, porque os clusters conectados do GDC não definem uma classe de armazenamento padrão. É necessário definir uma classe de armazenamento padrão antes de criar um cluster de banco de dados do AlloyDB Omni.
Para saber como definir o armazenamento do Symcloud como a classe de armazenamento padrão, consulte Definir o armazenamento do Symcloud como a classe de armazenamento padrão.
Para mais informações sobre como alterar o padrão para todas as outras classes de armazenamento, consulte Alterar o StorageClass padrão.
Criar um cluster de banco de dados
Um cluster de banco 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 dados.
Depois de instalar o operador do AlloyDB Omni no cluster do Kubernetes, é possível criar um cluster de banco de dados do AlloyDB Omni no cluster do Kubernetes aplicando um manifesto semelhante ao seguinte:
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
Substitua:
DB_CLUSTER_NAME: o nome do cluster de banco de dados, por exemplo,my-db-cluster.ENCODED_PASSWORD: a senha de login do banco de dados para a função de usuário padrãopostgres, codificada como uma string base64. Por exemplo,Q2hhbmdlTWUxMjM=paraChangeMe123.CPU_COUNT: o número de CPUs disponíveis para cada instância de banco de dados no cluster.MEMORY_SIZE: a quantidade de memória por instância de banco de dados deste cluster de banco de dados. Recomendamos definir isso como 8 gigabytes por CPU. Por exemplo, se você definircpucomo2anteriormente neste manifesto, recomendamos definirmemorycomo16Gi.DISK_SIZE: o tamanho do disco por instância de banco de dados, por exemplo,10Gi.
Depois de aplicar esse manifesto, o cluster do Kubernetes vai conter um cluster de banco de dados do AlloyDB Omni com a configuração de memória, CPU e armazenamento especificada. Para estabelecer uma conexão de teste com o novo
cluster de banco de dados, consulte Conectar usando o psql.
Para mais informações sobre manifestos do Kubernetes e como aplicá-los, consulte Gerenciar recursos.
Escalonar um cluster de banco de dados
Para escalonar os recursos de computação do cluster de banco de dados, atualize os valores cpu e memory no manifesto db-cluster.yaml e aplique as mudanças. O processo de escalonamento depende de você optar por uma operação de escalonamento normal ou uma operação de escalonamento com baixo tempo de inatividade.
Escalonamento normal
Quando você atualiza a especificação de escalonamento e aplica o manifesto sem nenhuma outra configuração, os pods do banco de dados são reiniciados instantaneamente. Isso resulta em um breve tempo de inatividade nas instâncias principal e de espera enquanto as novas alocações de recursos entram em vigor.
Escalonamento com baixo tempo de inatividade
Para clusters de alta disponibilidade (HA) com pelo menos uma instância de espera, é possível minimizar o tempo de inatividade durante o escalonamento usando a estratégia de preparação e troca de manutenção de baixo tempo de inatividade (LDTM, na sigla em inglês). Essa estratégia aplica as mudanças de escalonamento à instância de espera primeiro, realiza uma troca rápida e, em seguida, aplica as mudanças à instância principal original. É possível escalonar verticalmente ou horizontalmente com a estratégia LDTM.
Para ativar e monitorar o escalonamento com baixo tempo de inatividade, siga estas etapas:
Ative o escalonamento com baixo tempo de inatividade. Adicione a anotação
enableLDTMao cluster de banco de dados:kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
Substitua
DB_CLUSTER_NAMEpelo nome do cluster de banco de dados.Aplique as especificações de escalonamento atualizadas. Atualize os valores
cpuememoryemprimarySpec.resourcesno manifesto e aplique as mudanças:kubectl apply -f db-cluster.yaml
Monitore o processo de escalonamento. Verifique a condição de status
LDTMScalingInProgresspara monitorar a operação:kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "LDTMScalingInProgress")'
Substitua
DB_CLUSTER_NAMEpelo nome do cluster de banco de dados.Enquanto o processo estiver em andamento, o status será
true. Quando o escalonamento for concluído, o status da condição mudará parafalse.
Limitações
- O escalonamento LDTM só é compatível com clusters de HA com pelo menos uma instância de espera.
- Não é possível realizar duas operações LDTM simultaneamente. Por exemplo, é possível usar o LDTM para escalonar clusters de banco de dados ou para realizar upgrades de versão secundária, mas não ambos ao mesmo tempo.
- É necessário reverter manualmente após a falha de uma operação de escalonamento LDTM.
A seguir
- Executar e conectar ao AlloyDB Omni.
- Gerenciar o AlloyDB Omni.
- Gerenciar a alta disponibilidade no Kubernetes.
- Criar um cluster ativado para TDE.