Izolowane kompilacje obrazów dla konstruktora obrazów maszyny wirtualnej platformy Azure

Izolowane kompilacje obrazów to funkcja narzędzia Azure VM Image Builder (AIB). Przenosi on podstawowy proces dostosowywania/walidacji obrazu maszyny wirtualnej z udostępnionej infrastruktury platformy do dedykowanych zasobów usługi Azure Container Instances (ACI) w ramach subskrypcji, zapewniając izolację zasobów obliczeniowych i sieciowych.

Zalety kompilacji izolowanych obrazów

Izolowane kompilacje obrazów umożliwiają ochronę w głębi systemu, ograniczając dostęp do sieci maszyny wirtualnej kompilacji tylko do subskrypcji. Izolowane kompilacje obrazów zapewniają również większą przejrzystość, umożliwiając inspekcję przetwarzania wykonywanego przez usługę AIB w celu dostosowania/zweryfikowania obrazu maszyny wirtualnej. Ponadto kompilacje izolowanych obrazów ułatwiają przeglądanie dzienników kompilacji na żywo. Szczególnie:

  1. Izolacja obliczeniowa: Kompilacje izolowanych obrazów wykonują główną część przetwarzania obrazów w zasobach ACI w subskrypcji zamiast na udostępnionych zasobach platformy AIB. Usługa ACI zapewnia izolację funkcji hypervisor dla każdej grupy kontenerów w celu zapewnienia, że kontenery są uruchamiane w sposób izolowany bez udostępniania jądra.

  2. Izolacja sieci: Kompilacje izolowanych obrazów usuwa całą bezpośrednią komunikację usługi WinRM/ssh między kompilacją maszyny wirtualnej i składnikami zaplecza usługi AIB.

    • Jeśli aprowizujesz szablon AIB bez własnej podsieci dla maszyny wirtualnej kompilacji, zasób publicznego adresu IP nie jest już aprowizacji w przejściowej grupie zasobów w czasie kompilacji obrazu.
    • Jeśli aprowizujesz szablon AIB z istniejącą podsiecią na potrzeby kompilacji maszyny wirtualnej, kanał komunikacji oparty na usłudze Private Link nie będzie już konfigurowany między maszyną wirtualną kompilacji a zasobami platformy zaplecza usługi AIB. Zamiast tego kanał komunikacyjny jest konfigurowany między usługą ACI a zasobami maszyny wirtualnej kompilacji — oba te zasoby znajdują się w przejściowej grupie zasobów w ramach subskrypcji.
    • Począwszy od interfejsu API w wersji 2024-02-01, można określić drugą podsieć do wdrożenia usługi ACI oprócz podsieci dla maszyny wirtualnej kompilacji. W przypadku określenia parametru AIB usługa AIB wdraża usługę ACI w tej podsieci i nie ma potrzeby konfigurowania kanału komunikacyjnego opartego na usłudze Private Link między usługą ACI a maszyną wirtualną kompilacji. Aby uzyskać więcej informacji na temat drugiej podsieci, zobacz sekcję tutaj.
  3. Przezroczystość: AIB jest oparta na hashiCorp Packer. W subskrypcji izolowane kompilacje obrazów są wykonywane program Packer w usłudze ACI, co umożliwia inspekcję zasobu usługi ACI i jego kontenerów. Podobnie posiadanie całego potoku komunikacji sieciowej w ramach subskrypcji umożliwia sprawdzenie wszystkich zasobów sieciowych, ich ustawień i przydziałów.

  4. Lepsze przeglądanie dzienników na żywo: usługa AIB zapisuje dzienniki dostosowywania na koncie magazynu w przejściowej grupie zasobów w ramach subskrypcji. Kompilacje izolowanych obrazów umożliwiają wykonanie tych samych dzienników bezpośrednio w witrynie Azure Portal, co można zrobić, przechodząc do kontenera usługi AIB w zasobie ACI.

Topologie sieci

Izolowane kompilacje obrazów wdrażają interfejs ACI i maszynę wirtualną kompilacji zarówno w przejściowej grupie zasobów w ramach subskrypcji. Aby usługa AIB mogła dostosować/zweryfikować obraz, wystąpienia kontenerów uruchomione w usłudze ACI muszą mieć ścieżkę sieciową do maszyny wirtualnej kompilacji. Na podstawie niestandardowych potrzeb sieciowych i zasad można skonfigurować usługę AIB tak, aby korzystała z różnych topologii sieci w tym celu:

Nie wprowadzaj własnej podsieci maszyny wirtualnej kompilacji

  • Tę topologię można wybrać, nie określając vnetConfig pola w szablonie obrazu lub określając pole, ale bez pól podrzędnych i .subnetIdcontainerInstanceSubnetId
  • W takim przypadku usługa AIB wdraża sieć wirtualną w przejściowej grupie zasobów wraz z dwiema podsieciami i sieciowymi grupami zabezpieczeń. Jedna z podsieci służy do wdrażania usługi ACI, podczas gdy druga podsieć jest używana do wdrażania maszyny wirtualnej kompilacji. Sieciowe grupy zabezpieczeń są skonfigurowane w celu umożliwienia komunikacji między dwiema podsieciami.
  • W tym przypadku usługa AIB nie wdraża zasobu publicznego adresu IP ani potoku komunikacji opartej na usłudze Private Link.

