Szybki start: wdrażanie klastra Azure Kubernetes Service (AKS) przy użyciu Azure Portal

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 Azure Portal.
  • 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.

Obraz przedstawiający przechodzenie do przykładowej aplikacji do głosowania na platformie Azure

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.

Wymagania wstępne

Zaloguj się do witryny Azure Portal pod adresem https://portal.azure.com.

Tworzenie klastra AKS

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Wybierz pozycję Kontenery > Usługa Kubernetes.

  3. Na stronie Podstawowe skonfiguruj następujące opcje:

    • Project szczegółowe informacje:
      • Wybierz subskrypcję platformy Azure.
      • Wybierz lub utwórz grupę zasobów platformy Azure, taką jak myResourceGroup.
    • Szczegóły klastra:
      • Upewnij się, że konfiguracja Ustawienia wstępne ma wartość Standardowa ($$). Aby uzyskać więcej informacji na temat wstępnie ustawionych konfiguracji, zobacz Ustawienia wstępne konfiguracji klastra w Azure Portal.
      • Wprowadź nazwę klastra Kubernetes, taką jak myAKSCluster.
      • Wybierz region i wersję kubernetes dla klastra usługi AKS.
    • Pula węzłów podstawowych:
      • Pozostaw wybrane wartości domyślne.

    Tworzenie klastra AKS — podaj podstawowe informacje

    Uwaga

    Konfigurację ustawienia wstępnego można zmienić podczas tworzenia klastra, wybierając Wyświetl wszystko konfiguracji i wybierając inną opcję. Tworzenie klastra usługi AKS — wstępnie ustawione opcje portalu

  4. Po zakończeniu wybierz pozycję Dalej: Pule węzłów.

  5. Zachowaj domyślne opcje pul węzłów. W dolnej części ekranu kliknij przycisk Dalej: Uwierzytelnianie.

    Przestroga

    Propagacja i pojawienie się nowo utworzonych podmiotów zabezpieczeń usługi Azure AD może potrwać kilka minut, co powoduje błędy "nie znaleziono jednostki usługi" i błędy walidacji w Azure Portal. W przypadku trafienia tej wyboju zapoznaj się z naszym artykułem na temat rozwiązywania problemów w celu ograniczenia ryzyka.

  6. Na stronie Uwierzytelnianie skonfiguruj następujące opcje:

    • Utwórz nową tożsamość klastra przez:
      • Pozostawienie pola Authentication (Uwierzytelnianie) z tożsamością zarządzaną assinged systemu lub
      • Wybieranie jednostki usługi do używania jednostki usługi.
        • Wybierz (nową) domyślną jednostkę usługi, aby utworzyć domyślną jednostkę usługi, lub
        • Wybierz pozycję Skonfiguruj jednostkę usługi, aby użyć istniejącej. Należy podać identyfikator klienta i klucz tajny istniejącej głównej jednostki.
    • Włącz opcję Kontroli dostępu opartej na rolach (RBAC) na platformie Kubernetes, aby zapewnić bardziej większej kontroli dostępu do zasobów kubernetes wdrożonych w klastrze usługi AKS.

    Domyślnie używana jest sieć Podstawowa i włączona jest usługa Azure Monitor dla kontenerów.

  7. Kliknij opcję Przejrzyj i utwórz, a następnie Utwórz po zakończeniu walidacji.

  8. Utworzenie klastra AKS może potrwać kilka minut. Po zakończeniu wdrażania przejdź do zasobu, wybierając jedną z nich:

    • Kliknij pozycję Przejdź do zasobu lub

    • Przeglądanie grupy zasobów klastra AKS i wybieranie zasobu usługi AKS.

      • Poniżej przedstawiono przykładowy pulpit nawigacyjny klastra: przeglądanie grupy myResourceGroup i wybieranie zasobu myAKSCluster.

      Przykładowy pulpit nawigacyjny usługi AKS w witrynie Azure Portal

Łą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. Otwórz Cloud Shell za >_ pomocą przycisku w górnej części Azure Portal.

    Otwieranie usługi Azure Cloud Shell w portalu

    Uwaga

    Aby wykonać te operacje w lokalnej instalacji powłoki:

    1. Sprawdź, czy interfejs wiersza polecenia platformy Azure jest zainstalowany.
    2. Połączenie z platformą Azure za pomocą az login polecenia .
  2. Skonfiguruj kubectl 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.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Sprawdź połączenie z klastrem przy użyciu funkcji , kubectl get aby zwrócić 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-agentpool-12345678-vmss000000   Ready    agent   23m   v1.19.11
    aks-agentpool-12345678-vmss000001   Ready    agent   24m   v1.19.11
    

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. W Cloud Shell użyj edytora, aby utworzyć plik o nazwie azure-vote.yaml , taki jak:

    • code azure-vote.yaml
    • nano azure-vote.yamlLub
    • vi azure-vote.yaml.
  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ę za kubectl apply pomocą polecenia i określ 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.

Aby monitorować postęp, użyj kubectl get service polecenia 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.

Obraz przedstawiający przechodzenie do przykładowej aplikacji do głosowania na platformie Azure

Monitorowanie kondycji i dzienników

Podczas tworzenia klastra włączono usługę Azure Monitor dla kontenerów. Azure Monitor dla kontenerów udostępnia metryki kondycji dla klastra usługi AKS i zasobników uruchomionych w klastrze.

Wypełnianie danych metryki w Azure Portal. Aby wyświetlić bieżący stan kondycji, czas pracy i użycie zasobów dla zasobników aplikacji Azure Vote:

  1. Przejdź z powrotem do zasobu AKS w Azure Portal.
  2. W obszarze Monitorowanie po lewej stronie wybierz pozycję Szczegółowe informacje.
  3. W górnej części wybierz pozycję + Dodaj filtr.
  4. Wybierz pozycję Przestrzeń nazw jako właściwość, a następnie wybierz pozycję <All but kube-system> .
  5. Wybierz pozycję Kontenery, aby je wyświetlić.

Zostaną azure-vote-back wyświetlone azure-vote-front kontenery i , jak pokazano w poniższym przykładzie:

Wyświetlanie kondycji uruchomionych kontenerów w usłudze AKS

Aby wyświetlić dzienniki azure-vote-front zasobnika, wybierz pozycję Wyświetl w usłudze Log Analytics w górnej części strony azure-vote-front | Obszar Przegląd po prawej stronie. Te dzienniki obejmują strumienie stdout i stderr z kontenera.

Wyświetlanie dzienników kontenerów w usłudze AKS

Usuwanie klastra

Aby uniknąć nalicznych opłat za platformę Azure, wyczyść niepotrzebne zasoby. Wybierz przycisk Usuń na pulpicie nawigacyjnym klastra AKS. Możesz również użyć polecenia az aks delete w Cloud Shell:

az aks delete --resource-group myResourceGroup --name myAKSCluster --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 rozwiązania Kubernetes dla klastra usługi AKS.

Aby dowiedzieć się więcej na temat usługi AKS, przechodząc przez pełny przykład, w tym tworzenie aplikacji, wdrażanie z usługi Azure Container Registry, aktualizowanie uruchomionej aplikacji oraz skalowanie i uaktualnianie klastra, przejdź do samouczka klastra Kubernetes.