Szybki start: wdrażanie hosta kontenera systemu Linux platformy Azure dla klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure

Rozpocznij pracę z hostem kontenera systemu Linux platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure w celu wdrożenia hosta kontenera systemu Linux platformy Azure dla klastra usługi AKS. Po zainstalowaniu wymagań wstępnych utworzysz grupę zasobów, utworzysz klaster usługi AKS, połączysz się z klastrem i uruchomisz przykładową aplikację z wieloma kontenerami w klastrze.

Wymagania wstępne

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to logiczna grupa przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi. Podczas tworzenia grupy zasobów wymagane jest określenie lokalizacji. Ta lokalizacja to:

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

Aby utworzyć grupę zasobów o nazwie testAzureLinuxResourceGroup w regionie eastus , wykonaj następujący krok:

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

az group create --name testAzureLinuxReourceGroup --location eastus

Następujące dane wyjściowe przypominają, że grupa zasobów została pomyślnie utworzona:

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

Uwaga

W powyższym przykładzie użyto regionów eastus, ale klastry hostów kontenerów systemu Linux platformy Azure są dostępne we wszystkich regionach.

Tworzenie klastra hostów kontenerów systemu Linux platformy Azure

Utwórz klaster usługi AKS przy użyciu polecenia z parametrem --os-sku , aby aprowizować klaster usługi AKS przy użyciu az aks create obrazu systemu Linux platformy Azure. Poniższy przykład tworzy klaster systemu Linux platformy Azure o nazwie testAzureLinuxCluster z jednym węzłem:

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux

Po kilku minutach polecenie zostanie wykonane i zwróci informacje o klastrze w formacie JSON.

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl.

  1. Skonfiguruj kubectl , aby nawiązać połączenie z klastrem az aks get-credentials Kubernetes przy użyciu polecenia .
az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
  1. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get . Polecenie zwraca listę zasobników.
  kubectl get pods --all-namespaces

Wdrażanie aplikacji

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

W tym przewodniku Szybki start utworzysz wszystkie obiekty potrzebne do uruchomienia aplikacji Azure Vote za pomocą manifestu. Ten manifest obejmuje dwa wdrożenia platformy Kubernetes:

  • Przykładowe aplikacje azure Vote 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 w celu uzyskania 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 metody code, vilub nano tak jak w przypadku pracy 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.

Monitoruj postęp 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ć proces obserwacjikubectl. 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 przechodzenie do przykładowej aplikacji Azure Vote.

Usuwanie klastra

Jeśli nie zamierzasz kontynuować pracy z poniższymi samouczkami, aby uniknąć naliczania opłat za korzystanie z platformy Azure, wyczyść niepotrzebne zasoby. az group delete Użyj polecenia , aby usunąć grupę zasobów i wszystkie powiązane zasoby.

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

Następne kroki

W tym przewodniku Szybki start wdrożono klaster hostów kontenerów systemu Linux platformy Azure. Aby dowiedzieć się więcej na temat hosta kontenera systemu Linux platformy Azure i zapoznać się z kompletnym przykładem wdrażania klastra i zarządzania nim, przejdź do samouczka Azure Linux Container Host.