Einrichten Ihrer Azure-Umgebung

Abgeschlossen

In dieser Lektion verwenden Sie die Azure CLI, um die azure-Ressourcen zu erstellen, die in späteren Einheiten benötigt werden. Bevor Sie mit der Eingabe von Befehlen beginnen, stellen Sie sicher, dass Docker Desktop oder Docker Engine unter Linux installiert und ausgeführt wird.

Die Beispiele in diesem Modul verwenden Bash-Syntax, einschließlich export und Zeilenfortsetzungen mit Backslash. Verwenden Sie eine lokale Bash-Sitzung für die Übungen. Verwenden Sie auf Windows eine WSL 2 Linux-Verteilung mit aktivierter Docker Desktop-Integration; installieren und verwenden Sie die Linux-Azure CLI und Git in dieser Verteilung. Verwenden Sie unter macOS oder Linux eine lokale Bash-Sitzung mit Zugriff auf Ihren Docker-Daemon.

Azure Cloud Shell kann Azure Verwaltungsbefehle ausführen, aber es führt keinen Docker-Daemon aus und ist kein Ersatz für die lokalen Imagebuild- und Containerausführungsschritte dieses Moduls. Native PowerShell und Eingabeaufforderung erfordern unterschiedliche Syntax für Variable und Zeilenfortsetzung.

Überprüfen Sie in der Bash-Sitzung, die Sie für die Übungen verwenden, Ihre Tools, bevor Sie Azure Ressourcen erstellen:

git --version
az version
docker version

Vergewissern Sie sich, dass alle drei Befehle erfolgreich ausgeführt werden und dass docker version eine erreichbare Server sowie den Client anzeigt. Wenn der Server nicht verfügbar ist, beheben Sie die Docker Desktop-, Docker-Engine- oder WSL-Integration, bevor Sie fortfahren.

Um Zeit zu sparen, können Sie Azure anweisen, zuerst die Ressourcen bereitzustellen und dann zur nächsten Einheit zu wechseln. Die Erstellung von Azure Kubernetes Service (AKS)-Clustern kann bis zu 10 Minuten dauern. Dieser Prozess kann im Hintergrund ausgeführt werden, während Sie nachfolgende Einheiten durchlaufen.

Authentifizieren mit Azure Resource Manager

Verwenden Sie den folgenden Befehl, um sich anzumelden:

az login

Auswählen eines Azure-Abonnements

Azure-Abonnements sind logische Container, die zum Bereitstellen von Ressourcen in Azure verwendet werden. Verwenden Sie den folgenden Befehl, um Ihre Azure-Abonnements auflisten und dann die Abonnement-ID – den SubscriptionId Wert – zu suchen, den Sie in diesem Modul verwenden möchten.

az account list --output table

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass Sie ein Azure-Abonnement verwenden, mit dem Sie Ressourcen für die Zwecke dieses Moduls erstellen können, indem Sie Ihren bevorzugten SubscriptionId Wert für den Platzhalter ersetzen:

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

Definieren lokaler Variablen

Um die Befehle zu vereinfachen, die Sie später verwenden, richten Sie die folgenden Umgebungsvariablen ein. Achten Sie darauf, die folgenden Platzhalter durch Ihre eigenen Werte zu ersetzen:

  • Ersetzen Sie <your-Azure-region> mit Ihrer ausgewählten Region, eastus zum Beispiel.
  • Ersetzen Sie <your-container-registry> durch einen eindeutigen Wert. Dieser Wert wird verwendet, um einen eindeutigen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) für Ihre Azure-Containerregistrierung zu generieren, wenn er erstellt wird.
  • Ersetzen Sie <your-unique-DNS-prefix-to-access-your-AKS-cluster> durch einen eindeutigen Wert. Dieser Wert wird verwendet, um einen eindeutigen FQDN für Ihren AKS-Cluster zu generieren, wenn er erstellt wird.

Hinweis

