Quickstart: Implementeer een Azure Linux-containerhost naar een AKS-cluster met behulp van een ARM-sjabloon (2023)

  • 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.Quickstart: Implementeer een Azure Linux-containerhost naar een AKS-cluster met behulp van een ARM-sjabloon (1)

  • 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 installerenaz aks install-cliof 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-keygenBezigheid . Deze bestanden worden standaard in de map gemaakt~/.ssh. Als u gebruiktssh-keygenDe opdracht overschrijft een SSH-sleutelpaar met dezelfde naam dat al bestaat op de opgegeven locatie.

  1. Ga naarhttps://shell.azure.comom Cloud Shell in uw browser te openen.

  2. Voer de opdracht uitssh-keygenuit. 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“EenagentPoolProfilesen stel apiVersion in op 01-03-2021 of later ("apiVersion": "2021-03-01").

Geef de sjabloon op

  1. Selecteer de onderstaande knop om u aan te melden bij Azure en een sjabloon te openen.

    Quickstart: Implementeer een Azure Linux-containerhost naar een AKS-cluster met behulp van een ARM-sjabloon (2)

  2. 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).

    Quickstart: Implementeer een Azure Linux-containerhost naar een AKS-cluster met behulp van een ARM-sjabloon (3)

  3. 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.

  1. Lokaal installerenkubectlmet behulp vanaz aks install-cliBezigheid:

    az aks install-cli
  2. Configurerenkubectlom verbinding te maken met uw Kubernetes-clusteraz vraagt ​​om referenties op te halenBezigheid . 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
  3. Controleer de verbinding met uw cluster met behulp vankubectl krijgenBezigheid . 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.
  1. Maak een bestand aan met de naamazur-vote.yaml.

    • Als u Azure Cloud Shell gebruikt, kan dit bestand worden gemaakt metCode,vivonNanoalsof je aan een virtueel of fysiek systeem werkt
  2. 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.

  3. 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--groetenStraat.

kubectl roept de service azure-vote-front --watch aan

vonEXTERNE IP-uitgangvoorAzure-Vote-FrontDe 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-Cjij daarvoorkubectlobserveer 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.

Quickstart: Implementeer een Azure Linux-containerhost naar een AKS-cluster met behulp van een ARM-sjabloon (4)

Verwijder het cluster

Als u niet doorgaat met de volgende zelfstudies, kunt u voorkomen dat Azure-kosten overbodige resources opschonen. Gebruik zeAZ-groep verwijderenOpdracht 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

Top Articles
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated: 22/01/2023

Views: 5982

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.