Разверните кластер высокой доступности AlloyDB Omni на виртуальных машинах GCE с помощью RPM Orchestrator.

1. Введение

В этом практическом занятии демонстрируется развертывание кластера высокой доступности (HA) AlloyDB Omni на виртуальных машинах Google Compute Engine (GCE). По завершении этого занятия вы создадите эталонную архитектуру высокой доступности, состоящую из 3 узлов базы данных и 2 узлов HAProxy, а также управляющего узла для выполнения операций управления.

Предварительные требования

  • Доступ к проекту Google Cloud и Cloud Shell из Cloud Console.
  • Google Cloud SDK ( gcloud ) установлен и настроен. Подробную информацию об установке gcloud см. в инструкции по установке gcloud.
  • Установлена ​​версия Terraform 1.9.8 .

Что вы узнаете

  • Как создать и подготовить виртуальные машины GCE для AlloyDB Omni.
  • Как установить и запустить AlloyDB Omni RPM Orchestrator.
  • Как установить и настроить RPM-пакеты AlloyDB Omni для эталонной архитектуры высокой доступности.

Что вам понадобится

  • Получите URL-ссылки на RPM-пакеты AlloyDB Omni и оркестратор RPM. Для этого необходимо заполнить форму регистрации AlloyDB Omni . Ссылки будут отправлены на ваш электронный адрес, указанный на сервере репозитория. Инициализируйте следующие переменные среды, чтобы URL-адреса были под рукой и использовались во время выполнения практического задания.
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL=....
    export ETCD_REPOSITORY_URL="..."
    
  • Рабочий терминал с доступом к стеку развертывания AlloyDB Omni. Для этой цели можно использовать Cloud Shell.

2. Настройка и требования

Настройка проекта

Создайте проект в Google Cloud.

  1. В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud .
  2. Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud нажмите на значок Cloud Shell на панели инструментов в правом верхнем углу:

Значок для активации Cloud Shell

В качестве альтернативы вы можете нажать G, а затем S. Эта последовательность активирует Cloud Shell, если вы находитесь в консоли Google Cloud, или воспользуйтесь этой ссылкой .

Подготовка и подключение к среде займут всего несколько минут. После завершения вы должны увидеть что-то подобное:

Терминал Google Cloud Shell показывает, что среда подключена.

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Вся работа в этом практическом задании выполняется в браузере. Вам не нужно ничего устанавливать.

3. Создайте виртуальные машины Google Cloud Compute Engine.

Подготовьте скрипты Terraform.

  1. Определите переменные среды для идентификатора вашего проекта и желаемого имени кластера. Вы будете использовать их на протяжении всего практического занятия.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
    Примечание: идентификатор проекта Google Cloud должен содержать от 6 до 30 символов. Для получения дополнительной информации см. https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin
  2. Убедитесь, что вы вошли в систему под учетной записью пользователя Google Cloud.
    gcloud auth login
    
  3. Создайте рабочую директорию для развертывания и скопируйте необходимые файлы конфигурации Terraform из исходного кода вашего репозитория.
    mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER
    cd ~/alloydb-omni/$PROJECT/$CLUSTER
    gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf .
    
  4. Создайте файл terraform.tfvars , чтобы указать необходимые параметры в соответствии с эталонной архитектурой, согласно следующему содержимому:
    cat > terraform.tfvars <<EOF
    # Required instance counts for reference architecture
    db_instance_count      = 3
    haproxy_instance_count = 2
    control_instance_count = 1
    
    # Optional: Customize if needed with the below variables
    # os_image             = "rocky-linux-cloud/rocky-linux-9"
    # zone                 = "us-west4-c"
    # region_1             = "us-west4"
    # db_instance_type     = "c4-highmem-4"
    # db_disk_type         = "hyperdisk-balanced"
    # db_data_size         =  "50" # GB
    # data_dir             =  "/data"
    EOF
    