Azure Containerregistrierungsnamen müssen global für Azure eindeutig sein und 5-50 alphanumerische Zeichen enthalten (nur Buchstaben und Zahlen). Bindestriche und Unterstriche sind nicht zulässig. Ersetzen Sie <your-container-registry> durch einen konformen, verfügbaren Namen, bevor Sie AZ_CONTAINER_REGISTRY festlegen. Weitere Informationen finden Sie unter Benennungsanforderungen für Containerregistrierungen.

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>

Erstellen einer Azure-Ressourcengruppe

Azure-Ressourcengruppen sind Azure-Container in Azure-Abonnements zum Halten verwandter Ressourcen für eine Azure-Lösung. Erstellen Sie eine Ressourcengruppe mithilfe des folgenden Befehls:

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

Hinweis

Dieses Modul verwendet das jq-Tool, das standardmäßig in Azure Cloud Shell installiert wird, um JSON-Daten anzuzeigen und besser lesbar zu machen.

Wenn Sie das jq-Tool nicht verwenden möchten, können Sie den | jq-Teil aller Befehle in diesem Modul sicher entfernen.

Erstellen einer Azure-Containerregistrierung

Mit der Azure Container Registry können Sie Containerimages erstellen, speichern und verwalten, einschließlich eines Containerimages für diese Java-App. Erstellen Sie eine Containerregistrierung mithilfe des folgenden Befehls:

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

Die --role-assignment-mode rbac-Option wählt explizit ausschließlich RBAC-Berechtigungen aus. Dies behält die in dieser Übung verwendete --attach-acr und AcrPull-Integration bei.

Für eine neue oder wiederverwendete Registrierung mit RBAC-Registrierungs- und ABAC-Repositoryberechtigungen, die attributbasierte Zugriffssteuerung (Access Control, ABAC) unterstützen, wird --attach-acr nicht unterstützt. Der ABAC-fähige Integrationsworkflow erfordert stattdessen Container Registry Repository Reader die Kubelet-Identität und die entsprechenden Repositoryberechtigungen für die Veröffentlichungsidentität. Folgen Sie diesem Workflow, anstatt die Integrationsbefehle dieser Übung unverändert auszuführen. Microsoft empfiehlt den ABAC-aktivierten Modus; die RBAC-Einstellung dieser Übung ist keine Empfehlung, eine vorhandene ABAC-fähige Registrierung downzugraden.

Verwenden Sie den folgenden Befehl, um die Azure CLI so zu konfigurieren, dass diese neu erstellte Azure-Containerregistrierung verwendet wird:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Verwenden Sie den folgenden Befehl, um sich bei der neu erstellten Azure-Containerregistrierung zu authentifizieren:

Hinweis

Bevor Sie den az acr login Befehl ausführen, stellen Sie sicher, dass Docker Desktop oder Docker Engine unter Linux ausgeführt wird und dass der Daemon über Ihre Bash-Sitzung erreichbar ist. Wenn er nicht erreichbar ist, erhalten Sie eine Fehlermeldung ähnlich wie 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

Erstellen eines Azure Kubernetes Service-Clusters

Sie benötigen einen AKS-Cluster, um das Java-App-Containerimage bereitzustellen.

Important

Die --attach-acr Option weist der AKS-Kubelet-Identität die AcrPull Rolle zu. Zusätzlich zur Berechtigung zum Erstellen der Ressourcen benötigt Ihr Account Microsoft.Authorization/roleAssignments/write im Registrierungsbereich oder in einem übergeordneten Bereich. Mitwirkender allein gewährt diese Berechtigung nicht. Bitten Sie bei Bedarf Ihren Azure-Administrator, die Integration durchzuführen oder entsprechend bereichsbezogenen Zugriff für Rollenzuweisungen zu gewähren, z. B. Role Based Access Control Administrator zusammen mit den erforderlichen Ressourcenverwaltungsberechtigungen.

Erstellen Sie einen AKS-Cluster mithilfe des folgenden Befehls:

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

Hinweis

Das Erstellen eines AKS-Clusters kann bis zu 10 Minuten dauern. Nachdem Sie den vorherigen Befehl ausgeführt haben, können Sie den Vorgang auf ihrer Azure CLI-Registerkarte fortsetzen und zur nächsten Einheit wechseln.