- Artikel
Ga aan de slag met Azure Linux Container Host door een Azure Resource Manager (ARM)-sjabloon te gebruiken om een Azure Linux Container Host-cluster te implementeren. Nadat u de vereisten hebt geïnstalleerd, maakt u een SSH-sleutelpaar, valideert u de sjabloon, implementeert en valideert u de sjabloon en implementeert u vervolgens een toepassing.
INResource manager-sjabloonis een JavaScript Object Notation (JSON)-bestand dat de infrastructuur en configuratie voor uw project definieert. De sjabloon vereist declaratieve syntaxis. In de declaratieve syntaxis beschrijft u de beoogde implementatie zonder dat u de volgorde van programmeeropdrachten hoeft te schrijven om de implementatie te maken.
Claim
Tenzijazure-abonnementje kunt er een krijgengratis Azure-accountdoen voordat je begint.
Gebruik de bash-omgevingAzure Cloud Shell. ZieAzure Cloud Shell-snelstart: BashVoor louter informatie.
InstallerenAzure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u Windows of macOS gebruikt, kunt u de Azure CLI uitvoeren in een Docker-container. ZienVoer de Azure CLI uit in een Docker-containerVoor louter informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij de Azure CLI met de opdrachtAZ-login. Volg de stappen in de terminal om het verificatieproces te voltooien. RaadplegenMeld u aan bij de Azure CLIvoor extra registratiemogelijkheden.
Installeer de Azure CLI-extensie bij het eerste gebruik wanneer daarom wordt gevraagd. RaadplegenGebruik extensies met de Azure CLIMeer informatie over extensies vind je hier.
Voeraz-versieom de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Invoeraz-upgradeom bij te werken naar de nieuwste versie.
Als u kubectl nog niet hebt geïnstalleerd, gebruikt u de Azure CLI om het te installeren
az aks install-cli
of volg hetstroomopwaartse instructies.Als u een AKS-cluster wilt maken met behulp van een Resource Manager-sjabloon, moet u een openbare SSH-sleutel opgeven. Als u deze hulpbron nodig hebt, raadpleegt u de volgende sectie. Ga anders naar de sectieHet sjablooncontroleren.
De identiteit die u gebruikt om uw cluster te maken, heeft de juiste minimale machtigingen. ZienZie Instellingen voor toegang en identiteit van Azure Kubernetes Service (AKS) voor meer informatie over toegang en identiteit voor AKS..
Om een biceps-bestand of ARM-sjabloon te implementeren, moet u schrijftoegang hebben tot de resources die u implementeert en moet u toestemming hebben om alle acties uit te voeren op het resourcetype Microsoft.Resources/deployments. Om een virtuele machine te implementeren, moet u b.v. Microsoft.Compute/virtualMachines/write en Microsoft.Resources/deployments/* machtigingen hebben. ZienIngebouwde Azure-rollenvoor een lijst met rollen en machtigingen.
Maak een SSH-sleutelpaar
Om toegang te krijgen tot AKS-knooppunten, maakt u verbinding met een SSH-sleutelpaar (openbaar en privé) waarmee u genereertssh-keygen
Bezigheid . Deze bestanden worden standaard in de map gemaakt~/.ssh. Als u gebruiktssh-keygen
De opdracht overschrijft een SSH-sleutelpaar met dezelfde naam dat al bestaat op de opgegeven locatie.
Ga naarhttps://shell.azure.comom Cloud Shell in uw browser te openen.
Voer de opdracht uit
ssh-keygen
uit. In het volgende voorbeeld wordt een SSH-sleutelpaar gemaakt met RSA-codering en een bitlengte van 4096:ssh-keygen -t rsa -b 4096
ZieMaak en beheer SSH-sleutels voor authenticatie in AzureMeer informatie over het maken van SSH-sleutels vindt u hier.
Bekijk het sjabloon
De volgende implementatie maakt gebruik van een ARM-sjabloonGebruikte Azure Quickstart-sjablonen.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.1", "parameters": { "clusterName ": { "type": "string", "defaultValue": "azurelinuxakscluster", "metadata": { "description": "De naam van de beheerde clusterresource." } }, "location": { "type": "string ", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "De locatie van de beheerde clusterresource." } }, "dnsPrefix": { "type": " string", " metadata": { "description": "Optioneel DNS-voorvoegsel voor gebruik met de gehoste Kubernetes API-server FQDN." } }, "osDiskSizeGB": { "type": "int", "defaultValue": 0, " minValue": 0, "maxValue": 1023, "metadata": { "description": "Schijfgrootte (in GB) voor inrichting voor elk van de knooppunten van de agentpool. Deze waarde ligt tussen 0 en 1023. Als u 0 opgeeft, wordt de standaardschijfgrootte voor deze agent VMSize toegepast. } }, "agentCount": { "type": "int", "defaultValue": 3, "minValue": 1, "maxValue": 50, "metadata": { "description": "Het aantal knooppunten voor clusters." } }, "agentVMSize": { "type": "string", "defaultValue ": "Standard_DS2_v2", " metadata": { "description": "De grootte van de virtuele machine." } }, "linuxAdminUsername": { "type": "string", "metadata": { "description": " Gebruikersnaam voor virtuele Linux-machines." } }, "sshRSAPublicKey": { "type": "string", "metadata": { " description ": "Configureer alle Linux-machines met de openbare SSH RSA-sleutelreeks. Uw sleutel moet uit drie delen bestaan, bijvoorbeeld 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'" } }, "osType": { "type": "string", "defaultValue": "Linux" , "allowedValues": [ "Linux" ], " metadata": { "description": "Het type besturingssysteem." } }, "osSKU": { "type": "string", "defaultValue": "AzureLinux ", "allowedValues": [ "AzureLinux", "Ubuntu" ], "metadata": { "description": "De te gebruiken Linux-SKU." } } }, "resources": [ { "type": "Microsoft. ContainerService /managedClusters", "apiVersion": "2021-03-01", "name": "[parameters('clusterName')]", " location": "[parameters('location')]", "properties" : { "dnsPrefix": "[parameters('dnsPrefix')]", "agentPoolProfiles": [ { "name": "agentpool", "mode ": "System", "osDiskSizeGB": "[parameters('osDiskSizeGB' ) ]", "count": "[parameters('agentCount')]", "vmSize": "[parameters('agentVMSize')]" , "osType": "[parameters('osType')]", " osSKU ": "[parameters('osSKU')]", "storageProfile": "ManagedDisks" } ], "linuxProfile": { "adminUsername": "[parameters('linuxAdminUsername')]", "ssh": { " publicKeys ": [ { "keyData": "[parameters('sshRSAPublicKey')]" } ] } } }, "identity": { "type" : "SystemAssigned" } } ], "outputs": { "controlPlaneFQDN": { "type": "tekenreeks", "waarde": "[referentie(parameters('clusternaam')).fqdn]" } }}
Als u Azure Linux wilt toevoegen aan een bestaande ARM-sjabloon, voegt u en toe„osSKU“: „AzureLinux“
„modus“: „Systeem“
EenagentPoolProfiles
en stel apiVersion in op 01-03-2021 of later ("apiVersion": "2021-03-01"
).
Geef de sjabloon op
Selecteer de onderstaande knop om u aan te melden bij Azure en een sjabloon te openen.
Voer de volgende waarden in of selecteer deze.
Houd voor deze quickstart de standaardwaarden aanSchijfgrootte besturingssysteem (GB),Aantal agenten,Grootte van agent voor virtuele machine,operatorsysteemtypeIKubernetes-versie. Voer uw eigen waarden in voor de volgende sjabloonparameters:
- Abonnement: Selecteer een Azure-abonnement.
- resource groep: KiezenNieuw maken. Voer een unieke naam in voor de resourcegroep, b.vtestAzureLinuxResourceGroupen selecteerOké.
- Plaats: Selecteer een locatie, b.vVS Oost.
- Clusternaam: voer een unieke naam in voor het AKS-cluster, bijvoorbeeldtestAzureLinuxCluster.
- DNS-voorvoegsel: Voer een uniek DNS-voorvoegsel in voor uw cluster, b.vmyAzureLinuxCluster.
- Gebruikersnaam voor Linux-beheer: Voer een gebruikersnaam in om verbinding te maken via SSH, b.vazureGebruiker.
- SSH RSA openbare sleutel: gekopieerd en geplaktopenbaarEen deel van uw SSH-sleutelpaar (standaard de inhoud van het~/.ssh/id_rsa.pub).
KiezenSelecteer + maken.
Het maken van het Azure Linux Container Host-cluster duurt enkele minuten. Wacht tot het cluster is geïmplementeerd voordat u doorgaat met de volgende stap.
Valideer de implementatie
Maak verbinding met het cluster
Gebruik de Kubernetes-opdrachtregelclient om een Kubernetes-cluster te beherenkubectl.
Lokaal installeren
kubectl
met behulp vanaz aks install-cli
Bezigheid:az aks install-cli
Configureren
kubectl
om verbinding te maken met uw Kubernetes-clusteraz vraagt om referenties op te halen
Bezigheid . Met deze opdracht worden referenties gedownload en wordt de Kubernetes CLI geconfigureerd om deze referenties te gebruiken.az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
Controleer de verbinding met uw cluster met behulp van
kubectl krijgen
Bezigheid . Deze opdracht retourneert een lijst met clusterknooppunten.kubectl krijgt knooppunten
In het volgende uitvoervoorbeeld ziet u de drie knooppunten die in de vorige stappen zijn gemaakt. Bevestig de status van het knooppuntKlaarIs:
NAVN STATUS ROLLER ALDER VERSIONaks-agentpool-41324942-0 Ready Agent 6m44s v1.12.6aks-agentpool-41324942-1 Ready Agent 6m46s v1.12.6aks-agentpool-41324942-2 Ready Agent v1.125s6.
implementator toepassingen
INKubernetes-manifest-filDefinieert de gewenste status van een cluster, b.v. B. welke container-images moeten worden uitgevoerd.
In deze snelstartgids gebruikt u een manifest om alle objecten te maken die nodig zijn om uit te voerenAzure Vote-toepassingworden ontladen. Dit manifest bevat twee Kubernetes-implementaties:
- De Azure Vote Python-voorbeeldtoepassingen.
- Een Redis-instantie.
Er zullen er ook twee zijnKubernetes-servicesgemaakt:
- Een interne service voor de Redis-instantie.
- Een externe service voor toegang tot de Azure Vote-toepassing via internet.
Maak een bestand aan met de naam
azur-vote.yaml
.- Als u Azure Cloud Shell gebruikt, kan dit bestand worden gemaakt met
Code
,vi
vonNano
alsof je aan een virtueel of fysiek systeem werkt
- Als u Azure Cloud Shell gebruikt, kan dit bestand worden gemaakt met
Kopieer de volgende YAML-definitie:
apiVersion: apps/v1kind: implementatiemetadata: naam: azure-vote-backspec: replica's: 1 selector: matchLabels: app: azure-vote-back sjabloon: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes. io/os": Linux Container: - Naam: azure-vote-back Afbeelding: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - Naam: ALLOW_EMPTY_PASSWORD Waarde: "Ja" Bronnen: Verzoeken: CPU: 100m Geheugen: 128Mi Limieten: CPU: 250m Opslag: 256Mi Poorten: - ContainerPort: 6379 Naam: Redis---apiVersion: v1kind: Service Metadata: Naam: Azure-Vote-Backspec: Poorten: - Poort: 6379 Kiezer: app: stem - back---apiVersion: apps/v1kind: implementatiemetadata: naam: azure-vote-frontspec: replica's: 1 selector: matchLabels: app: azure-vote-front-sjabloon: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": Linux Containers: - Naam: azure-vote-front Afbeelding: mcr.microsoft.com/azuredocs/azure-vote-front:v1 Bronnen: Query's: CPU: 100 Geheugen: 128 Mi Limieten : CPU: 250 MB Geheugen: 256 Mi Poorten: - ContainerPort: 80 Omgeving: - Naam: REDIS Waarde: "azure-vote-back" ---apiVersion: v1kind: Service Metadata: Naam: azure -vote-frontspec: Type: LoadBalancer Poorten: - Poort: 80 Kiezers: App: Azure-Vote-Front
ZieImplementaties en YAML-manifesten voor een splitsing van YAML-manifestbestanden.
Implementeer de applicatie met de opdrachtkubectl toepassenen voer de naam van uw YAML-manifest in:
kubectl apply -f azure-vote.yaml
Het volgende voorbeeld ziet eruit als de uitvoer met de gemaakte implementaties en services:
Azure-vote-back-implementatie gemaakt, azure-vote-back-service gemaakt, azure-vote-front-implementatie gemaakt, azure-vote-front-service gemaakt
toepassingen testen
Wanneer de applicatie actief is, stelt een Kubernetes-service de front-end van de applicatie bloot aan internet. Dit proces kan enkele minuten duren.
Bewaak de voortgang van de opdrachtkubectl wordt geserveerdmet--groeten
Straat.
kubectl roept de service azure-vote-front --watch aan
vonEXTERNE IP-uitgangvoorAzure-Vote-Front
De service is oorspronkelijk vermeld alsonder behandeling.
NAAM TYPE CLUSTER-IP EXTERNE IP-POORTEN AGEazure-vote-front LoadBalancer 10.0.37.2780:30572/TCP6s
zodra datEXTERNE IP-adressenwerd veranderd vanonder behandelingin een echt openbaar IP-adresSTRG-C
jij daarvoorkubectl
observeer het proces. De volgende voorbeelduitvoer toont een geldig openbaar IP-adres dat aan de service is toegewezen:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Open een webbrowser met het externe IP-adres van uw service om de Azure Vote-app te bekijken.
Verwijder het cluster
Als u niet doorgaat met de volgende zelfstudies, kunt u voorkomen dat Azure-kosten overbodige resources opschonen. Gebruik zeAZ-groep verwijderen
Opdracht om de resourcegroep en alle bijbehorende resources te verwijderen.
az group delete --name testAzureLinuxCluster --yes --no-wait
Volgende stap
In deze snelstartgids hebt u een Azure Linux Container Host-cluster geïmplementeerd. Voor meer informatie over Azure Linux Container Host en het doorlopen van een compleet voorbeeld van clusterimplementatie en beheer, gaat u verder naar de zelfstudie Azure Linux Container Host.
Azure Linux Container Host-zelfstudie