Konfigurera din Azure-miljö

Slutförd

I den här lektionen använder du Azure CLI för att skapa de Azure-resurser som behövs i senare enheter. Innan du börjar ange kommandon kontrollerar du att Docker Desktop eller Docker Engine på Linux är installerat och körs.

Exemplen i den här modulen använder Bash-syntax, inklusive export och radfortsättningar med omvänt snedstreck. Använd en lokal Bash-session för övningarna. På Windows använder du en WSL 2 Linux-distribution med Docker Desktop-integrering aktiverat. Installera och använd Linux-Azure CLI och Git i den distributionen. I macOS eller Linux använder du en lokal Bash-session med åtkomst till din Docker-daemon.

Azure Cloud Shell kan köra Azure-hanteringskommandon, men den kör inte en Docker-daemon och ersätter inte modulens lokala avbildnings- och containerkörningssteg. Inbyggda PowerShell och kommandotolken kräver olika syntax för variabel och radfortsättning.

Från Bash-sessionen som du använder för övningarna kontrollerar du dina verktyg innan du skapar Azure resurser:

git --version
az version
docker version

Bekräfta att alla tre kommandona lyckas och att docker version visar både en nåbar Server och klienten. Om servern inte är tillgänglig, åtgärda Docker Desktop, Docker Engine eller WSL-integrering innan du fortsätter.

För att spara tid kan du instruera Azure att etablera resurserna först och sedan gå vidare till nästa enhet. Det kan ta upp till 10 minuter att skapa AKS-kluster (Azure Kubernetes Service). Den här processen kan köras i bakgrunden medan du fortsätter genom efterföljande enheter.

Autentisera med Azure Resource Manager

Använd följande kommando för att logga in:

az login

Välj en Azure-prenumeration

Azure-prenumerationer är logiska containrar som används för att etablera resurser i Azure. Använd följande kommando för att lista dina Azure-prenumerationer och leta sedan upp det prenumerations-ID – SubscriptionId värdet – som du planerar att använda i den här modulen.

az account list --output table

Använd följande kommando för att se till att du använder en Azure-prenumeration som gör att du kan skapa resurser i den här modulen och ersätta det önskade SubscriptionId värdet för platshållaren:

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

Definiera lokala variabler

Konfigurera följande miljövariabler för att förenkla de kommandon som du använder senare. Ersätt följande platshållare med dina egna värden:

  • Ersätt <your-Azure-region> med valfri region – till exempel eastus.
  • Ersätt <your-container-registry> med ett unikt värde. Det här värdet används för att generera ett unikt fullständigt domännamn (FQDN) för ditt Azure-containerregister när det skapas.
  • Ersätt <your-unique-DNS-prefix-to-access-your-AKS-cluster> med ett unikt värde. Det här värdet används för att generera ett unikt FQDN för ditt AKS-kluster när det skapas.

Notera

Azure containerregisternamn måste vara globalt unika för Azure och innehålla 5–50 alfanumeriska tecken (endast bokstäver och siffror). Bindestreck och understreck tillåts inte. Ersätt <your-container-registry> med ett godkänt, tillgängligt namn innan du anger AZ_CONTAINER_REGISTRY. Mer information finns i Namngivningskrav för containerregister.

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>

Skapa en Azure-resursgrupp

Azure-resursgrupper är Azure-containrar i Azure-prenumerationer för att lagra relaterade resurser för en Azure-lösning. Skapa en resursgrupp med hjälp av följande kommando:

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

Notera

Den här modulen jq använder verktyget, som installeras som standard i Azure Cloud Shell för att visa JSON-data och göra det mer läsbart.

Om du inte vill använda verktyget jq kan du på ett säkert sätt ta bort | jq del av alla kommandon i den här modulen.

Skapa ett Azure-containerregister

Med Azure Container Registry kan du skapa, lagra och hantera containeravbildningar, inklusive en containeravbildning för den här Java-appen. Skapa ett containerregister med hjälp av följande kommando:

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

Alternativet --role-assignment-mode rbac väljer uttryckligen endast behörigheter för rollbaserad åtkomstkontroll (RBAC). Detta bevarar integreringen AcrPull och --attach-acr som används i den här övningen.

För alla nya eller återanvända register som använder RBAC Registry + ABAC Repository Permissions, som stöder attributbaserad åtkomstkontroll (ABAC), stöds inte --attach-acr. Det ABAC-aktiverade integrationsarbetsflödet kräver i stället Container Registry Repository Reader för kubelet-identiteten och lämpliga lagringsplatsbehörigheter för publiceringsidentiteten. Följ arbetsflödet i stället för att köra den här övningens integrationskommandon oförändrade. Microsoft rekommenderar ABAC-aktiverat läge; den här övningens inställning med enbart RBAC är inte en rekommendation att nedgradera en befintlig ABAC-aktiverad registerresurs.

Använd följande kommando för att konfigurera Azure CLI att använda det här nyligen skapade Azure-containerregistret:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Använd följande kommando för att autentisera till det nyligen skapade Azure-containerregistret:

Notera

Innan du kör az acr login kommandot kontrollerar du att Docker Desktop eller Docker Engine på Linux körs och att dess daemon kan nås från Bash-sessionen. Om den inte kan nås får du ett felmeddelande som liknar 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

Skapa ett Azure Kubernetes Service-kluster

Du behöver ett AKS-kluster för att distribuera Java-appens containeravbildning.

Important

Alternativet --attach-acr tilldelar AcrPull rollen till AKS kubelet-identiteten. Förutom behörighet att skapa resurserna behöver ditt konto Microsoft.Authorization/roleAssignments/write i registrets omfång eller ett överordnat omfång. Enbart medverkande beviljar inte den här behörigheten. Om det behövs ber du din Azure-administratör att utföra integreringen eller bevilja lämpligt avgränsad åtkomst för rolltilldelning, till exempel Role Based Access Control Administrator, tillsammans med nödvändiga behörigheter för resurshantering.

Skapa ett AKS-kluster med hjälp av följande kommando:

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

Notera

Det kan ta upp till 10 minuter att skapa ett AKS-kluster. När du har kört föregående kommando kan du låta det fortsätta på fliken Azure CLI och gå vidare till nästa enhet.