Konfigurowanie środowiska platformy Azure

Ukończone

W tej lekcji użyjesz interfejsu wiersza polecenia platformy Azure do utworzenia zasobów platformy Azure potrzebnych w kolejnych lekcjach. Przed rozpoczęciem wprowadzania poleceń upewnij się, że program Docker Desktop lub Docker Engine w systemie Linux jest zainstalowany i uruchomiony.

W przykładach w tym module użyto składni powłoki Bash, w tym elementu export oraz kontynuacji wiersza znakiem ukośnika odwrotnego. Na potrzeby ćwiczeń użyj lokalnej sesji powłoki Bash. W systemie Windows użyj dystrybucji systemu Linux WSL 2 z włączoną integracją z programem Docker Desktop; zainstaluj i używaj linuksowego narzędzia Azure CLI oraz narzędzia Git w tej dystrybucji. W systemie macOS lub Linux użyj lokalnej sesji powłoki Bash z dostępem do demona platformy Docker.

Azure Cloud Shell może uruchamiać polecenia zarządzania Azure, ale nie uruchamia demona platformy Docker i nie zastępuje lokalnych kroków tworzenia obrazów i uruchamiania kontenera tego modułu. Natywny program PowerShell i wiersz polecenia wymagają innej składni zmiennych i kontynuacji wiersza.

W sesji powłoki Bash, która będzie używana do ćwiczeń, sprawdź narzędzia przed utworzeniem Azure zasobów:

git --version
az version
docker version

Upewnij się, że wszystkie trzy polecenia kończą się powodzeniem i że docker version pokazuje osiągalne Server, a także klienta. Jeśli serwer jest niedostępny, przed kontynuowaniem napraw Docker Desktop, Docker Engine lub integrację z WSL.

Aby zaoszczędzić czas, możesz poinstruować platformę Azure, aby najpierw aprowizować zasoby, a następnie przejść do następnej jednostki. Tworzenie klastra usługi Azure Kubernetes Service (AKS) może potrwać do 10 minut. Ten proces można uruchomić w tle podczas przechodzenia przez kolejne jednostki.

Uwierzytelnianie za pomocą usługi Azure Resource Manager

Użyj następującego polecenia, aby się zalogować:

az login

Wybieranie subskrypcji platformy Azure

Subskrypcje platformy Azure to kontenery logiczne używane do aprowizowania zasobów na platformie Azure. Użyj następującego polecenia, aby wyświetlić listę subskrypcji platformy Azure, a następnie znajdź identyfikator subskrypcji — SubscriptionId wartość — która ma być używana w tym module.

az account list --output table

Użyj następującego polecenia, aby upewnić się, że korzystasz z subskrypcji platformy Azure, która umożliwia tworzenie zasobów na potrzeby tego modułu, podstawiając preferowaną wartość dla symbolu zastępczego SubscriptionId.

az account set --subscription "<your-subscription-ID>"

Definiowanie zmiennych lokalnych

Aby uprościć polecenia, których używasz później, skonfiguruj następujące zmienne środowiskowe. Pamiętaj, aby zastąpić następujące elementy zastępcze własnymi wartościami.

  • Zastąp <your-Azure-region> element wybranym regionem — na przykład eastus.
  • Zastąp <your-container-registry> element unikatową wartością. Ta wartość służy do generowania unikatowej w pełni kwalifikowanej nazwy domeny (FQDN) dla rejestru kontenerów platformy Azure podczas jego tworzenia.
  • Zastąp <your-unique-DNS-prefix-to-access-your-AKS-cluster> element unikatową wartością. Ta wartość służy do generowania unikatowej nazwy FQDN dla klastra usługi AKS podczas jego tworzenia.

Notatka

Nazwy rejestrów kontenerów platformy Azure muszą być globalnie unikatowe w Azure i zawierać od 5 do 50 znaków alfanumerycznych (tylko litery i cyfry). Łączniki i podkreślenia nie są dozwolone. Zastąp <your-container-registry> zgodną, dostępną nazwą przed ustawieniem AZ_CONTAINER_REGISTRY. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące nazewnictwa rejestru kontenerów.

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>

Tworzenie grupy zasobów platformy Azure

