Szybki Start: Wdrażanie klastra usługi Azure Kubernetes Service przy użyciu interfejsu wiersza polecenia platformy AzureQuickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI

W tym przewodniku szybki start wdrożono klaster usługi Azure Kubernetes Service (AKS) przy użyciu interfejsu wiersza polecenia platformy Azure.In this quickstart, you deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI. AKS to zarządzana usługa Kubernetes, która umożliwia szybkie wdrażanie klastrów i zarządzanie nimi.AKS is a managed Kubernetes service that lets you quickly deploy and manage clusters. W klastrze jest uruchamiana aplikacja obsługująca wiele kontenerów, która składa się z frontonu internetowego i wystąpienia pamięci podręcznej Redis.A multi-container application that includes a web front end and a Redis instance is run in the cluster. Następnie zobaczysz, jak monitorować kondycję klastra i zasobników, w których działa Twoja aplikacja.You then see how to monitor the health of the cluster and pods that run your application.

Jeśli chcesz korzystać z kontenerów systemu Windows Server (obecnie w wersji zapoznawczej w AKS), zobacz Tworzenie klastra AKS, który obsługuje kontenery systemu Windows Server.If you want to use Windows Server containers (currently in preview in AKS), see Create an AKS cluster that supports Windows Server containers.

Aplikacja do głosowania wdrożona w usłudze Azure Kubernetes Service

W tym przewodniku Szybki start założono, że masz podstawową wiedzę na temat pojęć związanych z rozwiązaniem Kubernetes.This quickstart assumes a basic understanding of Kubernetes concepts. Aby uzyskać więcej informacji, zobacz Kubernetes podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS).For more information, see Kubernetes core concepts for Azure Kubernetes Service (AKS).

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account before you begin.

Używanie usługi Azure Cloud ShellUse Azure Cloud Shell

Platforma Azure obsługuje Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Do pracy z usługami platformy Azure można używać bash lub PowerShell z Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Możesz użyć wstępnie zainstalowanych poleceń Cloud Shell, aby uruchomić kod w tym artykule bez konieczności instalowania niczego w środowisku lokalnym.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Aby rozpocząć Azure Cloud Shell:To start Azure Cloud Shell:

OpcjaOption Przykład/linkExample/Link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu.Select Try It in the upper-right corner of a code block. Wybranie przycisku Wypróbuj nie powoduje automatycznego skopiowania kodu do Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Przykład try dla Azure Cloud Shell
Przejdź do https://shell.azure.comlub wybierz przycisk Uruchom Cloud Shell , aby otworzyć Cloud Shell w przeglądarce.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. uruchamiania Cloud Shell w nowym oknieLaunch Cloud Shell in a new window
Wybierz przycisk Cloud Shell w prawym górnym pasku menu w Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Przycisk Cloud Shell w witrynie Azure Portal

Aby uruchomić kod w tym artykule w Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Rozpocznij Cloud Shell.Start Cloud Shell.

  2. Aby skopiować kod, wybierz przycisk Kopiuj w bloku kodu.Select the Copy button on a code block to copy the code.

  3. Wklej kod do sesji Cloud Shell, wybierając kolejno pozycje Ctrl+SHIFT+v w systemach Windows i Linux lub wybierając polecenie cmd+SHIFT+v w macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Wybierz klawisz ENTER , aby uruchomić kod.Select Enter to run the code.

Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten przewodnik Szybki Start będzie wymagał interfejsu wiersza polecenia platformy Azure w wersji 2.0.64 lub nowszej.If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.64 or later. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana.Run az --version to find the version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.If you need to install or upgrade, see Install Azure CLI.

Uwaga

W przypadku uruchamiania poleceń w tym przewodniku szybki start lokalnie (zamiast Azure Cloud Shell) Upewnij się, że polecenia są uruchamiane jako administrator.If running the commands in this quickstart locally (instead of Azure Cloud Shell), ensure you run the commands as administrator.

Tworzenie grupy zasobówCreate a resource group

Grupa zasobów platformy Azure to logiczna grupa przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi.An Azure resource group is a logical group in which Azure resources are deployed and managed. Podczas tworzenia grupy zasobów użytkownik jest proszony o określenie lokalizacji.When you create a resource group, you are asked to specify a location. Ta lokalizacja wskazuje, gdzie są przechowywane metadane grupy zasobów, a także czy zasoby są uruchamiane na platformie Azure, jeśli nie określisz innego regionu podczas tworzenia zasobów.This location is where resource group metadata is stored, it is also where your resources run in Azure if you don't specify another region during resource creation. Utwórz grupę zasobów za pomocą polecenia AZ Group Create .Create a resource group using the az group create command.

Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Następujące przykładowe dane wyjściowe przedstawiają pomyślnie utworzoną grupę zasobów:The following example output shows the resource group created successfully:

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