Выполните скрипты Terraform и проверьте их работоспособность.

  1. Теперь вы можете создавать виртуальные машины.
    terraform init
    
  2. Прежде чем создавать виртуальные машины, убедитесь, что у вас есть необходимые права доступа для создания виртуальных машин и других ресурсов. Вкратце, вам потребуются следующие разрешения.
    roles/compute.admin
    roles/iam.roleAdmin
    roles/compute.osAdminLogin
    roles/iam.serviceAccountCreator
    roles/iam.serviceAccountUser
    roles/artifactregistry.repoAdmin
    roles/storage.objectUser
    roles/resourcemanager.projectIamAdmin
    roles/serviceusage.serviceUsageAdmin
    
  3. Проверьте конфигурацию и примените её для выделения ресурсов.
    terraform validate
    terraform apply --auto-approve
    
    Примечание: Убедитесь, что вы используете Terraform версии 1.9.8, как того требует конфигурация развертывания.
  4. После завершения работы Terraform убедитесь в успешном создании виртуальных машин, выведя список созданных экземпляров с помощью gcloud .
    gcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECT
    
    Вы должны увидеть экземпляры, соответствующие вашим 3 узлам базы данных, 2 узлам HAProxy и управляющей виртуальной машине, а также соответствующие зоны. Запишите ЗОНУ для управляющего узла. Она понадобится нам позже в ходе этого практического занятия.
    export ZONE=$(gcloud compute instances list \
      --filter="name=$CLUSTER-control"          \
      --format="value(zone)" --project=$PROJECT)
    

4. Подготовьте виртуальные машины к развертыванию.

Необходимо создать SSH-сессию с управляющим узлом и выполнить действия для включения SSH-доступа ко всем виртуальным машинам (также называемым узлами).

  1. Убедитесь, что определены переменные среды для вашего проекта и кластера.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  2. Создайте SSH-ключ и используйте его для входа в управляющую виртуальную машину.
    # Replace values with your specific GCP project, cluster and zone details
    ssh-keygen -t ed25519 -f $HOME/.ssh/google_compute_engine
    gcloud compute os-login ssh-keys add --key-file=$HOME/.ssh/google_compute_engine.pub --project=$PROJECT
    
  3. Создайте правило брандмауэра, разрешающее SSH-соединения, а также трафик VRRP.
    gcloud compute config-ssh --project=$PROJECT
    gcloud compute firewall-rules create $CLUSTER-allow-ssh --network=$CLUSTER --project=$PROJECT --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges="0.0.0.0/0"
    gcloud compute firewall-rules create $CLUSTER-allow-vrrp --network=$CLUSTER --project=$PROJECT --allow=112 --source-ranges="0.0.0.0/0"
    
  4. Подключитесь к управляющей виртуальной машине по SSH:
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
  5. Создайте на управляющем узле группу Linux с тем же именем, что и имя пользователя:
    sudo groupadd $(id -un)
    sudo usermod -aG $(id -un) $(id -un)
    
  6. Команда `Terraform setup` создает несколько конфигурационных скриптов и размещает их в каталоге /tmp/ управляющей виртуальной машины, включая такие данные, как имя кластера, учетная запись службы, имя проекта и т. д. Затем с помощью скриптов настройки на управляющем узле создается беспарольный SSH-доступ со всех узлов кластера с управляющих узлов.
    /tmp/setup-ssh-for-cluster.sh
    
    Важно : Запишите имя пользователя сервисной учетной записи. Мы будем использовать его в качестве SSH_USER позже в этом практическом занятии.
  7. Для этой практической работы мы можем отключить SELinux на всех узлах. Для этой цели можно использовать скрипт Terraform, добавляющий файл '/tmp/run-all.sh'.
    /tmp/run-all.sh sudo setenforce 0
    
  8. Если вы зарегистрировались в AlloyDB Omni и получили ссылки, пришло время добавить эти URL-адреса в переменные окружения.
    cat >> ~/.codelab.env <<EOF
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL=....
    export ETCD_REPOSITORY_URL="..."
    EOF
    
    Выберите виртуальный IP-адрес для вашей среды, используя входную переменную cidr_range в файле terraform/variables.tf таким образом, чтобы он не конфликтовал с другими узлами, как показано в следующем примере:
    cat >> ~/.codelab.env <<EOF
    export VIRTUAL_IP="10.1.0.50"
    EOF
    

5. Установите необходимые программные компоненты на все виртуальные машины.