Grupy zasobów platformy Azure to kontenery platformy Azure w subskrypcjach platformy Azure do przechowywania powiązanych zasobów dla rozwiązania platformy Azure. Utwórz grupę zasobów przy użyciu następującego polecenia:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION \
| jq

Notatka

W tym module jest używane narzędzie jq, które jest instalowane domyślnie w usłudze Azure Cloud Shell do wyświetlania danych JSON i zwiększenia czytelnego sposobu ich odczytu.

Jeśli nie chcesz używać narzędzia jq, możesz bezpiecznie usunąć | jq część wszystkich poleceń w tym module.

Tworzenie rejestru kontenerów platformy Azure

Usługa Azure Container Registry umożliwia tworzenie i przechowywanie obrazów kontenerów oraz zarządzanie nimi, w tym obraz kontenera dla tej aplikacji Java. Utwórz rejestr kontenerów przy użyciu następującego polecenia:

az acr create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_CONTAINER_REGISTRY \
    --sku Basic \
    --role-assignment-mode rbac \
| jq

Opcja --role-assignment-mode rbac jawnie określa uprawnienia tylko do kontroli dostępu opartej na rolach (RBAC). To zachowuje integrację --attach-acr i AcrPull używaną w tym ćwiczeniu.

W przypadku każdego nowego lub ponownie użytego rejestru przy użyciu RBAC Registry + ABAC Repository Permissions, który obsługuje kontrolę dostępu opartą na atrybutach (ABAC), --attach-acr nie jest obsługiwane. Zamiast tego przepływ pracy integracji z włączoną usługą ABAC wymaga przypisania Container Registry Repository Reader do tożsamości kubelet i odpowiednich uprawnień do repozytorium dla tożsamości publikowania. Postępuj zgodnie z tym przepływem pracy zamiast uruchamiać polecenia integracji tego ćwiczenia bez zmian. Microsoft zaleca tryb z włączoną kontrolą ABAC; ustawienie tego ćwiczenia: tylko RBAC nie jest zaleceniem obniżenia poziomu istniejącego rejestru z włączoną kontrolą ABAC.

Użyj następującego polecenia, aby skonfigurować interfejs wiersza polecenia platformy Azure do korzystania z nowo utworzonego rejestru kontenerów platformy Azure:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Użyj następującego polecenia, aby uwierzytelnić się w nowo utworzonym rejestrze kontenerów platformy Azure:

Notatka

Przed uruchomieniem polecenia az acr login upewnij się, że program Docker Desktop lub Docker Engine w systemie Linux jest uruchomiony i że jego demon jest osiągalny z sesji powłoki Bash. Jeśli nie jest osiągalna, zostanie wyświetlony komunikat o błędzie podobny do następującego Cannot connect to the Docker daemon at unix:///$HOME_DIR/.docker/run/docker.sock. Is the docker daemon running?

az acr login --name $AZ_CONTAINER_REGISTRY

Utwórz klaster usługi Azure Kubernetes Service

Aby wdrożyć obraz kontenera aplikacji Java, potrzebny jest klaster usługi AKS.

Important

Opcja --attach-acr przypisuje rolę AcrPull tożsamości kubelet usługi AKS. Oprócz uprawnień do tworzenia zasobów twoje konto musi mieć przypisanie Microsoft.Authorization/roleAssignments/write w zakresie rejestru lub zakresu nadrzędnego. Samo bycie współautorem nie daje tego uprawnienia. W razie potrzeby poproś administratora Azure o przeprowadzenie integracji lub udzielenie dostępu do przypisywania ról o odpowiednim zakresie, takiego jak Administrator kontroli dostępu opartej na rolach, wraz z wymaganymi uprawnieniami do zarządzania zasobami.

Utwórz klaster usługi AKS przy użyciu następującego polecenia:

az aks create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_KUBERNETES_CLUSTER \
    --attach-acr $AZ_CONTAINER_REGISTRY \
    --dns-name-prefix=$AZ_KUBERNETES_CLUSTER_DNS_PREFIX \
    --generate-ssh-keys \
| jq

Notatka

Tworzenie klastra usługi AKS może potrwać do 10 minut. Po uruchomieniu poprzedniego polecenia możesz pozwolić na jego kontynuowanie w zakładce CLI platformy Azure i przejść do następnej jednostki.