Google Compute Engine — Ubuntu — Завершение работы — Подключение прокси-сервера Cloud SQL закрыто

Используемые услуги:

  • Google Compute Engine (GCE) (всегда включен или выгружается)
  • Ubuntu 16.04 LTS
  • PHP
  • Google Cloud SQL
  • Google Cloud SQL Proxy

проблема: Соединение прокси-сервера Google Cloud SQL закрыто до запуска сценария выключения Google.

Проблема вызвана: «Сервер MySQL ушел» и подобные сообщения об ошибках в PHP во время завершения работы.

После многих исследований выясняется, что во время завершения работы экземпляра соединение с базой данных, которое было запущено во время сценария запуска Google Cloud, отключается до запуска сценария завершения работы.

Я пытался изменить порядок systemctl услуги, но я не могу найти правильный порядок загрузки вещей.

Во время создания изображения этот контент вставляется в /lib/systemd/system/google-shutdown-scripts.service.d/bizzycloud.conf

[Unit]
After=apache2.service haproxy.service
Wants=apache2.service haproxy.service google-startup-scripts.service

Фрагмент скрипта запуска:

sudo /cloud_sql_proxy -dir=/cloudsql -instances_metadata /project/attributes/DB_Connections &

Отключение скрипта

echo "Shutting Down"curl "http://localhost/run/shutdowntest.php" # < This reports database errors
sudo /cloud_sql_proxy -dir=/cloudsql -instances_metadata /project/attributes/DB_Connections & # < Reconnect back to the database
curl "http://localhost/run/shutdowntest.php" # < This reports database is ok

Нет проблем с базой данных, когда серверы работают, но как только они начинают отключаться, мы начинаем замечать проблемы.

мой Google-выключение-scripts.service.d / bizzycloud.conf Файл, похоже, не меняет порядок сценариев запуска и завершения работы.

Это вполне может быть связано с аналогичными проблемами, с которыми люди сталкивались при случайных ошибках Cloud SQL во время «восстановления работоспособности» или при отключении серверов.

Может ли кто-нибудь помочь найти решение этой проблемы, поскольку наши настройки очень нестабильны, а серверы постоянно увеличиваются и уменьшаются, поэтому мы получаем множество таких ошибок.

Спасибо

0

Решение

Извините за публикацию моего собственного ответа, но это может быть кому-то полезно.

Поэтому вместо того, чтобы идти по пути попыток изменить порядок скриптов Google Startup и Shutdown, я пошел по пути создания собственного сервиса (с самого начала это звучало страшно).

Создан файл с именем /cloudsqlservice/cloudsql-startup.sh с содержанием

#!/bin/bash

echo "Starting up Google Cloud SQL"sudo /cloud_sql_proxy -dir=/cloudsql -instances_metadata /project/attributes/DB_Connections

Создал сервис systemd, создав файл с именем /lib/systemd/system/bizzycloud-sql.service

[Install]
WantedBy=multi-user.target

[Unit]
Description=Google Cloud Compute Engine SQL Proxy
After=networking.service
Before=google-shutdown-scripts.service

[Service]
Type=simple
WorkingDirectory=/cloudsqlservice
ExecStart=/cloudsqlservice/cloudsql-startup.sh
StandardOutput=journal
User=root

Замечания: Before= : Хотя это выглядит так, как будто он говорит, что он должен запускаться до сценария завершения работы, на самом деле, во время завершения работы системы параметры До и После инвертируются, поэтому завершение работы этой службы должно выполняться после сценария завершения работы

Модифицировано из: запуск прокси как службы

sudo chmod 0644 /lib/systemd/system/bizzycloud-sql.service
sudo systemctl start bizzycloud-sql.service

Надеюсь, что это поможет всем, кто сталкивается с той же проблемой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]