Uw Azure-omgeving instellen
In deze les gebruikt u de Azure CLI om de Azure-resources te maken die nodig zijn in latere eenheden. Voordat u begint met het invoeren van opdrachten, controleert u of Docker Desktop of Docker Engine op Linux is geïnstalleerd en wordt uitgevoerd.
In de voorbeelden in deze module worden Bash-syntaxis gebruikt, inclusief export en backslash-regelvervolgingen. Gebruik een lokale Bash-sessie voor de oefeningen. Gebruik op Windows een WSL 2 Linux-distributie waarvoor Docker Desktop-integratie is ingeschakeld; installeer en gebruik de Linux-Azure CLI en Git in die distributie. Gebruik op macOS of Linux een lokale Bash-sessie met toegang tot uw Docker-daemon.
Azure Cloud Shell kan Azure-beheeropdrachten uitvoeren, maar voert geen Docker-daemon uit en is geen vervanging voor de lokale stappen voor het bouwen van images en het uitvoeren van containers in deze module. De ingebouwde PowerShell en Opdrachtprompt vereisen een andere syntaxis voor variabelen en regelvoortzetting.
Controleer vanuit de Bash-sessie die u voor de oefeningen gaat gebruiken uw hulpprogramma's voordat u Azure resources maakt:
git --version
az version
docker version
Controleer of alle drie de opdrachten zijn geslaagd en dat docker version een bereikbaar Server en de client weergeeft. Als de server niet beschikbaar is, lost u het probleem met Docker Desktop, Docker Engine of de WSL-integratie op voordat u doorgaat.
Als u tijd wilt besparen, kunt u Azure instrueren om eerst de resources in te richten en vervolgens verder te gaan met de volgende les. Het maken van AKS-clusters (Azure Kubernetes Service) kan maximaal 10 minuten duren. Dit proces kan op de achtergrond worden uitgevoerd terwijl u doorgaat met volgende eenheden.
Verifiëren met Azure Resource Manager
Gebruik de volgende opdracht om u aan te melden:
az login
Een Azure-abonnement selecteren
Azure-abonnementen zijn logische containers die worden gebruikt voor het inrichten van resources in Azure. Gebruik de volgende opdracht om uw Azure-abonnementen weer te geven en zoek vervolgens de abonnements-id (de SubscriptionId waarde) die u in deze module wilt gebruiken.
az account list --output table
Gebruik de volgende opdracht om ervoor te zorgen dat u een Azure-abonnement gebruikt waarmee u resources kunt maken voor de doeleinden van deze module, waarbij u de gewenste SubscriptionId waarde vervangt door de tijdelijke aanduiding:
az account set --subscription "<your-subscription-ID>"
Lokale variabelen definiëren
Als u de opdrachten die u later gebruikt, wilt vereenvoudigen, stelt u de volgende omgevingsvariabelen in. Vervang de volgende tijdelijke aanduidingen door uw eigen waarden:
- Vervang door
<your-Azure-region>uw gewenste regio,eastusbijvoorbeeld. - Vervang
<your-container-registry>met een unieke waarde. Deze waarde wordt gebruikt om een unieke FQDN (Fully Qualified Domain Name) te genereren voor uw Azure-containerregister wanneer deze wordt gemaakt. - Vervang
<your-unique-DNS-prefix-to-access-your-AKS-cluster>met een unieke waarde. Deze waarde wordt gebruikt om een unieke FQDN te genereren voor uw AKS-cluster wanneer deze wordt gemaakt.
Notitie
Azure containerregisternamen moeten globaal uniek zijn in Azure en 5-50 alfanumerieke tekens bevatten (alleen letters en cijfers). Afbreekstreepjes en onderstrepingstekens zijn niet toegestaan. Vervang <your-container-registry> door een compatibele, beschikbare naam voordat u AZ_CONTAINER_REGISTRY instelt. Zie De naamgevingsvereisten voor containerregisters voor meer informatie.
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>
Maak een Azure-resourcegroep
Azure-resourcegroepen zijn Azure-containers in Azure-abonnementen voor het bewaren van gerelateerde resources voor een Azure-oplossing. Maak een resourcegroep met behulp van de volgende opdracht:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION \
| jq
Notitie
In deze module wordt het hulpprogramma jq gebruikt, dat standaard is geïnstalleerd op Azure Cloud Shell- om JSON-gegevens weer te geven en beter leesbaar te maken.
Als u het hulpprogramma jq niet wilt gebruiken, kunt u het | jq deel van alle opdrachten in deze module veilig verwijderen.
Een Azure-containerregister maken
Met Azure Container Registry kunt u containerinstallatiekopieën bouwen, opslaan en beheren, inclusief een containerinstallatiekopieën voor deze Java-app. Maak een containerregister met behulp van de volgende opdracht:
az acr create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_CONTAINER_REGISTRY \
--sku Basic \
--role-assignment-mode rbac \
| jq
De --role-assignment-mode rbac optie selecteert expliciet alleen op rollen gebaseerd toegangsbeheer (RBAC)-machtigingen. Dit behoudt de --attach-acr en AcrPull integratie die in deze oefening wordt gebruikt.
Voor elk nieuw of opnieuw gebruikt register dat gebruikmaakt van RBAC Registry + ABAC Repository Permissions, dat ondersteuning biedt voor op kenmerken gebaseerd toegangsbeheer (ABAC), wordt --attach-acr niet ondersteund. De integratiewerkstroom met ABAC-functionaliteit vereist in plaats daarvan Container Registry Repository Reader voor de kubelet-identiteit en de juiste opslagplaatsmachtigingen voor de publicatie-identiteit. Volg deze werkstroom in plaats van de integratieopdrachten van deze oefening ongewijzigd uit te voeren. Microsoft raadt de modus met ABAC ingeschakeld aan; de instelling voor alleen RBAC van deze oefening is geen aanbeveling om een bestaand register met ABAC ingeschakeld te downgraden.
Gebruik de volgende opdracht om de Azure CLI te configureren voor het gebruik van dit zojuist gemaakte Azure-containerregister:
az configure --defaults acr=$AZ_CONTAINER_REGISTRY
Gebruik de volgende opdracht om te verifiëren bij het zojuist gemaakte Azure-containerregister:
Notitie
Voordat u de az acr login opdracht uitvoert, moet u ervoor zorgen dat Docker Desktop of Docker Engine op Linux wordt uitgevoerd en dat de daemon bereikbaar is vanuit uw Bash-sessie. Als deze niet bereikbaar is, wordt er een foutbericht weergegeven dat lijkt op 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
Een Azure Kubernetes Service-cluster maken
U hebt een AKS-cluster nodig om de containerinstallatiekopieën van de Java-app te implementeren.
Important
Met --attach-acr de optie wordt de AcrPull rol toegewezen aan de kubelet-identiteit van AKS. Naast de machtiging om de resources te maken, heeft uw account Microsoft.Authorization/roleAssignments/write nodig op het registerbereik of een bovenliggend bereik.
Bijdrager alleen verleent deze machtiging niet. Vraag uw Azure-beheerder zo nodig om de integratie uit te voeren of de juiste roltoewijzingstoegang te verlenen, zoals Role Based Access Control Administrator naast de vereiste machtigingen voor resourcebeheer.
Maak een AKS-cluster met behulp van de volgende opdracht:
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
Notitie
Het maken van een AKS-cluster kan tot 10 minuten duren. Nadat u de vorige opdracht hebt uitgevoerd, kunt u deze in uw Azure CLI-tabblad laten doorgaan en verdergaan met de volgende les.