Bring your own Build VM subnet but don't bring your own ACI subnet (Przynieś własną podsieć maszyny wirtualnej kompilacji, ale nie wprowadzaj własnej podsieci usługi ACI)

  • Tę topologię vnetConfig można wybrać, określając pole wraz z subnetId polem podrzędnym, ale nie containerInstanceSubnetId polem podrzędnym w szablonie obrazu.
  • W takim przypadku usługa AIB wdraża tymczasową sieć wirtualną w przejściowej grupie zasobów wraz z dwiema podsieciami i sieciowymi grupami zabezpieczeń. Jedna z podsieci służy do wdrażania usługi ACI, podczas gdy druga podsieć jest używana do wdrażania zasobu prywatnego punktu końcowego. Maszyna wirtualna kompilacji jest wdrażana w określonej podsieci. Potok komunikacji oparty na łączach prywatnych składający się z prywatnego punktu końcowego, usługi Private Link, usługi Azure Load Balancer i maszyny wirtualnej serwera proxy jest również wdrażany w przejściowej grupie zasobów w celu ułatwienia komunikacji między podsiecią ACI a podsiecią maszyny wirtualnej kompilacji.

Przynieś własną podsieć maszyny wirtualnej kompilacji i przynieś własną podsieć usługi ACI

  • Tę topologię vnetConfig można wybrać, określając pole wraz z polami subnetId podrzędnymi i containerInstanceSubnetId w szablonie obrazu. Ta opcja (i pole podrzędne containerInstanceSubnetId) jest dostępna od wersji 2024-02-01 interfejsu API. Możesz również zaktualizować istniejące szablony, aby korzystały z tej topologii.
  • W takim przypadku usługa AIB wdraża maszynę wirtualną kompilacji w określonej podsieci maszyny wirtualnej kompilacji i ACI w określonej podsieci ACI.
  • Usługa AIB nie wdraża żadnych zasobów sieciowych w przejściowej grupie zasobów, w tym publicznego adresu IP, sieci wirtualnej, podsieci, sieciowych grup zabezpieczeń, prywatnego punktu końcowego, usługi Private Link, usługi Azure Load Balancer i maszyny wirtualnej serwera proxy. Ta topologia może być używana, jeśli masz ograniczenia przydziału lub zasady, które nie zezwalają na wdrażanie tych zasobów.
  • Podsieć ACI musi spełniać określone warunki, aby umożliwić jej używanie z izolowanymi kompilacjami obrazów.

Szczegółowe informacje o tych polach można znaleźć w dokumentacji szablonu. Opcje sieci zostały szczegółowo omówione tutaj.

Zgodność ze starszymi wersjami

Izolowane kompilacje obrazów to zmiana na poziomie platformy i nie ma wpływu na interfejsy usługi AIB. W związku z tym istniejące zasoby szablonu obrazu i wyzwalacza nadal działają i nie ma żadnych zmian w sposobie wdrażania nowych zasobów tego typu. Musisz utworzyć nowe szablony lub zaktualizować istniejące szablony, jeśli chcesz użyć topologii sieci umożliwiającej przeniesienie własnej podsieci ACI.

Kompilacje obrazów są automatycznie migrowane do izolowanych kompilacji obrazów i nie trzeba podejmować żadnych działań, aby wyrazić zgodę. Ponadto dzienniki dostosowywania będą nadal dostępne na koncie magazynu.

W zależności od topologii sieci określonej w szablonie obrazu można obserwować kilka nowych zasobów tymczasowo wyświetlanych w przejściowej grupie zasobów (na przykład ACI, Virtual Network, Network Network, Network Security Group i Private Endpoint), podczas gdy niektóre inne zasoby nie są już wyświetlane (na przykład publiczny adres IP). Jak wcześniej te zasoby tymczasowe istnieją tylko podczas kompilacji, a usługa AIB usuwa je później.

Ważne

Upewnij się, że twoja subskrypcja jest zarejestrowana w usłudze Microsoft.ContainerInstance provider:

  • Interfejs wiersza polecenia platformy Azure: az provider register -n Microsoft.ContainerInstance
  • PowerShell: Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Po pomyślnym zarejestrowaniu subskrypcji upewnij się, że w twojej subskrypcji nie ma żadnych zasad platformy Azure, które odmawiają wdrożenia usługi ACI. Zasady zezwalające tylko na ograniczony zestaw typów zasobów, które nie obejmują usługi ACI, spowodowałyby niepowodzenie kompilacji izolowanych obrazów.

Upewnij się, że subskrypcja ma również wystarczający limit przydziału zasobów wymaganych do wdrożenia zasobów usługi ACI.

Ważne

W zależności od topologii sieci określonej w szablonie obrazu może być konieczne wdrożenie tymczasowych zasobów związanych z siecią w przejściowej grupie zasobów w ramach subskrypcji. Upewnij się, że żadne zasady platformy Azure nie odmawiają wdrożenia takich zasobów (sieć wirtualna z podsieciami, sieciowa grupa zabezpieczeń, prywatny punkt końcowy) w grupie zasobów.

Jeśli masz zasady platformy Azure stosujące plany ochrony przed atakami DDoS do dowolnej nowo utworzonej sieci wirtualnej, zrelaksuj zasady dla grupy zasobów lub upewnij się, że tożsamość zarządzana szablonu ma uprawnienia do dołączenia do planu. Alternatywnie można użyć topologii sieci, która nie wymaga wdrożenia nowej sieci wirtualnej przez usługę AIB.

Ważne

Upewnij się, że podczas korzystania z usługi AIB są przestrzegane wszystkie najlepsze rozwiązania .

Uwaga

Usługa AIB jest w trakcie wdrażania tej zmiany we wszystkich lokalizacjach i klientach. Niektóre z tych szczegółów (szczególnie związane z wdrażaniem nowych zasobów związanych z siecią) mogą ulec zmianie, ponieważ proces jest dostrojony w oparciu o dane telemetryczne i opinie dotyczące usług. W przypadku błędów zapoznaj się z przewodnikiem rozwiązywania problemów.

Następne kroki