Tworzenie klastra AKSCreate AKS cluster

Użyj polecenia AZ AKS Create , aby utworzyć klaster AKS.Use the az aks create command to create an AKS cluster. W poniższym przykładzie pokazano tworzenie klastra o nazwie myAKSCluster z jednym węzłem.The following example creates a cluster named myAKSCluster with one node. Usługę Azure Monitor dla kontenerów można również włączyć przy użyciu parametru --enable-addons monitoring.Azure Monitor for containers is also enabled using the --enable-addons monitoring parameter. Wykonanie tej czynności potrwa kilka minut.This will take several minutes to complete.

Uwaga

Podczas tworzenia klastra AKS zostaje automatycznie utworzona druga grupa zasobów do przechowywania zasobów AKS.When creating an AKS cluster a second resource group is automatically created to store the AKS resources. Aby uzyskać więcej informacji, zobacz co to są dwie grupy zasobów utworzone za pomocą AKS?For more information see Why are two resource groups created with AKS?

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

Po kilku minutach polecenie zostanie wykonane i zwróci informacje o klastrze w formacie JSON.After a few minutes, the command completes and returns JSON-formatted information about the cluster.

Łączenie z klastremConnect to the cluster

Aby zarządzać klastrem Kubernetes, należy użyć polecenia kubectl, klienta wiersza polecenia Kubernetes.To manage a Kubernetes cluster, you use kubectl, the Kubernetes command-line client. Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl jest już zainstalowane.If you use Azure Cloud Shell, kubectl is already installed. Aby zainstalować kubectl lokalnie, użyj polecenia AZ AKS Install-CLI :To install kubectl locally, use the az aks install-cli command:

az aks install-cli

Aby skonfigurować narzędzie kubectl w celu nawiązania połączenia z klastrem Kubernetes, użyj polecenia az aks get-credentials.To configure kubectl to connect to your Kubernetes cluster, use the az aks get-credentials command. To polecenie powoduje pobranie poświadczeń i skonfigurowanie interfejsu wiersza polecenia Kubernetes do ich użycia.This command downloads credentials and configures the Kubernetes CLI to use them.

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Aby sprawdzić połączenie z klastrem, użyj polecenia kubectl get, aby powrócić do listy węzłów klastra.To verify the connection to your cluster, use the kubectl get command to return a list of the cluster nodes.

kubectl get nodes

Poniższe przykładowe dane wyjściowe zawierają jeden węzeł utworzony w poprzednich krokach.The following example output shows the single node created in the previous steps. Upewnij się, że stan węzła to Gotowy:Make sure that the status of the node is Ready:

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

Uruchamianie aplikacjiRun the application

Plik manifestu platformy Kubernetes definiuje żądany stan klastra, w tym informacje o obrazach kontenera do uruchomienia.A Kubernetes manifest file defines a desired state for the cluster, such as what container images to run. W tym przewodniku Szybki start manifest służy do tworzenia wszystkich obiektów potrzebnych do uruchomienia aplikacji Azure Vote.In this quickstart, a manifest is used to create all objects needed to run the Azure Vote application. Ten manifest zawiera dwa wdrożenia Kubernetes — jeden dla przykładowych aplikacji w języku Python na platformie Azure, a drugi dla wystąpienia Redis.This manifest includes two Kubernetes deployments - one for the sample Azure Vote Python applications, and the other for a Redis instance. Tworzone są również dwie usługi Kubernetes — wewnętrzna usługa dla wystąpienia Redis oraz zewnętrzna usługa do uzyskiwania dostępu do aplikacji do głosowania platformy Azure z Internetu.Two Kubernetes Services are also created - an internal service for the Redis instance, and an external service to access the Azure Vote application from the internet.

Porada

W tym przewodniku Szybki start ręcznie utworzysz i wdrożysz manifesty aplikacji w klastrze AKS.In this quickstart, you manually create and deploy your application manifests to the AKS cluster. W bardziej rzeczywistych scenariuszach możesz użyć Azure dev Spaces , aby szybko iterować i debugować kod bezpośrednio w klastrze AKS.In more real-world scenarios, you can use Azure Dev Spaces to rapidly iterate and debug your code directly in the AKS cluster. Obszarów Dev Spaces można używać na różnych platformach systemów operacyjnych i w środowiskach deweloperskich, aby pracować razem z innymi członkami zespołu.You can use Dev Spaces across OS platforms and development environments, and work together with others on your team.