Следующий шаг — установка необходимых программных компонентов на виртуальные машины. Это можно скоординировать на управляющем узле. Все последующие команды необходимо выполнить на управляющем узле.

  1. Подключитесь к управляющей виртуальной машине по SSH, если вы еще не подключены к управляющему узлу.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    После подключения к командной строке SSH управляющей виртуальной машины выполните команду source environment file.
    source ~/.codelab.env
    
  2. На управляющем узле установите Ansible и необходимые библиотеки Python.
    sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
    sudo dnf install -y ansible
    sudo dnf install -y python3-grpcio python3-protobuf python3-googleapis-common-protos python3-grpcio-status
    
  3. Далее загрузите архив tar с коллекцией RPM Orchestrator Ansible и установите его.
    gcloud storage cp "gs://${ORCHESTRATOR_ANSIBLE_COLLECTION_PATH#https://storage.googleapis.com/}google-alloydbomni_orchestrator-*.tar.gz" .
    ansible-galaxy collection install google-alloydbomni_orchestrator-0.1.0-6.tar.gz
    ansible-galaxy collection list | grep alloydbomni_orchestrator
    
    Примечание: Убедитесь, что переменная ORCHESTRATOR_ANSIBLE_COLLECTION_PATH заканчивается символом "/".
  4. Оркестратор использует файл спецификации развертывания в формате инвентаризации Ansible для понимания топологии вашего кластера. Создайте файл с именем deployment_spec.yaml , содержащий сведения об узлах на управляющем узле.
    cat > deployment_spec.yaml <<EOF
    alloydbomni:
      vars:
        cluster_manager:
          name: "$CLUSTER"
        etcd:
          setup: true
          config_forcewrite: true
        alloydbomni:
          major_version: "18"
          repo_url: $ALLOYDB_OMNI_REPOSITORY_URL
        alloydbomni_monitor:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        alloydbomni_cluster_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        alloydbomni_node_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        pgbouncer:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        pgbackrest:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    
      children:
        primary_instance_nodes:
          hosts:
            $CLUSTER-db1:
            $CLUSTER-db2:
            $CLUSTER-db3:
        load_balancer_nodes:
          hosts:
            $CLUSTER-haproxy1:
            $CLUSTER-haproxy2:
    EOF
    
    Примечание: Проверьте сгенерированный файл, чтобы убедиться, что он содержит допустимые значения.
  5. Создайте плейбук с именем install.yaml , который ссылается на роль install из коллекции orchestrator.
    cat > install.yaml <<EOF
    - name: Install AlloyDB Omni cluster components
      hosts: all
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
        - role: google.alloydbomni_orchestrator.install
    EOF
    
    Примечание: Проверьте сгенерированный файл, чтобы убедиться, что он содержит допустимые значения.
  6. Выполните сценарий автоматизации, используя файл инвентаризации, чтобы загрузить и установить RPM-пакеты на все указанные узлы.
    ansible-playbook -i deployment_spec.yaml install.yaml
    

6. Инициализация AlloyDB Omni Cluster

На данном этапе мы установили все необходимые компоненты на всех узлах. Мы готовы к инициализации кластера AlloyDB Omni.

  1. Подключитесь к управляющей виртуальной машине по SSH, если вы еще не подключены к управляющему узлу.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    После подключения к командной строке SSH управляющей виртуальной машины выполните команду source environment file.
    source ~/.codelab.env
    
  2. Сгенерируйте хеш для своего пароля и запишите его.
    encoded_password=$(echo -n "your unique password" | base64)
    
  3. Для создания кластера AlloyDB Omni необходимо знать, как его настроить. Создайте файл с именем dbcluster.yaml для описания параметров кластера базы данных.
    cat > dbcluster.yaml <<EOF
    Secret:
      metadata:
        name: db-pw-$CLUSTER
      spec:
        type: Opaque
        data:
          $CLUSTER: $encoded_password
    ---
    DBCluster:
      metadata:
        name: $CLUSTER
      spec:
        databaseVersion: 18.1.0
        mode: ""
        availability:
          numberOfStandbys: 2
          enableAutoFailover: true
          enableAutoHeal: true
          autoFailoverTriggerThreshold: 2
          autoHealTriggerThreshold: 2
          healthcheckPeriodSeconds: 5
          replayReplicationSlotsOnStandbys: false
        primarySpec:
          adminUser:
            passwordRef:
              name: db-pw-$CLUSTER
          resources:
            cpu: 4
            memory: 32Gi
            disks:
            - name: DataDisk
              path: $PGDATA
          dbLoadBalancerOptions:
            gcp:
              loadBalancerIP: "$VIRTUAL_IP"
              loadBalancerType: "internal"
              loadBalancerInterface: "eth0"
    EOF
    
  4. Создайте плейбук с именем bootstrap.yaml , который будет ссылаться на роль Ansible bootstrap для создания кластера AlloyDB Omni.
    cat > bootstrap.yaml <<EOF
    - name: Create DBCluster
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
      - role: google.alloydbomni_orchestrator.bootstrap
    EOF
    
  5. Запустите свой плейбук для создания кластера.
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
    

