На Azure, як я запускаю недовговічний контейнер Docker за графіком?


13

У мене досить простий скрипт оболонки Unix, упакований в контейнер Alpine Linux Docker, розміщений в реєстрі контейнерів Azure. VM запускає цей сценарій cron:

docker login <snip>
docker pull example.com/bar:latest
docker run  example.com/bar:latest

Чи можу я обійтися без VM і використовувати замість цього служби Azure, можливо, з яким-небудь планувальником, який запускає це в екземплярі контейнера Azure?

Моя мотивація - не хочу підтримувати та платити за VM.

Відповіді:


11

Екземпляри контейнерів Azure (ACI) можуть бути хорошим варіантом, як ви пропонуєте. Вони дозволяють запускати контейнер безпосередньо на Azure, не потребуючи управління VM, з виставленням рахунків за секунду за час використання контейнера.

Хоча одна з демонстрацій цього блогу згадує Kubernetes, ідея ACI полягає в тому, що ви можете створити контейнер через Azure CLI az container create, як і на локальній робочій станції docker create.

Щоб створити контейнер, ви можете використовувати Azure CLI ( azкоманда, див. Документи швидкого запуску ) або Azure Cloud Shell.

Вам потрібно буде створити / запустити контейнер за розкладом з іншого місця - Функції Azure можуть бути хорошим місцем для запуску команди «створення контейнера» із запланованої функції . Це підтримує bash, PowerShell та інші мови - всі вони працюють на Windows.

Якщо ви хочете продовжувати використовувати Docker-контейнери без запуску віртуальних машин або навчання Kubernetes, це може бути хорошим варіантом.

Можна також перемістити весь код у функції Azure, але це рішення більш важливе.

Оновлення: січень 2019 - Логічні програми Azure також можуть використовуватися для виконання запланованих завдань .


Я не знав, що можу використовувати PowerShell або Bash для функцій Azure! Спасибі
Сіджмен Малдер

Так, ви можете запустити будь-який виконуваний файл із Azure Functions, і bash прямо вказаний у цьому оглядовому документі . Для виклику модулів PowerShell дивіться цей блог .
RichVel

Запущено використання хмарних функцій, таких як функції Azure, AWS Lambda тощо для запуску сценаріїв встановлення, які налаштовують хмарні служби (наприклад, налаштування нового хмарного середовища). Таким чином, ви можете сподіватися, що всі сервери та фреймворки підтримують запущений bash або подібне. Традиційно першим VM, який ви встановили, був сервер "хост управління", який використовуватиметься як місце для запуску всіх налаштувань усіх середовищ. Запуск сервера без запуску всіх таких сценаріїв означає, що жоден хост не повинен платити. Сервер керування, якщо зламаний, просочує карту вашого середовища, старі сценарії та, можливо, кешовані паролі. Базовий сервер більш безпечний.
simbo1905

Це не так, що всі служби FaaS (без сервера) підтримують bash. Насправді AWS Lambda підтримує лише bash через користувацькі шари, функцію, додану наприкінці 2018 року - ви можете використовувати цей шар з відкритим кодом для спрощення запуску bash. Як правило, сервери / сервіси FaaS підтримують певні мови, при цьому деякі постачальники дозволяють розширити це - наприклад, у AWS є шари, а в Google є служба FaaS, яка дозволяє запускати будь-який контейнер Docker.
RichVel

Для простоти, якщо ви не хочете використовувати шари - ви можете написати Node / Python Lambda, який виконує bash, не використовуючи шари - див. Приклад lambdash .
RichVel


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.