Utwórz plik o nazwie azure-vote.yaml i skopiuj go do poniższej definicji YAML.Create a file named azure-vote.yaml and copy in the following YAML definition. Jeśli używasz usługi Azure Cloud Shell, ten plik można utworzyć przy użyciu programu vi lub nano, tak jak podczas pracy w systemie wirtualnym lub fizycznym:If you use the Azure Cloud Shell, this file can be created using vi or nano as if working on a virtual or physical 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:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-back
        image: redis
        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:
        "beta.kubernetes.io/os": linux
      containers:
      - name: azure-vote-front
        image: microsoft/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

Wdróż aplikację przy użyciu polecenia polecenia kubectl Apply i określ nazwę manifestu YAML:Deploy the application using the kubectl apply command and specify the name of your YAML manifest:

kubectl apply -f azure-vote.yaml

Następujące przykładowe dane wyjściowe przedstawiają pomyślnie utworzone wdrożenia i usługi:The following example output shows the Deployments and Services created successfully:

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

Testowanie aplikacjiTest the application

Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie.When the application runs, a Kubernetes service exposes the application front end to the internet. Ten proces może potrwać kilka minut.This process can take a few minutes to complete.

Aby monitorować postęp, użyj polecenia kubectl get-service z argumentem --watch.To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

Początkowo adres EXTERNAL-IP dla usługi azure-vote-front jest wyświetlany jako oczekujący.Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending.

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

Gdy dla adresu EXTERNAL-IP wartość oczekujący zmieni się na rzeczywisty publiczny adres IP, naciśnij klawisze CTRL-C, aby zatrzymać proces śledzenia narzędzia kubectl.When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. Następujące przykładowe dane wyjściowe przedstawiają prawidłowy publiczny adres IP przypisany do usługi:The following example output shows a valid public IP address assigned to the service:

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

Aby wyświetlić działającą aplikację Azure Vote, otwórz zewnętrzny adres IP usługi w przeglądarce internetowej.To see the Azure Vote app in action, open a web browser to the external IP address of your service.

Aplikacja do głosowania wdrożona w usłudze Azure Kubernetes Service

Po utworzeniu klastra AKS Azure monitor dla kontenerów umożliwił przechwycenie metryk kondycji zarówno dla węzłów klastra, jak i dla każdego z nich.When the AKS cluster was created, Azure Monitor for containers was enabled to capture health metrics for both the cluster nodes and pods. Te metryki kondycji są dostępne w witrynie Azure Portal.These health metrics are available in the Azure portal.

Usuwanie klastraDelete the cluster

Aby uniknąć naliczania opłat za platformę Azure, należy wyczyścić zasoby niepotrzebne.To avoid Azure charges, you should clean up unneeded resources. Gdy klaster nie jest już wymagany, użyj polecenia AZ Group Delete , aby usunąć grupę zasobów, usługę kontenera i wszystkie powiązane zasoby.When the cluster is no longer needed, use the az group delete command to remove the resource group, container service, and all related resources.

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

Uwaga

Po usunięciu klastra jednostka usługi Azure Active Directory używana przez klaster usługi AKS nie jest usuwana.When you delete the cluster, the Azure Active Directory service principal used by the AKS cluster is not removed. Aby zapoznać się z instrukcjami dotyczącymi usuwania jednostki usługi, zobacz temat zagadnienia i usuwanie głównej usługi AKS.For steps on how to remove the service principal, see AKS service principal considerations and deletion.

Uzyskiwanie koduGet the code

W tym przewodniku Szybki start utworzono wdrożenie platformy Kubernetes za pomocą utworzonych wcześniej obrazów kontenerów.In this quickstart, pre-created container images were used to create a Kubernetes deployment. Powiązany kod aplikacji, plik Dockerfile i plik manifestu rozwiązania Kubernetes są dostępne w serwisie GitHub.The related application code, Dockerfile, and Kubernetes manifest file are available on GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

Następne krokiNext steps

W tym przewodniku Szybki start wdrożono klaster Kubernetes oraz wdrożono w nim aplikację obsługującą wiele kontenerów.In this quickstart, you deployed a Kubernetes cluster and deployed a multi-container application to it. Możesz również uzyskać dostęp do pulpitu nawigacyjnego sieci Web Kubernetes dla klastra AKS.You can also access the Kubernetes web dashboard for your AKS cluster.

Aby dowiedzieć się więcej o usłudze AKS i poznać dokładnie proces od kompletnego kodu do wdrożenia, przejdź do samouczka dotyczącego klastra Kubernetes.To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.