7. (Необязательно) Настройка пула соединений PgBouncer

AlloyDB Omni поддерживает облегченное пулинг-соединение с использованием PgBouncer. Вы можете настроить и инициализировать PgBouncer сразу после развертывания кластера.

  1. Создайте файл спецификации ресурсов с именем pgbouncer.yaml , который связывает пул соединений с вашим кластером баз данных:
    cat > pgbouncer.yaml <<EOF
    PgBouncer:
      metadata:
        name: pgbouncer-pooler
      spec:
        dbclusterRef: $CLUSTER
        allowSuperUserAccess: true
        accessMode: "rw"
        port: 6432
    EOF
    
  2. Запустите пул PgBouncer, используя тот же плейбук bootstrap.yaml , созданный ранее, и передайте новый файл спецификации:
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
    

8. Проверьте кластер AlloyDB Omni.

Чтобы убедиться в корректной работе кластера и его доступности через балансировщик нагрузки, вы можете подключиться к нему с помощью стандартного клиента PostgreSQL с управляющего узла.

  1. Установите репозиторий клиента PostgreSQL 18 и соответствующий пакет на управляющем узле:
    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf install -y postgresql18
    
  2. Подключитесь к кластеру, используя зарезервированный ранее виртуальный IP-адрес. Вам будет предложено ввести пароль, указанный в файле dbcluster.yaml :
    /usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W
    
  3. После подключения вы можете выполнять простые SQL-запросы для проверки состояния кластера, например, для проверки версии базы данных:
    postgres=# SELECT version();
    
    Вы должны увидеть сообщение о том, что PostgreSQL 18 работает с AlloyDB Omni. Введите \q чтобы выйти из командной строки.

9. (Необязательно) Создайте резервную копию данных с помощью pgBackRest.

AlloyDB Omni интегрируется с pgBackRest для управления резервными копиями непосредственно в Cloud Storage. Вы можете настроить план резервного копирования и запускать резервное копирование по запросу в корзину GCS, созданную с помощью Terraform.

  1. Создайте файл спецификации плана резервного копирования с именем backup_plan.yaml , указывающий на выделенный вами сегмент GCS:
    cat > backup_plan.yaml <<EOF
    BackupPlan:
      metadata:
        name: pgb-plan
      spec:
        dbclusterRef: $CLUSTER
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: $CLUSTER-gcs-backups
            key: /backups
    EOF
    
  2. Создайте плейбук Ansible с именем backup.yaml , который ссылается на роль управления резервным копированием:
    cat > backup.yaml <<EOF
    - name: Manage AlloyDB Omni Backups
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
        - role: google.alloydbomni_orchestrator.backup
    EOF
    
  3. Примените план резервного копирования, используя сценарий резервного копирования backup.yaml :
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml
    
  4. После успешного составления плана создайте файл ресурсов резервного копирования по запросу с именем create_backup.yaml .
    cat > create_backup.yaml <<EOF
    Backup:
      metadata:
        name: on-demand-backup
      spec:
        backupPlanRef: pgb-plan
        dbclusterRef: $CLUSTER
    EOF
    
  5. Выполните сценарий автоматизации, чтобы запустить резервное копирование:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml
    
  6. Для проверки состояния резервной копии создайте плейбук в файле status.yaml :
