Konfigurowanie obrazu kontenera do wykonywania wdrożeń
Z tego artykułu dowiesz się, jak tworzyć niestandardowe obrazy kontenerów Bicep w celu wdrożenia definicji środowiska w środowiskach wdrażania platformy Azure (ADE).
Z tego artykułu dowiesz się, jak utworzyć niestandardowe obrazy kontenerów programu Terraform w celu wdrożenia definicji środowiska w środowiskach wdrażania platformy Azure (ADE). Dowiesz się, jak skonfigurować obraz niestandardowy w celu aprowizacji infrastruktury przy użyciu platformy Terraform Infrastructure-as-Code (IaC).
Z tego artykułu dowiesz się, jak korzystać z programu Pulumi na potrzeby wdrożeń w środowiskach wdrażania platformy Azure (ADE). Dowiesz się, jak używać przykładowego obrazu dostarczonego przez firmę Pulumi lub jak skonfigurować obraz niestandardowy do aprowizacji infrastruktury przy użyciu platformy Pulumi Infrastructure-as-Code (IaC).
Program ADE obsługuje model rozszerzalności, który umożliwia tworzenie niestandardowych obrazów, których można używać w definicjach środowiska. Aby użyć tego modelu rozszerzalności, utwórz własne obrazy niestandardowe i zapisz je w rejestrze kontenerów, takim jak Azure Container Registry (ACR) lub Docker Hub. Następnie możesz odwoływać się do tych obrazów w definicjach środowiska w celu wdrożenia środowisk.
Definicja środowiska składa się z co najmniej dwóch plików: pliku szablonu, takiego jak azuredeploy.json lub main.bicep, oraz pliku manifestu o nazwie environment.yaml. Usługa ADE używa kontenerów do wdrażania definicji środowiska.
Zespół usługi ADE oferuje wybór obrazów, które ułatwiają rozpoczęcie pracy, w tym obraz podstawowy i obraz usługi Azure Resource Manager (ARM) — Bicep. Dostęp do tych przykładowych obrazów można uzyskać w folderze Runner-Images .
Definicja środowiska składa się z co najmniej dwóch plików: pliku szablonu, takiego jak main.tf, i pliku manifestu o nazwie environment.yaml. Kontener służy do wdrażania definicji środowiska korzystającej z programu Terraform.
Definicja środowiska składa się z co najmniej dwóch plików: pliku projektu Pulumi, Pulumi.yaml i pliku manifestu o nazwie environment.yaml. Może również zawierać program użytkownika napisany w preferowanym języku programowania: C#, TypeScript, Python itp. program ADE używa kontenerów do wdrażania definicji środowiska.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Środowiska wdrażania platformy Azure skonfigurowane w ramach subskrypcji platformy Azure.
- Aby skonfigurować usługę ADE, wykonaj czynności opisane w przewodniku Szybki start: Konfigurowanie środowisk wdrażania platformy Azure.
Używanie obrazów kontenerów z usługą ADE
Możesz użyć jednego z następujących metod używania obrazów kontenerów z usługą ADE:
- Użyj przykładowego obrazu kontenera w przypadku prostych scenariuszy, użyj przykładowego obrazu kontenera ARM-Bicep dostarczonego przez usługę ADE.
- Utwórz niestandardowy obraz kontenera W przypadku bardziej złożonych scenariuszy utwórz niestandardowy obraz kontenera spełniający określone wymagania.
Główne kroki, które należy wykonać podczas korzystania z obrazu kontenera, to:
- Wybierz typ obrazu, którego chcesz użyć: przykładowy obraz lub obraz niestandardowy.
- Jeśli używasz obrazu niestandardowego, zaczniesz od przykładowego obrazu, a następnie dostosujesz go do swoich wymagań.
- Skompiluj obraz.
- Przekaż obraz do rejestru prywatnego lub rejestru publicznego.
- Skonfiguruj dostęp do rejestru.
- W przypadku rejestru publicznego skonfiguruj anonimowe ściąganie.
- W przypadku rejestru prywatnego nadaj uprawnienia usługi ACR centrum deweloperów.
- Dodawanie lokalizacji obrazu do parametru
runner
w definicji środowiska - Wdróż środowiska korzystające z obrazu niestandardowego.
Pierwszym krokiem procesu jest wybranie typu obrazu, którego chcesz użyć. Wybierz odpowiednią kartę, aby wyświetlić proces.
Korzystanie z przykładowego obrazu kontenera
Usługa ADE obsługuje usługi ARM i Bicep bez konieczności dodatkowej konfiguracji. Możesz utworzyć definicję środowiska, która wdraża zasoby platformy Azure dla środowiska wdrażania, dodając pliki szablonów (takie jak azuredeploy.json i environment.yaml) do katalogu. Usługa ADE następnie używa przykładowego obrazu kontenera ARM-Bicep do utworzenia środowiska wdrażania.
W pliku environment.yaml właściwość określa lokalizację obrazu kontenera, runner
którego chcesz użyć. Aby użyć przykładowego obrazu opublikowanego na Rejestr Artefaktów Microsoft, użyj odpowiednich identyfikatorów runner
.
W poniższym przykładzie pokazano, runner
że odwołuje się do przykładowego obrazu kontenera ARM-Bicep:
name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: Bicep
templatePath: azuredeploy.json
Przykładowy obraz kontenera Bicep można zobaczyć w przykładowym repozytorium usługi ADE w folderze Runner-Images dla obrazu ARM-Bicep .
Aby uzyskać więcej informacji na temat tworzenia definicji środowiska, które używają obrazów kontenera ADE do wdrażania zasobów platformy Azure, zobacz Dodawanie i konfigurowanie definicji środowiska.
Użyj obrazu niestandardowego, aby skonfigurować obraz programu Terraform.
Używanie przykładowego obrazu kontenera dostarczonego przez aplikację Pulumi
Zespół Pulumi udostępnia wstępnie utworzony obraz umożliwiający rozpoczęcie pracy, który można zobaczyć w folderze Runner-Image . Ten obraz jest publicznie dostępny w usłudze Docker Hub firmy Pulumi jako pulumi/azure-deployment-environments
, więc można go używać bezpośrednio z definicji środowiska ADE.
Oto przykładowy plik environment.yaml , który korzysta ze wstępnie utworzonego obrazu:
name: SampleDefinition
version: 1.0.0
summary: First Pulumi-Enabled Environment
description: Deploys a Storage Account with Pulumi
runner: pulumi/azure-deployment-environments:0.1.0
templatePath: Pulumi.yaml
Kilka przykładowych definicji środowiska można znaleźć w folderze Środowiska.
Kompilowanie obrazu
Obraz można utworzyć przy użyciu interfejsu wiersza polecenia platformy Docker. Upewnij się, że aparat platformy Docker jest zainstalowany na komputerze. Następnie przejdź do katalogu pliku Dockerfile i uruchom następujące polecenie:
docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}
Jeśli na przykład chcesz zapisać obraz w repozytorium w rejestrze o nazwie customImage
, i przekazać go przy użyciu wersji tagu 1.0.0
, uruchom następujące polecenie:
docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0
Udostępnianie obrazu niestandardowego usłudze ADE
Aby można było używać obrazów niestandardowych, należy je przechowywać w rejestrze kontenerów. Można użyć publicznego rejestru kontenerów lub prywatnego rejestru kontenerów. Usługa Azure Container Registry (ACR) jest zdecydowanie zalecana ze względu na ścisłą integrację z usługą ADE, obraz można opublikować bez zezwalania na publiczny anonimowy dostęp do ściągania. Musisz skompilować niestandardowy obraz kontenera i wypchnąć go do rejestru kontenerów, aby udostępnić go do użycia w usłudze ADE.
Można również przechowywać obraz w innym rejestrze kontenerów, takim jak Docker Hub, ale w takim przypadku musi być publicznie dostępny.
Uwaga
Przechowywanie obrazu kontenera w rejestrze z dostępem do ściągnięcia anonimowego (nieuwierzytelnionego) sprawia, że jest on publicznie dostępny. Nie należy tego robić, jeśli obraz zawiera jakiekolwiek poufne informacje. Zamiast tego zapisz go w usłudze Azure Container Registry (ACR) z wyłączonym anonimowym dostępem do ściągania.
Aby użyć obrazu niestandardowego przechowywanego w usłudze ACR, należy upewnić się, że usługa ADE ma odpowiednie uprawnienia dostępu do obrazu. Podczas tworzenia wystąpienia usługi ACR jest ono domyślnie bezpieczne i zezwala tylko uwierzytelnieni użytkownikom na uzyskiwanie dostępu.
Za pomocą aplikacji Pulumi możesz utworzyć usługę Azure Container Registry i opublikować w niej obraz. Zapoznaj się z przykładem aprowizacji/niestandardowego obrazu dla samodzielnego projektu Pulumi, który tworzy wszystkie wymagane zasoby na koncie platformy Azure.
Wybierz odpowiednią kartę, aby dowiedzieć się więcej o każdym podejściu.
Używanie rejestru prywatnego z zabezpieczonym dostępem
Domyślnie dostęp do ściągania lub wypychania zawartości z usługi Azure Container Registry jest dostępny tylko dla uwierzytelnionych użytkowników. Możesz dodatkowo zabezpieczyć dostęp do usługi ACR, ograniczając dostęp z określonych sieci i przypisując określone role.
Aby utworzyć wystąpienie usługi ACR, które można wykonać za pomocą interfejsu wiersza polecenia platformy Azure, witryny Azure Portal, poleceń programu PowerShell i nie tylko, postępuj zgodnie z jednym z przewodników Szybki start.
Ograniczanie dostępu do sieci
Aby zabezpieczyć dostęp sieciowy do usługi ACR, możesz ograniczyć dostęp do własnych sieci lub całkowicie wyłączyć dostęp do sieci publicznej. W przypadku ograniczenia dostępu do sieci należy włączyć wyjątek zapory Zezwalaj na dostęp do tego rejestru kontenerów zaufanym usługi firmy Microsoft.
Aby wyłączyć dostęp z sieci publicznych:
Utwórz wystąpienie usługi ACR lub użyj istniejącego wystąpienia.
W witrynie Azure Portal przejdź do usługi ACR, którą chcesz skonfigurować.
W menu po lewej stronie w obszarze Ustawienia wybierz pozycję Sieć.
Na stronie Sieć na karcie Dostęp publiczny w obszarze Dostęp publiczny wybierz pozycję Wyłączone.
W obszarze Wyjątek zapory zaznacz pole wyboru Zezwalaj na dostęp do tego rejestru kontenerów za pomocą zaufanych usługi firmy Microsoft, a następnie wybierz pozycję Zapisz.
Przypisywanie roli AcrPull
Tworzenie środowisk przy użyciu obrazów kontenerów korzysta z infrastruktury usługi ADE, w tym projektów i typów środowisk. Każdy projekt ma co najmniej jeden typ środowiska projektu, który wymaga dostępu do odczytu do obrazu kontenera, który definiuje środowisko do wdrożenia. Aby bezpiecznie uzyskać dostęp do obrazów w usłudze ACR, przypisz rolę AcrPull do każdego typu środowiska projektu.
Aby przypisać rolę AcrPull do typu środowiska projektu:
W witrynie Azure Portal przejdź do usługi ACR, którą chcesz skonfigurować.
W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
Wybierz pozycję Dodaj>Dodaj przypisanie roli.
Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Ustawienie Wartość Rola Wybierz pozycję AcrPull. Przypisywanie dostępu do Wybierz pozycję Użytkownik, grupa lub jednostka usługi. Elementy członkowskie Wprowadź nazwę typu środowiska projektu, który musi uzyskać dostęp do obrazu w kontenerze. Typ środowiska projektu jest wyświetlany jak w poniższym przykładzie:
W tej konfiguracji usługa ADE używa tożsamości zarządzanej dla konta PET, niezależnie od tego, czy przypisano system, czy przypisano użytkownika.
Napiwek
To przypisanie roli musi zostać wykonane dla każdego typu środowiska projektu. Można ją zautomatyzować za pomocą interfejsu wiersza polecenia platformy Azure.
Gdy wszystko będzie gotowe do wypchnięcia obrazu do rejestru, uruchom następujące polecenie:
docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}
Tworzenie obrazu kontenera za pomocą skryptu
Zamiast tworzyć obraz niestandardowy i wypychać go do rejestru kontenerów samodzielnie, możesz użyć skryptu do skompilowania i wypchnięcia go do określonego rejestru kontenerów.
Firma Microsoft udostępnia skrypt szybkiego startu, który ułatwia tworzenie obrazu niestandardowego i wypychanie go do rejestru. Skrypt kompiluje obraz i wypycha go do określonej usługi Azure Container Registry (ACR) w repozytorium ade
i tagu latest
.
Aby użyć skryptu, musisz:
- Utwórz folder Dockerfile i scripts, aby obsługiwać model rozszerzalności usługi ADE.
- Podaj nazwę rejestru i katalog dla obrazu niestandardowego.
- Zainstaluj interfejs wiersza polecenia platformy Azure i program Docker Desktop oraz w zmiennych PATH.
- Ma uruchomiony program Docker Desktop.
- Mieć uprawnienia do wypychania do określonego rejestru.
Skrypt można wyświetlić tutaj.
Skrypt można wywołać przy użyciu następującego polecenia w programie PowerShell:
.\quickstart-image-build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}'
Ponadto jeśli chcesz wypchnąć do określonego repozytorium i nazwy tagu, możesz uruchomić następujące polecenie:
.\quickstart-image.build.ps1 -Registry '{YOUR_REGISTRY}' -Directory '{DIRECTORY_TO_YOUR_IMAGE}' -Repository '{YOUR_REPOSITORY}' -Tag '{YOUR_TAG}'
Łączenie obrazu z definicją środowiska
Podczas tworzenia definicji środowiska do używania obrazu niestandardowego we wdrożeniu edytuj runner
właściwość w pliku manifestu (environment.yaml lub manifest.yaml).
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
Aby dowiedzieć się więcej na temat tworzenia definicji środowiska, które używają obrazów kontenera usługi ADE do wdrażania zasobów platformy Azure, zobacz Dodawanie i konfigurowanie definicji środowiska.