Konfigurowanie środowiska platformy Azure
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ładeastus. - 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.