Уменьшить кластер Google Cloud Composer до нуля? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть кластер Cloud Composer, работающий около десятка пакетов в день. Все они бегают в течение 5 часов среди ночи. Самая большая группа доступности баз данных занимает ~ 3 часа, чтобы выполнить работу на 5 узлах, и большая часть работы очень распараллеливаема (то есть, если мы масштабируем ее, скажем, до 15 узлов, она быстрее закончится sh). Чтобы не только снизить затраты (или, возможно, сократить их), но и улучшить нашу пропускную способность, было бы неплохо, если бы я мог масштабировать кластер во время работы большой группы обеспечения доступности баз данных, а затем уменьшить его на оставшиеся почти 20 часов. в тот день, когда в кластере ничего не происходит. Используя пользовательский интерфейс, он позволяет только уменьшить кластер до 3 узлов.

Мой вопрос: есть ли способ полностью «выключить» кластер Cloud Composer на часть дня? Если что, я могу хотя бы перенести его на один узел? В идеале это была бы автоматизированная задача.

Ответы [ 3 ]

2 голосов
/ 23 апреля 2020

Эта же проблема решена командой traveloka и написана подробная статья о процессе. Но в режиме ожидания они работают 1 узел, а не ноль.

https://medium.com/traveloka-engineering/enabling-autoscaling-in-google-cloud-composer-ac84d3ddd60

1 голос
/ 20 апреля 2020

Вы можете включить Autoscaling на уровне узла:

Workloads > your composer cluster name > enable Autoscaling
PROJECT=[provide your gcp project id]
COMPOSER_NAME=[provide your composer environment name]
COMPOSER_LOCATION=[provide the selected composer’s location e.g. us-central]
CLUSTER_ZONE=[provide the selected composer’s zone e.g. us-central1-a]
GKE_CLUSTER=$(gcloud composer environments describe \
${COMPOSER_NAME} \
--location ${COMPOSER_LOCATION} \
--format="value(config.gkeCluster)" \
--project ${PROJECT} | \
grep -o '[^\/]*$')
gcloud container clusters update ${GKE_CLUSTER} --enable-autoscaling \
--min-nodes 1 \
--max-nodes 10 \
--zone ${CLUSTER_ZONE} \
--node-pool=default-pool \
--project ${PROJECT}

Для рабочего уровня мы собираемся применить Горизонтальный автоскейлер (HPA) Kubernetes к развертыванию airflow-worker в Composer.

0 голосов
/ 29 апреля 2020

Облако composer также имеет расходы, которые вы ничего не можете сделать с

  • frontend (appengine flex)
  • база данных

Эти затраты являются значительными часть небольшого кластера composer.

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

GKE (которая запускает composer) не может быть уменьшена до 0 узлов, поскольку она также запускает некоторые службы kubernetes, для которых требуется процессор & ram для запуска.

Кроме этого, вы должны проверить ссылку, опубликованную SANN3, так как эти сообщения дают некоторое подробное представление о том, как добиться автоматического масштабирования.

...