Snabbstart: Distribuera ett Azure Kubernetes Service kluster med hjälp av Azure CLI

Azure Kubernetes Service (AKS) är en hanterad Kubernetes-tjänst som gör att du snabbt kan distribuera och hantera kluster. I den här snabbstarten kommer du att:

  • Distribuera ett AKS-kluster med hjälp av Azure CLI.

  • Kör ett program med flera containrar med en webb frontend-instans och en Redis-instans i klustret.

  • Övervaka hälsotillståndet för klustret och poddar som kör ditt program.

    Röstningsapp som distribuerats i Azure Kubernetes Service

Den här snabbstarten förutsätter grundläggande kunskaper om Kubernetes-begrepp. Mer information finns i Viktiga koncept för Azure Kubernetes Service (AKS).

Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.

Mer information om hur du skapar en Windows Server-nodpool finns i Skapa ett AKS-kluster som stöder Windows Server-containrar.

Förutsättningar

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

  • Den här artikeln kräver version 2.0.64 eller senare av Azure CLI. Om du Azure Cloud Shell är den senaste versionen redan installerad.
  • Den identitet som du använder för att skapa klustret har rätt minimibehörigheter. Mer information om åtkomst och identitet för AKS finns i Åtkomst- och identitetsalternativ för Azure Kubernetes Service (AKS).

Anteckning

Kör kommandona som administratör om du planerar att köra kommandona i den här snabbstarten lokalt i stället för i Azure Cloud Shell.

Skapa en resursgrupp

En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras. När du skapar en resursgrupp uppmanas du att ange en plats. Den här platsen är:

  • Lagringsplatsen för dina resursgruppmetadata.
  • Var dina resurser ska köras i Azure om du inte anger en annan region när resursen skapas.

I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus.

Skapa en resursgrupp med hjälp av kommandot az group create.

az group create --name myResourceGroup --location eastus

Utdata för resursgruppen som har skapats:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Aktivera klusterövervakning

Kontrollera att Microsoft.OperationsManagement och Microsoft.OperationalInsights är registrerade i din prenumeration. Så här kontrollerar du registreringsstatusen:

az provider show -n Microsoft.OperationsManagement -o table
az provider show -n Microsoft.OperationalInsights -o table

Om de inte är registrerade registrerar du Microsoft.OperationsManagement och Microsoft.OperationalInsights med hjälp av:

az provider register --namespace Microsoft.OperationsManagement
az provider register --namespace Microsoft.OperationalInsights

Skapa AKS-kluster

Skapa ett AKS-kluster med kommandot az aks create med övervakningsparametern --enable-addons för att aktivera Azure Monitor för containrar. I följande exempel skapas ett kluster med namnet myAKSCluster med en nod:

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Efter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret.

Anteckning

När du skapar ett AKS-kluster skapas automatiskt en andra resursgrupp för att lagra AKS-resurserna. Mer information finns i Varför skapas två resursgrupper med AKS?

Anslut till klustret

Om du vill hantera ett Kubernetes-kluster använder du Kubernetes kommandoradsklient, kubectl. kubectl har redan installerats om du använder Azure Cloud Shell.

  1. Installera kubectl lokalt med kommandot az aks install-cli:

    az aks install-cli
    
  2. Konfigurera kubectl för att ansluta till kubernetes-klustret med kommandot az aks get-credentials. Följande kommando:

    • Laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.
    • Använder ~/.kube/config , standardplatsen för Kubernetes-konfigurationsfilen. Ange en annan plats för Kubernetes-konfigurationsfilen med hjälp av --file.
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Verifiera anslutningen till klustret med kommandot kubectl get. Det här kommandot returnerar en lista över klusternoderna.

    kubectl get nodes
    

    Utdata visar den enda nod som skapades i föregående steg. Kontrollera att nodstatusen är Klar:

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8
    

Kör programmet

En Kubernetes-manifestfil definierar ett klusters önskade tillstånd, till exempel vilka containeravbildningar som ska köras.

I den här snabbstarten använder du ett manifest för att skapa alla objekt som behövs för att köra Azure Vote-programmet. Det här manifestet innehåller två Kubernetes-distributioner:

  • Python-exempelprogrammen för Azure Vote.
  • En Redis-instans.

Två Kubernetes-tjänster skapas också:

  • En intern tjänst för Redis-instansen.
  • En extern tjänst för att få åtkomst till Azure Vote-programmet från Internet.
  1. Skapa en fil som heter azure-vote.yaml.

    • Om du använder Azure Cloud Shell kan den här filen skapas med hjälp av , eller som om du arbetar code vi med ett nano virtuellt eller fysiskt system
  2. Kopiera följande YAML-definition:

    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
    
  3. Distribuera programmet med kommandot kubectl apply och ange namnet på ditt YAML-manifest:

    kubectl apply -f azure-vote.yaml
    

    Utdata visar de distributioner och tjänster som har skapats:

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

Testa programmet

När programmet körs så exponerar en Kubernetes-tjänst programmets klientdel mot Internet. Den här processen kan ta ett par minuter att slutföra.

Övervaka förloppet med kommandot kubectl get service med argumentet --watch .

kubectl get service azure-vote-front --watch

EXTERNAL-IP-utdata för azure-vote-front tjänsten visas inledningsvis som väntande.

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

När EXTERNAL-IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du CTRL-C för att stoppa kubectl bevakningsprocessen. Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:

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

Om du vill se hur Azure Vote-appen fungerar i praktiken så öppnar du en webbläsare till den externa IP-adressen för din tjänst.

Röstningsapp som distribuerats i Azure Kubernetes Service

Visa klusternoderna och poddhälsomåtten som avbildats av Azure Monitor för containrar i Azure Portal.

Ta bort klustret

Du kan undvika Azure-kostnader genom att rensa bort onödiga resurser. Använd kommandot az group delete för att ta bort resursgruppen, containertjänsten och alla relaterade resurser.

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

Anteckning

När du tar bort klustret tas Azure Active Directory-tjänstens huvudnamn, som används av AKS-klustret, inte bort. Stegvisa instruktioner om hur du tar bort tjänstens huvudnamn finns i dokumentationen om viktiga överväganden och borttagning av AKS-tjänsten.

Om du använde en hanterad identitet hanteras identiteten av plattformen och kräver inte borttagning.

Hämta koden

Befintliga containeravbildningar användes i den här snabbstarten för att skapa en Kubernetes-distribution. Relaterad programkod, Dockerfile och Kubernetes-manifestfil finns på GitHub.

Nästa steg

I den här snabbstarten distribuerade du ett Kubernetes-kluster och distribuerade sedan ett program med flera containrar till det. Öppna Kubernetes-webbinstrumentpanelen för ditt AKS-kluster.

Om du vill lära dig mer om AKS, och gå igenom ett exempel med fullständig distributionskod, fortsätter du till självstudiekursen om Kubernetes-kluster.