Snabbstart: Distribuera ett Azure Kubernetes Service kluster med 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 exempelprogram med flera containrar med en webbklientdel och en Redis-instans i klustret.

Skärmbild av att bläddra till Azure Vote-exempelprogrammet.

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-prenumeration skapar du ett kostnadsfritt Azure-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

Du kan använda antingen Azure Cloud Shell eller ett lokalt Azure CLI.

  • Den här artikeln kräver version 2.0.64 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

  • Den identitet som du använder för att skapa klustret har lämpliga minimibehörigheter. Mer information om åtkomst och identitet för AKS finns i Åtkomst- och identitetsalternativ för Azure Kubernetes Service (AKS).

  • Om du har flera Azure-prenumerationer väljer du lämpligt prenumerations-ID där resurserna ska faktureras med kommandot az account .

  • Kontrollera att Microsoft.OperationsManagement - och Microsoft.OperationalInsights-leverantörer är registrerade i din prenumeration. Det här är Azure-resursprovidrar som krävs för att stödja containerinsikter. Kontrollera registreringsstatusen genom att köra följande kommandon:

    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 följande kommandon:

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

Anteckning

Kör kommandona med administratörsbehörighet 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 resursgruppens metadata.
  • Var dina resurser ska köras i Azure om du inte anger någon annan region när du skapar resurser.

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

Följande utdataexempel liknar att resursgruppen har skapats:

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

Skapa AKS-kluster

Skapa ett AKS-kluster med kommandot az aks create med parametern --enable-addons monitoring och --enable-msi-auth-for-monitoring för att aktivera Azure Monitor Container Insights med hanterad identitetsautentisering (förhandsversion). I följande exempel skapas ett kluster med namnet myAKSCluster med en nod och en systemtilldelad hanterad identitet aktiveras:

az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-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 en andra resursgrupp automatiskt 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-kommandoradsklienten kubectl. kubectlär redan installerat 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 argumentet --file .
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Kontrollera anslutningen till klustret med kommandot kubectl get . Det här kommandot returnerar en lista över klusternoderna.

    kubectl get nodes
    

    I följande utdataexempel visas 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
    

Distribuera 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:

  • Azure Vote Python-exempelprogram.
  • En Redis-instans.

Två Kubernetes-tjänster skapas också:

  • En intern tjänst för Redis-instansen.
  • En extern tjänst för åtkomst till Azure Vote-programmet från Internet.
  1. Skapa en fil med namnet azure-vote.yaml och kopiera i följande manifest.

    • Om du använder Azure Cloud Shell kan den här filen skapas med hjälp av code, vieller nano som om du arbetar med ett virtuellt eller fysiskt system.
    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
    
  2. Distribuera programmet med kommandot kubectl apply och ange namnet på ditt YAML-manifest:

    kubectl apply -f azure-vote.yaml
    

    Följande exempel liknar utdata som visar 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 exponerar en Kubernetes-tjänst programmets klientdel för Internet. Den här processen kan ta ett par minuter att slutföra.

Övervaka förloppet med hjälp av kommandot kubectl get service med --watch argumentet .

kubectl get service azure-vote-front --watch

EXTERNA 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 klockprocessen. 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.

Skärmbild av att bläddra till Azure Vote-exempelprogrammet.

Ta bort klustret

Om du inte planerar att gå igenom självstudierna som följer rensar du dina onödiga resurser för att undvika Azure-avgifter. 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

AKS-klustret skapades med systemtilldelad hanterad identitet (standardalternativet för identitet som används i den här snabbstarten), identiteten hanteras av plattformen och kräver inte borttagning.

Nästa steg

I den här snabbstarten distribuerade du ett Kubernetes-kluster och distribuerade sedan ett enkelt program med flera containrar till det.

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.

Den här snabbstarten är i introduktionssyfte. Vägledning om hur du skapar fullständiga lösningar med AKS för produktion finns i AKS-lösningsvägledning.