Sdílet prostřednictvím


Rychlý start: Nasazení hostitele kontejneru Azure Linux pro cluster AKS pomocí šablony ARM

Začněte s Azure Linux Container Host pomocí šablony Azure Resource Manager (ARM) k nasazení clusteru hostitele kontejnerů Azure Linux. Po instalaci požadovaných součástí vytvoříte pár klíčů SSH, zkontrolujete šablonu, nasadíte šablonu a ověříte ji a pak nasadíte aplikaci.

Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.

Důležité

Od 30. listopadu 2025 už AKS nebude podporovat ani poskytovat aktualizace zabezpečení pro Azure Linux 2.0. Od 31. března 2026 se image uzlů odeberou a nebudete moct škálovat fondy uzlů. Migrujte na podporovanou verzi Azure Linuxu buď aktualizací fondů uzlů na podporovanou verzi Kubernetes, nebo migrací na osSku AzureLinux3. Další informace najdete v tématu [Vyřazení z provozu] Uzel poolů Azure Linux 2.0 v AKS.

Požadavky

  • Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

  • Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v rychlém přehledu Azure Cloud Shell – Bash.

  • Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.

    • Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.

    • Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.

  • Pokud ještě nemáte nainstalovaný kubectl, nainstalujte ho prostřednictvím Azure CLI nebo az aks install-cli postupujte podle pokynů pro upstream.

  • Pokud chcete vytvořit cluster AKS pomocí šablony Resource Manageru, zadejte veřejný klíč SSH. Pokud tento prostředek potřebujete, přečtěte si následující část; v opačném případě přejděte do části Kontrola šablony .

  • Identita, kterou používáte k vytvoření clusteru, má odpovídající minimální oprávnění. Další informace o přístupu a identitě pro AKS najdete v tématu Možnosti přístupu a identit pro Službu Azure Kubernetes Service (AKS).

  • Pokud chcete nasadit soubor Bicep nebo šablonu ARM, musíte mít právo zápisu pro prostředky, které nasazujete, a přístup ke všem operacím na prostředku typu Microsoft.Resources/deployments. Například k nasazení virtuálního počítače musíte mít oprávnění Microsoft.Compute/virtualMachines/write a Microsoft.Resources/deployments/*. Seznam rolí a oprávnění najdete v tématu Předdefinované role Azure.

Vytvoření páru klíčů SSH

Pro přístup k uzlům AKS se připojíte pomocí páru klíčů SSH (veřejný a privátní), který vygenerujete pomocí ssh-keygen příkazu. Ve výchozím nastavení jsou tyto soubory vytvořeny v adresáři ~/.ssh . Spuštěním příkazu ssh-keygen přepíšete jakýkoli pár klíčů SSH se stejným názvem, který už v daném umístění existuje.

  1. Přejděte na https://shell.azure.com pro otevření Cloud Shell ve svém prohlížeči.

  2. Spusťte příkaz ssh-keygen. Následující příklad vytvoří pár klíčů SSH pomocí šifrování RSA a bitové délky 4096:

    ssh-keygen -t rsa -b 4096
    

Další informace o vytváření klíčů SSH najdete v tématu Vytvoření a správa klíčů SSH pro ověřování v Azure.

Kontrola šablony

Následující nasazení je realizováno použitím šablony ARM z Azure Quickstart Templates.

{
  "$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": "The name of the Managed Cluster resource."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The location of the Managed Cluster resource."
      }
    },
    "dnsPrefix": {
      "type": "string",
      "metadata": {
        "description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
      }
    },
    "osDiskSizeGB": {
      "type": "int",
      "defaultValue": 0,
      "minValue": 0,
      "maxValue": 1023,
      "metadata": {
        "description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize."
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 3,
      "minValue": 1,
      "maxValue": 50,
      "metadata": {
        "description": "The number of nodes for the cluster."
      }
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "Standard_DS2_v2",
      "metadata": {
        "description": "The size of the Virtual Machine."
      }
    },
    "linuxAdminUsername": {
      "type": "string",
      "metadata": {
        "description": "User name for the Linux Virtual Machines."
      }
    },
    "sshRSAPublicKey": {
      "type": "string",
      "metadata": {
        "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
      }
    },
    "osType": {
      "type": "string",
      "defaultValue": "Linux",
      "allowedValues": [
        "Linux"
      ],
      "metadata": {
        "description": "The type of operating system."
      }
    },
    "osSKU": {
      "type": "string",
      "defaultValue": "AzureLinux",
      "allowedValues": [
        "AzureLinux",
        "AzureLinux3",
        "Ubuntu",
        "Ubuntu2204",
        "Ubuntu2404"
      ],
      "metadata": {
        "description": "The Linux SKU to use."
      }
    }
  },
  "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": "string",
      "value": "[reference(parameters('clusterName')).fqdn]"
    }
  }
}

Pokud chcete přidat Azure Linux do existující šablony ARM, musíte přidat "osSKU": "AzureLinux" a "mode": "System" nastavit agentPoolProfiles apiVersion na verzi 2021-03-01 nebo novější ("apiVersion": "2021-03-01").

Nasazení šablony

  1. Výběrem následujícího tlačítka se přihlaste k Azure a otevřete šablonu.

    Tlačítko pro nasazení šablony Resource Manageru do Azure

  2. Vyberte nebo zadejte následující hodnoty.

    Pro účely tohoto rychlého startu ponechte výchozí hodnoty pro velikost disku operačního systému GB, počet agentů, velikost virtuálního počítače agenta, typ operačního systému a verzi Kubernetes. Zadejte vlastní hodnoty pro následující parametry šablony:

    • Předplatné: Vyberte předplatné Azure.
    • Skupina prostředků: Vyberte možnost Vytvořit nový. Zadejte jedinečný název skupiny prostředků, například testAzureLinuxResourceGroup, a pak zvolte OK.
    • Umístění: Vyberte umístění, například USA – východ.
    • Název clusteru: Zadejte jedinečný název clusteru AKS, například testAzureLinuxCluster.
    • Předpona DNS: Zadejte jedinečnou předponu DNS pro váš cluster, například myAzureLinuxCluster.
    • Uživatelské jméno správce Linuxu: Zadejte uživatelské jméno pro připojení pomocí SSH, například azureUser.
    • Veřejný klíč SSH RSA: Zkopírujte a vložte veřejnou část páru klíčů SSH (ve výchozím nastavení obsah ~/.ssh/id_rsa.pub).
  3. Vyberte Zkontrolovat a vytvořit.

Vytvoření clusteru Azure Linux Container Host trvá několik minut. Než přejdete k dalšímu kroku, počkejte, než se cluster úspěšně nasadí.

Ověření nasazení

Připojení ke clusteru

Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl.

  1. Nainstalujte kubectl místně pomocí příkazu az aks install-cli:

    az aks install-cli
    
  2. Nakonfigurujte kubectl k připojení k vašemu Kubernetes clusteru pomocí příkazu az aks get-credentials. Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.

    az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
    
  3. Pomocí příkazu ověřte připojení ke clusteru kubectl get . Tento příkaz vrátí seznam uzlů clusteru.

    kubectl get nodes
    

    Následující příklad výstupu ukazuje tři uzly vytvořené v předchozích krocích. Ujistěte se, že je stav uzlu připravený:

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-agentpool-41324942-0   Ready    agent   6m44s   v1.12.6
    aks-agentpool-41324942-1   Ready    agent   6m46s   v1.12.6
    aks-agentpool-41324942-2   Ready    agent   6m45s   v1.12.6
    

Nasazení aplikace

Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit.

V tomto rychlém startu pomocí manifestu vytvoříte všechny objekty potřebné ke spuštění aplikace Azure Vote. Tento manifest zahrnuje dvě nasazení Kubernetes:

  • Ukázkové aplikace Azure Vote Python.
  • Instance Redis.

Vytvoří se také dvě služby Kubernetes:

  • Interní služba instance Redis.
  • Externí služba pro přístup k aplikaci Azure Vote z internetu.
  1. Vytvořte soubor s názvem azure-vote.yaml.

    • Pokud používáte Azure Cloud Shell, můžete tento soubor vytvořit pomocí code, vinebo nano jako kdybyste pracovali na virtuálním nebo fyzickém systému.
  2. Zkopírujte následující definici YAML:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-back
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-back
      template:
        metadata:
          labels:
            app: azure-vote-back
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 6379
              name: redis
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-back
    spec:
      ports:
      - port: 6379
      selector:
        app: azure-vote-back
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-front
      template:
        metadata:
          labels:
            app: azure-vote-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 80
            env:
            - name: REDIS
              value: "azure-vote-back"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-front
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: azure-vote-front
    

    Rozpis souborů manifestu YAML najdete v tématu Nasazení a manifesty YAML.

  3. Nasaďte aplikaci pomocí příkazu kubectl apply a zadejte název manifestu YAML:

    kubectl apply -f azure-vote.yaml
    

    Následující příklad vypadá podobně jako výstup zobrazující úspěšně vytvořená nasazení a služby:

    deployment "azure-vote-back" created
    service "azure-vote-back" created
    deployment "azure-vote-front" created
    service "azure-vote-front" created
    

Testování aplikace

Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.

Sledujte průběh pomocí příkazu kubectl get service s argumentem --watch .

kubectl get service azure-vote-front --watch

Výstup EXTERNAL-IP pro azure-vote-front službu se zpočátku zobrazí jako čekající.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Jakmile se externí IP adresa změní z čekání na skutečnou CTRL-C veřejnou IP adresu, použijte kubectl k zastavení procesu sledování. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Pokud chcete vidět aplikaci Azure Vote v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.

Snímek obrazovky s přechodem na ukázkovou aplikaci Azure Vote

Odstranění clusteru

Pokud nebudete pokračovat v následujících kurzech, měli byste odstranit všechny nepotřebné prostředky, abyste se vyhnuli poplatkům za Azure. az group delete Pomocí příkazu odeberte skupinu prostředků a všechny související prostředky.

az group delete --name testAzureLinuxCluster --yes --no-wait

Další kroky

V tomto rychlém startu jste nasadili cluster Azure Linux Container Host. Chcete-li se dozvědět více o hostiteli kontejnerů Azure Linux a projít si kompletní příklad nasazení a správy clusteru, pokračujte k tutoriálu Azure Linux Container Host.