Можно ли в определенные часы отключить хостинг виртуальной машины google-cloud-composer? - PullRequest
0 голосов
/ 22 октября 2018

Чтобы уменьшить расходы, связанные с запуском google-cloud-composer, меня интересует возможность отключения экземпляров виртуальных машин, которые запускают виртуальную среду в определенные часы.Например: большинство наших DAG работают либо утром, либо днем, поэтому мы хотели бы отключить виртуальные машины ночью или даже в полдень, если это возможно.Я знаю, что мы можем отключить среды вручную из облачной консоли Google, но было бы здорово найти способ сделать это автоматически

Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Мы настроили крошечный кластер k8s параллельно и используем развертывание CronJob для управления масштабированием узлов пула до 0, а затем второй cronjob для его восстановления.

Развертывание выглядит примерно так (изменение количества узлов вверх и вниз).Вы можете изменить действие так, как если бы вы обрабатывали виртуальные машины (приостанавливаете ли вы экземпляры с помощью Compute в консоли?)

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: disable-composer
spec:
  schedule: "0 10 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: enable-composer
            image: google/cloud-sdk:latest
            volumeMounts:
            - name: google-app-credentials-volume
              mountPath: /etc/gcp
              readOnly: true
            env:
            - name: GOOGLE_APPLICATION_CREDENTIALS
              value: /etc/gcp/credentials.json
            args:
            - /bin/bash
            - -c 
            - gcloud auth activate-service-account service-account@gcp-project.iam.gserviceaccount.com --key-file=$GOOGLE_APPLICATION_CREDENTIALS; COMPOSER_ENV=composer-environment-name; COMPOSER_LOCATION=us-central1; COMPOSER_CLUSTER=`gcloud composer environments describe $COMPOSER_ENV --format="csv[no-heading](config.gkeCluster)" --location $COMPOSER_LOCATION | cut -d '/' -f 6`; COMPOSER_ZONE=`gcloud composer environments describe $COMPOSER_ENV --format="csv[no-heading](config.nodeConfig.location)" --location $COMPOSER_LOCATION | cut -d '/' -f 4`; gcloud container clusters resize $COMPOSER_CLUSTER --zone $COMPOSER_ZONE --size=0 --quiet;
          restartPolicy: OnFailure
          volumes:
          - name: google-app-credentials-volume
            secret:
              secretName: google-app-credentials
              items:
              - key: credentials.json
                path: credentials.json

Где google-app-credentials - это секретный файл kubernetes, содержащий нашу учетную запись службыфайл_ключа.

0 голосов
/ 22 октября 2018

К сожалению, невозможно настроить это программно с помощью облачной платформы Google.Лучшим вариантом для этого будет запуск сценария в качестве cronjob с другого хоста, который включит или выключит среду Composer, когда она не используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...