Ознакомившись с несколькими вариантами запуска контейнеров в Google Cloud, я так и не смог найти подходящего решения среди множества вариантов - Cloud Run, Kubernetes, Container-OS...
Нам необходимо иметь возможность:
- запустить образ docker (размещенный в dockerhub)
- смонтировать постоянный диск как том. Там будут храниться большие файлы данных.
- выставить порты в интернет
- автоматическое масштабирование (до 0, когда не используется, например, ночью)
решение1
Фокусировкатолькона GCP
окружающую среду, как в вопросе.
Есть решения, которые можно использовать для выполнения рабочих нагрузок, как вы описали. Вот некоторые из них:
- Движок Kubernetes
- Облачный забег
Подробнее о различиях между GKE
и можно прочитать Cloud Run
здесь:
Вы могли бы использоватьГКЭдля вашей рабочей нагрузки по пунктам, которые вы упомянули:
- запустить образ docker (размещенный в dockerhub)
Kubernetes использует образы Docker. У вас есть возможность указать место, куда будут загружаться образыот.
- смонтировать постоянный диск как том. Там будут храниться большие файлы данных.
По умолчанию GKE
используется gce-pd
как основа для PVC
' s и PV
' s. Вы сможете хранить там данные, необходимые для pod'ов:
- выставить порты в интернет
Kubernetes имеет широкий спектр опций, позволяющих трафику попадать в ваш кластер. Вот некоторые из них:
ClusterIP
- только внутреннийNodePort
LoadBalancer
Ingress
Подробнее о них можно прочитать здесь:
- Kubernetes.io: Документация: Концепции: Сетевые сервисы: Сервис
- Cloud.google.com: Kubernetes Engine: Документация: Как: Раскрытие приложений
- автоматическое масштабирование (до 0, когда не используется, например, ночью)
Используя Kubernetes, вы можете автоматически масштабировать не только узлы, но и модули, на которых запущено ваше приложение:
- Cloud.google.com: Kubernetes Engine: Документация: Концепции: Автомасштабирование кластера- автомасштабирование кластера будетнетавтоматически уменьшить масштаб до 0 узлов
- Горизонтальный Pod Autoscaler (количество реплик):
- Cloud.google.com: Kubernetes Engine: Документация: Концепции: Горизонтальное автомасштабирование Pod- HPA будетнетмасштабировать до 0 стручков
- Вертикальный автомасштабатор Pod (ресурсы и лимит):
Дополнительные ресурсы:
- Kubernetes.io
- Cloud.google.com: Kubernetes Engine: Документация: Учебные пособия
- Github.com: Kubernetes: Kompose- Перевести Docker Compose на Kubernetes