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 wykonasz następujące zadania:

  • Wdrażanie klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure.
  • Uruchom przykładową aplikację z wieloma kontenerami z frontonem internetowym i wystąpieniem usługi Redis w klastrze.

Zrzut ekranu przedstawiający przeglądanie przykładowej aplikacji usługi Azure Vote.

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 platformy Azure .

Aby dowiedzieć się więcej na temat tworzenia puli węzłów systemu Windows Server, zobacz Tworzenie klastra usługi AKS obsługującego kontenery systemu Windows Server.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.0.64 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

  • Tożsamość używana do utworzenia klastra ma odpowiednie minimalne uprawnienia. Aby uzyskać więcej informacji na temat dostępu i tożsamości dla usługi AKS, zobacz Opcje dostępu i tożsamości dla usługi Azure Kubernetes Service (AKS).

  • Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji, w którym zasoby mają być rozliczane przy użyciu polecenia az account .

  • Sprawdź Microsoft. OperationsManagement i Microsoft. Dostawcy operationalInsights są zarejestrowani w subskrypcji. Są to dostawcy zasobów platformy Azure wymagane do obsługi szczegółowych informacji o kontenerze. Aby sprawdzić stan rejestracji, uruchom następujące polecenia:

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

    Jeśli nie są zarejestrowane, zarejestruj Microsoft. OperationsManagement i Microsoft. OperationalInsights przy użyciu następujących poleceń:

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

Uwaga

Uruchom polecenia z uprawnieniami administracyjnymi, jeśli planujesz uruchomić polecenia w tym przewodniku Szybki start lokalnie zamiast w usłudze Azure Cloud Shell.

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to grupa logiczna, 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.
  • Jeśli podczas tworzenia zasobów nie określisz innego regionu podczas tworzenia zasobów, zasoby będą uruchamiane na platformie Azure.

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

Poniższy przykład danych wyjściowych przypomina pomyślne utworzenie grupy zasobów:

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

Tworzenie klastra AKS

Utwórz klaster usługi AKS przy użyciu polecenia az aks create z parametrem --enable-addons monitoring i --enable-msi-auth-for-monitoring , aby włączyć usługę Azure Monitor Container Insights z uwierzytelnianiem tożsamości zarządzanej (wersja zapoznawcza). Poniższy przykład tworzy klaster o nazwie myAKSCluster z jednym węzłem i włącza tożsamość zarządzaną przypisaną przez system:

az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-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 druga grupa zasobów jest tworzona automatycznie w celu przechowywania zasobów usługi AKS. Aby uzyskać więcej informacji, zobacz Dlaczego dwie grupy zasobów zostały utworzone za pomocą usługi AKS?

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia Kubernetes kubectl. kubectljest już zainstalowany, jeśli używasz usługi 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 przy użyciu polecenia az aks get-credentials . Następujące polecenie:

    • Pobiera poświadczenia i konfiguruje interfejs wiersza polecenia platformy Kubernetes do ich używania.
    • Używa ~/.kube/configmetody , domyślną lokalizacją pliku konfiguracji kubernetes. Określ inną lokalizację pliku konfiguracji platformy Kubernetes przy użyciu argumentu --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
    

    Poniższy przykład danych wyjściowych przedstawia 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
    

Wdrażanie aplikacji

Plik manifestu kubernetes definiuje żądany stan klastra, taki jak obrazy kontenerów do uruchomienia.

W tym przewodniku Szybki start użyjesz manifestu, aby utworzyć wszystkie obiekty potrzebne do uruchomienia aplikacji Azure Vote. Ten manifest obejmuje dwa wdrożenia platformy Kubernetes:

  • Przykładowe aplikacje platformy Azure Vote w języku Python.
  • Wystąpienie usługi Redis.

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

  • Wewnętrzna usługa dla wystąpienia usługi Redis.
  • Usługa zewnętrzna służąca do uzyskiwania dostępu do aplikacji Azure Vote z Internetu.
  1. Utwórz plik o nazwie azure-vote.yaml i skopiuj go w następującym manifeście.

    • Jeśli używasz usługi Azure Cloud Shell, ten plik można utworzyć przy użyciu polecenia code, vilub nano tak, jakby działał w systemie wirtualnym lub fizycznym.
    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
    

    Aby uzyskać podział plików manifestu YAML, zobacz Wdrożenia i manifesty YAML.

  2. Wdróż aplikację przy użyciu polecenia kubectl apply i podaj nazwę manifestu YAML:

    kubectl apply -f azure-vote.yaml
    

    Poniższy przykład przypomina dane wyjściowe przedstawiające 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

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

Monitorowanie postępu przy użyciu polecenia kubectl get service za pomocą argumentu --watch .

kubectl get service azure-vote-front --watch

Dane wyjściowe EXTERNAL-IP dla azure-vote-front usługi będą początkowo 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 polecenia CTRL-C , aby zatrzymać kubectl proces oglądania. 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.

Zrzut ekranu przedstawiający przeglądanie przykładowej aplikacji usługi Azure Vote.

Usuwanie klastra

Aby uniknąć opłat za platformę Azure, jeśli nie planujesz przechodzenia przez kolejne samouczki, 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

Klaster AKS został utworzony przy użyciu tożsamości zarządzanej przypisanej przez system (domyślnej opcji tożsamości używanej w tym przewodniku Szybki start), tożsamość jest zarządzana przez platformę i nie wymaga usunięcia.

Następne kroki

W tym przewodniku Szybki start wdrożono klaster Kubernetes, a następnie wdrożono w nim prostą aplikację z wieloma kontenerami.

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.

Ten przewodnik Szybki start służy do celów wprowadzających. Aby uzyskać wskazówki dotyczące tworzenia pełnych rozwiązań za pomocą usługi AKS dla środowiska produkcyjnego, zobacz Wskazówki dotyczące rozwiązania AKS.