Ćwiczenie — tworzenie klastra usługi Azure Kubernetes Service

Ukończone 100 pkt.

W tym ćwiczeniu utworzysz klaster usługi Azure Kubernetes Service (AKS) i wdrożysz obraz w usłudze Azure Container Registry (ACR). Następnie możesz uzyskać dostęp do aplikacji za pośrednictwem zewnętrznego adresu IP.

Tworzenie usługi Azure Container Registry (ACR)

W tym zadaniu utworzysz usługę Azure Container Registry. Usługa Azure Container Registry (ACR) to bezpieczny, zarządzany rejestr, który przechowuje obrazy kontenerów, co ułatwia wdrażanie tych obrazów w usługach platformy Azure, takich jak AKS.

  1. Otwórz projekt programu Visual Studio Code z poprzedniego ćwiczenia

  2. W terminalu zaloguj się do platformy Azure przy użyciu polecenia az login

    Postępuj zgodnie z monitami, aby się uwierzytelnić.

  3. W terminalu utwórz usługę ACR przy użyciu następującego polecenia:

    az acr create --resource-group myResourceGroup --name myACRName --sku Basic
    

    Pamiętaj, aby zastąpić myResourceGroup wartości i myACRName odpowiednią nazwą zasobów. Możesz użyć istniejącej grupy zasobów lub utworzyć nową za pomocą polecenia :

    az group create --name myResourceGroup --location eastus
    
  4. Zaloguj się do zasobu usługi ACR za pomocą następującego polecenia:

    az acr login --name myACRName
    

    Pamiętaj, aby zastąpić myACRName ciąg nazwą rejestru. Następnie musisz oznaczyć lokalny obraz platformy Docker adresem serwera logowania usługi ACR.

Tworzenie klastra AKS

Przed utworzeniem klastra usługi AKS należy upewnić się, że dostawca zasobów Microsoft.Compute jest zarejestrowany dla twojej subskrypcji. Następnie możesz utworzyć klaster i wdrożyć obraz.

  1. Przejdź do portal.azure.com i wybierz swoją subskrypcję

  2. W menu po lewej stronie wybierz pozycję Dostawcy zasobów w obszarze Ustawienia

  3. W filtrze nazw wprowadź ciąg "Microsoft.Compute"

  4. Jeśli stan to "NotRegistered", wybierz dostawcę i wybierz pozycję Zarejestruj

    Teraz możesz przystąpić do tworzenia klastra usługi AKS

  5. Otwórz projekt programu Visual Studio Code, nad którym pracowaliśmy w poprzednim ćwiczeniu.

  6. W terminalu zainstaluj interfejs wiersza polecenia platformy Kubernetes za pomocą następującego polecenia:

    Bash
    az aks install-cli
    

    Interfejs wiersza polecenia kubernetes, kubectl, służy do tworzenia klastra Kubernetes i nawiązywania z nią połączenia.

  7. Utwórz klaster usługi AKS, wprowadzając następujące polecenie w terminalu:

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSClusterName \
        --node-count 2 \
        --generate-ssh-keys \
        --attach-acr myACRName 
    

    Pamiętaj, aby zastąpić wartości grupy zasobów, nazwy klastra i kontenera zasobów platformy Azure (ACR). Użyj nazwy usługi ACR utworzonej w poprzednich krokach.

    Uwaga

    Jeśli wystąpią problemy z tworzeniem zasobów w określonym regionie, możesz zmienić region przy użyciu parametru location . Na przykład --location westus3

    Jeśli wystąpią problemy z dostępnymi rozmiarami maszyny wirtualnej, możesz określić rozmiar maszyny wirtualnej przy użyciu parametru node-vm-size . Na przykład --node-vm-size standard_d15_v2

Wdrażanie obrazu w klastrze

  1. Po utworzeniu klastra połącz się z klastrem przy użyciu następującego polecenia:

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

    To polecenie pobiera poświadczenia klastra i konfiguruje narzędzie kubectl do komunikowania się z klastrem usługi AKS. Powinny zostać wyświetlone dane wyjściowe podobne do następujących: Merged "vector-search-aks" as current context in C:\Users\user\.kube\config

  2. Sprawdź łączność i stan klastra przy użyciu następującego polecenia:

    kubectl get nodes
    

    Powinny zostać wyświetlone pewne szczegóły podobne do następujących danych wyjściowych:

    NAME                                STATUS   ROLES    AGE   VERSION
    aks-nodepool1-30047545-vmss000000   Ready    <none>   32m   v1.29.9
    aks-nodepool1-30047545-vmss000001   Ready    <none>   32m   v1.29.9
    
  3. Utwórz obraz aplikacji za pomocą następującego polecenia:

    az acr build --image vector-search-app:1.0.0 --registry vectorsearchcontainer --file Dockerfile .

    To polecenie tworzy obraz platformy Docker o nazwie vector-search-app z tagiem 1.0.0 z określonego pliku Dockerfile w bieżącym katalogu, a następnie wypycha obraz do usługi ACR.

  4. Utwórz plik deployment.yaml z następującą zawartością:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: vector-search-app
    spec:
    replicas: 2
    selector:
        matchLabels:
        app: vector-search-app
    template:
        metadata:
        labels:
            app: vector-search-app
        spec:
        containers:
            - name: vector-search-app
            image: vectorsearchcontainer.azurecr.io/vector-search-app:1.0.0
            ports:
                - containerPort: 3000
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: vector-search-app
    spec:
    type: LoadBalancer
    selector:
        app: vector-search-app
    ports:
        - protocol: TCP
        port: 80
        targetPort: 3000
    

    Deployment.yaml to plik konfiguracji używany w rozwiązaniu Kubernetes do definiowania wdrożenia aplikacji i zarządzania nim. Określa szczegóły, takie jak liczba wystąpień aplikacji (replik), obraz kontenera i ustawienia środowiska. Ten plik pomaga platformie Kubernetes zautomatyzować tworzenie, skalowanie i zarządzanie konteneryzowanymi aplikacjami.

  5. Stosowanie pliku yaml przy użyciu polecenia kubectl apply -f deployment.yaml

    To polecenie tworzy zasób wdrożenia w klastrze.

  6. Sprawdź, czy obraz jest uruchomiony za pomocą polecenia kubectl get pods

    Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    NAME                                READY    STATUS              RESTARTS   AGE
    vector-search-app-5d5f446499-vlmtx   1/1     Running             0          6s
    
  7. Aby uzyskać zewnętrzny adres IP aplikacji, wprowadź kubectl get svc vector-search-app

    Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    NAME                TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)        AGE
    vector-search-app   LoadBalancer   10.0.0.0       11.0.0.0       80:30235/TCP   29s
    
  8. W przeglądarce wprowadź zewnętrzny adres IP i powinien zostać wyświetlona strona internetowa Contoso Bike Shop z Asystent wirtualny chatbox.

Dobra robota! Utworzono klaster usługi AKS, wdrożono w nim obraz platformy Docker, uwidoczniono aplikację za pośrednictwem usługi LoadBalancer i uzyskiwano do niej dostęp przy użyciu zewnętrznego adresu IP. Pomyślnie wdrożono konteneryzowaną aplikację w usłudze Azure Kubernetes Service!


Następna lekcja: Test wiedzy

Poprzednie Następne