- name: Fetch AlloyDB Omni Resource Status
hosts: localhost
vars:
  ansible_become: true
  ansible_user: $SSH_USER
  ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
roles:
  - role: google.alloydbomni_orchestrator.status
EOF
  1. Запустите сценарий автоматизации, чтобы получить список всех резервных копий :
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
  1. В качестве альтернативы , чтобы получить подробную информацию о конкретной резервной копии , созданной ранее, передайте -e resource_name=on-demand-backup :
ansible-playbook status.yaml -i deployment_spec.yaml \
  -e resource_type=Backup \
  -e resource_name=on-demand-backup

10. Ресурсы для очистки

После завершения развертывания вы можете уничтожить выделенные ресурсы, чтобы избежать дополнительных расходов.

  1. Создайте плейбук с именем teardown.yaml :
    cat > teardown.yaml <<EOF
    - name: Tear down AlloyDB Omni cluster
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
      - role: google.alloydbomni_orchestrator.delete
    EOF
    
  2. Выполните плейбук с помощью ansible-playbook. Если вы настроили резервное копирование, сначала удалите ресурсы Backup и BackupPlan:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=Backup" -e "resource_name=on-demand-backup"
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=BackupPlan" -e "resource_name=pgb-plan"
    
    Если вы настроили PgBouncer, удалите ресурс пула соединений:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"
    
    Затем укажите DBCluster в качестве типа ресурса и удалите сам кластер базы данных:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=DBCluster" -e "resource_name=$CLUSTER"
    
  3. После удаления кластера выйдите из системы на управляющем узле, вернитесь в терминал и перейдите в рабочую директорию Terraform.
    Примечание : если вы только что вошли в облачную оболочку, не забудьте установить следующие параметры:
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  4. Удалите правило брандмауэра VRRP и уничтожьте ресурсы, управляемые Terraform:
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-vrrp" --project="$PROJECT"
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-ssh" --project="$PROJECT"
    terraform destroy
    
  5. Подтвердите удаление, когда появится соответствующий запрос. Поскольку остаточные сетевые ресурсы или маршруты могут иногда препятствовать полному удалению, выполните следующие команды безопасной очистки, чтобы убедиться в полном удалении всех связанных правил брандмауэра, шлюзов NAT, маршрутизаторов, маршрутов, подсетей и сетей. Замените REGION на ваш конкретный регион развертывания, например, 'us-central1':
    # Delete any remaining firewall rules associated with the cluster
    gcloud compute firewall-rules list --project=$PROJECT 2> /dev/null | grep ^$CLUSTER- | cut -f1 -d' ' | \
      while read rule; do gcloud compute firewall-rules delete --project=$PROJECT --quiet $rule; done
    
    # Delete the Cloud NAT gateway and router if they still exist
    gcloud compute routers nats describe $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers nats delete $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    gcloud compute routers describe $CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers delete $CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    # Delete any remaining custom routes
    gcloud compute routes list --project=$PROJECT --filter="network:$CLUSTER" --format="value(name)" 2>/dev/null | \
      while read route; do gcloud compute routes delete --project=$PROJECT --quiet $route 2>/dev/null || true; done
    
    # Delete the subnet and network if they still exist
    gcloud compute networks subnets describe $CLUSTER --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute networks subnets delete $CLUSTER --region=REGION --project=$PROJECT --quiet
    
    gcloud compute networks describe $CLUSTER --project $PROJECT 2> /dev/null \
      && gcloud compute networks delete $CLUSTER --project $PROJECT --quiet
    

11. Поздравляем!

Поздравляем с завершением практического занятия!

Что мы рассмотрели

  • Как создать и подготовить виртуальные машины GCE для AlloyDB Omni.
  • Как установить и запустить AlloyDB Omni RPM Orchestrator.
  • Как установить и настроить RPM-пакеты AlloyDB Omni для эталонной архитектуры высокой доступности.

Более подробную информацию об AlloyDB Omni можно найти в документации .

12. Опрос

Как вы будете использовать этот учебный материал?

Прочитайте только до конца. Прочитайте текст и выполните упражнения.