Wpis z mikrobloga

Mam na azure rejestr kontenerów dockera.
Chciałbym stworzyć i usuwać instancje kontenerów w określonych godzinach. Np. o 8 tworze instancję, o 16 usuwam, by nie marnowało zasobów. Jak to najlepiej zrobić? Przeglądałem azure automation ale nie trafiłem na nic co by mi to ułatwiło.
#azure #docker #programowanie
  • 11
via Wykop Mobilny (Android)
  • 1
@w3soly: skorzystaj z Azure Automation, scheduler i AZ CLI tam lub Azure RM powershell:

az container delete --name helloworldcontainer --resource-group containertest

Usługa Azure Automation musi mieć uprawnienia jako Service #!$%@? do modyfikowania zasobów.

Daj znać czy Ci się uda, jak nie to spróbuję coś napisać ;)
@w3soly: Też opcja - w odpowiedziach które dostałeś i tak będziesz pytać Azure RM API - pytanie w jaki sposób - czy za pomocą SDK w Azure Funcs, czy za pomocą Azure Automation i modułów PSowych - które też pytają to samo API.

Żeby była jasność - używasz własnego Azure Container Registry z Twoimi obrazami, i chciałbyś na ich podstawie budować nowe kontenery jako Azure Container Instance i je usuwać, tak?
@Koliat: @w3soly:

Jesli korzystasz z ACR jako repozytorium obrazow, i deployjuesz kontenery ACI on demand z Twojego repo, to zwykle polecenia stad: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart : dzialaja dobrze:

az container create --resource-group myResourceGroup --name mycontainer --image microsoft/aci-helloworld --dns-name-label aci-demo --ports 80
az container delete --resource-group myResourceGroup --name mycontainer

Oczywiście ww. wyciagaja obraz z publicznych kontenerow dockera, ale możesz przecież odpalić z własnego obrazu ACR. Pytanie tylko skad wywolasz to polecenie AZ CLI.
@Koliat: Tak, postawiłem sobie Azure Container Registry i w nim hostuje obrazy docker. I właśnie z tego repo chce tworzyć Container Instance.
Tylko chce zautomatyzować działanie, chcę aby samo stawiało instancję i ją usuwało o określonych godzinach, ponieważ instancja z GPU jest trochę zasobożerna :)
@w3soly: Azure Automation, PowerShell - musisz zaimportować moduł AzureRM.ContainerInstances (z Modules Gallery). Potem ustawiasz schedule i tworzysz runbook z definicją np. jak niżej - ten skrypt sprawdza czy istnieje dany CI, jeśli nie tworzy, jeśli tak - usuwa. Oczywiście możesz to rozbic na różne scenariusze jak potrzebujesz.

Swoją drogą, to jakaś produkcja czy dev?

$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$#!$%@?=Get-AutomationConnection -Name $connectionName

Add-AzureRmAccount
-#!$%@?

-TenantId