Szybki start: wdrażanie klastra Azure Kubernetes Service przy użyciu interfejsu wiersza polecenia platformy Azure

Azure Kubernetes Service (AKS) to zarządzana usługa platformy Kubernetes, która umożliwia szybkie wdrażanie klastrów i zarządzanie nimi. W tym przewodniku Szybki start:

  • Wdrażanie klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure.

  • Uruchamianie aplikacji z wieloma kontenerami z frontonie internetowym i wystąpieniem usługi Redis w klastrze.

  • Monitoruj kondycję klastra i zasobników, w których jest uruchamiana aplikacja.

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

W tym przewodniku Szybki start założono, że masz podstawową wiedzę na temat pojęć związanych z rozwiązaniem Kubernetes. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące usługi Azure Kubernetes Service (AKS).

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem Utwórz bezpłatne konto .

Aby dowiedzieć się więcej na temat tworzenia puli węzłów Windows Server, zobacz Create an AKS cluster that supports Windows Server containers (Tworzenie klastra usługi AKS obsługującego kontenery Windows Server).

Wymagania wstępne

  • Ten artykuł wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.64 lub większej. Jeśli używasz Azure Cloud Shell, najnowsza wersja jest już zainstalowana.
  • Tożsamość, za pomocą których tworzysz klaster, ma odpowiednie minimalne uprawnienia. Aby uzyskać więcej informacji na temat dostępu i tożsamości dla usług AKS, zobacz Opcje dostępu i tożsamości dla Azure Kubernetes Service (AKS).

Uwaga

Uruchom polecenia jako administrator, jeśli zamierzasz uruchamiać polecenia w tym przewodniku Szybki start lokalnie, a nie w Azure Cloud Shell.

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to logiczna grupa, w której zasoby platformy Azure są wdrażane i zarządzane. Podczas tworzenia grupy zasobów zostanie wyświetlony monit o określenie lokalizacji. Ta lokalizacja to:

  • Lokalizacja magazynu metadanych grupy zasobów.
  • Miejsce, w którym zasoby będą uruchamiane na platformie Azure, jeśli nie określisz innego regionu podczas tworzenia zasobu.

Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus.

Utwórz grupę zasobów przy użyciu polecenia az group create.

az group create --name myResourceGroup --location eastus

Dane wyjściowe dla pomyślnie utworzonej grupy zasobów:

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

Włączanie monitorowania klastra

Sprawdź, czy w twojej subskrypcji są zarejestrowane programy Microsoft.OperationsManagement i Microsoft.OperationalInsights. Aby sprawdzić stan rejestracji:

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

Jeśli nie są zarejestrowane, zarejestruj firmy Microsoft.OperationsManagement i Microsoft.OperationalInsights przy użyciu:

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

Tworzenie klastra AKS

Utwórz klaster usługi AKS za pomocą polecenia az aks create z parametrem monitorowania --enable-addons, aby Azure Monitor kontenerów. Poniższy przykład tworzy klaster o nazwie myAKSCluster z jednym węzłem:

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.

Uwaga

Podczas tworzenia klastra usługi AKS jest automatycznie tworzona druga grupa zasobów do przechowywania zasobów usługi AKS. Aby uzyskać więcej informacji, zobacz Dlaczego dwie grupy zasobów są tworzone za pomocą aKS?

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia Kubernetes, kubectl. kubectl program jest już zainstalowany, jeśli używasz Azure Cloud Shell.

  1. Zainstaluj kubectl lokalnie przy użyciu polecenia az aks install-cli:

    az aks install-cli
    
  2. Skonfiguruj, kubectl aby nawiązać połączenie z klastrem Kubernetes za pomocą polecenia az aks get-credentials. Następujące polecenie:

    • Pobiera poświadczenia i konfiguruje interfejs wiersza polecenia kubernetes do ich używania.
    • Używa ~/.kube/config lokalizacji domyślnej pliku konfiguracji kubernetes. Określ inną lokalizację dla pliku konfiguracji kubernetes przy użyciu opcji --file.
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

    kubectl get nodes
    

    Dane wyjściowe pokazują pojedynczy węzeł utworzony w poprzednich krokach. Upewnij się, że stan węzła to Gotowe:

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

Uruchamianie aplikacji

Plik manifestu kubernetes definiuje żądany stan klastra, na przykład obrazy kontenerów do uruchomienia.

W tym przewodniku Szybki start użyjemy manifestu do utworzenia wszystkich obiektów potrzebnych do uruchomienia aplikacji Azure Vote. Ten manifest zawiera dwa wdrożenia rozwiązania Kubernetes:

  • Przykładowe aplikacje języka Python do głosowania na platformie Azure.
  • Wystąpienie usługi Redis.

Tworzone są również dwie usługi Kubernetes:

  • Usługa wewnętrzna dla wystąpienia usługi Redis.
  • Zewnętrzna usługa do uzyskiwania dostępu do aplikacji Azure Vote z Internetu.
  1. Utwórz plik o nazwie azure-vote.yaml.

    • Jeśli używasz tego Azure Cloud Shell, ten plik można utworzyć przy użyciu , lub tak, jakby pracować code vi w systemie nano wirtualnym lub fizycznym
  2. Skopiuj następującą definicję 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
    
  3. Wdróż aplikację przy użyciu polecenia kubectl apply i podaj nazwę manifestu YAML:

    kubectl apply -f azure-vote.yaml
    

    Dane wyjściowe pokazują pomyślnie utworzone wdrożenia i usługi:

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

Testowanie aplikacji

Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut.

Monitoruj postęp za pomocą polecenia kubectl get service z --watch argumentem .

kubectl get service azure-vote-front --watch

Dane wyjściowe EXTERNAL-IP dla usługi początkowo będą azure-vote-front wyświetlane jako oczekujące.

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

Gdy adres EXTERNAL-IP zmieni się z oczekujące na rzeczywisty publiczny adres IP, użyj funkcji , CTRL-C aby zatrzymać proces kubectl obejrzyj. Następujące przykładowe dane wyjściowe przedstawiają prawidłowy publiczny adres IP przypisany do usługi:

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.

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

Wyświetl metryki kondycji węzłów klastra i zasobników przechwycone przez Azure Monitor dla kontenerów w Azure Portal.

Usuwanie klastra

Aby uniknąć opłat za platformę Azure, wyczyść niepotrzebne zasoby. Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby za pomocą polecenia az group delete.

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. Aby sprawdzić, jak usunąć jednostkę usługi, zobacz AKS service principal considerations and deletion (Uwagi dotyczące jednostki usługi AKS i jej usuwanie).

Jeśli używasz tożsamości zarządzanej, tożsamość jest zarządzana przez platformę i nie wymaga usunięcia.

Uzyskiwanie kodu

Wcześniej istniejące obrazy kontenerów zostały użyte w tym przewodniku Szybki start do utworzenia wdrożenia kubernetes. Powiązany kod aplikacji, plik dockerfile i plik manifestu kubernetes są dostępne w GitHub.

Następne kroki

W tym przewodniku Szybki start wdrożono klaster Kubernetes, a następnie wdrożono w nim aplikację z wieloma kontenerami. Uzyskaj dostęp do internetowego pulpitu nawigacyjnego usługi Kubernetes dla klastra usługi AKS.

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.