Запуск сервиса в Azure без управления ВМ - PullRequest
1 голос
/ 21 января 2020

Я бы хотел иметь базу данных InfluxDB как часть моего облачного проекта. Однако я не хочу управлять виртуальными машинами в облаке. Моей первой мыслью было использовать Azure Container Instance Service, поскольку он позволяет запускать один docker контейнер. InfluxDB может быть запущен как docker контейнер, так что можно было бы использовать это. Однако я вижу, что Azure Экземпляр контейнера часто описывается как платформа для запуска контейнеров с коротким сроком службы. Это не мой случай, моя БД должна постоянно работать для обслуживания запросов / записей.

Разве ACI не является подходящей службой для использования в моем случае? Что я должен использовать? Я знаю, что есть также Azure Служба Kubernetes, но, насколько я понимаю, эта, по-видимому, используется для запуска целых решений, а не только отдельных контейнеров.

Если я не смогу использовать InfluxDB, я буду приходится хранить CosmosDB для хранения данных временных рядов ... (Insight Time Series слишком дорог для моего простого домашнего проекта)

1 Ответ

2 голосов
/ 22 января 2020

Вы можете использовать Azure Экземпляр контейнера. Может использоваться для запуска контейнеров с длительным сроком службы. Единственное, на что нужно обратить внимание - это присоединение общего файлового ресурса в качестве постоянного хранилища для базы данных. Для получения более подробной информации вы можете обратиться к: Подключить Azure общий файловый ресурс в Azure Экземпляры контейнера

Как правило:

  1. Вам нужно создать учетную запись хранения и создать в ней общий файловый ресурс.

  2. Затем создайте ACI с Azure CLI следующим образом:

az container create \
    --resource-group "JackACI" \ 
    --name "jackacidemo245" \
    --image "influxdb" \
    --dns-name-label "jack-aci-demo" \
    --ports 8086 \ 
    --azure-file-volume-account-name $storageAccount \
    --azure-file-volume-account-key $accountKey \ 
    --azure-file-volume-share-name $shareName \ 
    --azure-file-volume-mount-path "/var/lib/influxdb"

Затем ваш контейнер будет создан и запущен:

enter image description here

Затем вы можете создать свою базу данных и записать данные:

curl -i -XPOST http://jack-aci-demo.eastasia.azurecontainer.io:8086/query --data-urlencode "q=CREATE DATABASE mydb2"

curl -i -XPOST 'http://jack-aci-demo.eastasia.azurecontainer.io:8086/write?db=mydb2' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'

Наконец, вы можете проверить общий ресурс хранилища:

enter image description here


Дополнительные документы для справки:

  1. изображение effxdb
  2. Установка переменных среды в экземплярах контейнера
...