Ćwiczenie — tworzenie klastra usługi Azure Kubernetes Service
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.
Otwórz projekt programu Visual Studio Code z poprzedniego ćwiczenia
W terminalu zaloguj się do platformy Azure przy użyciu polecenia
az login
Postępuj zgodnie z monitami, aby się uwierzytelnić.
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 imyACRName
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
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.
Przejdź do portal.azure.com i wybierz swoją subskrypcję
W menu po lewej stronie wybierz pozycję Dostawcy zasobów w obszarze Ustawienia
W filtrze nazw wprowadź ciąg "Microsoft.Compute"
Jeśli stan to "NotRegistered", wybierz dostawcę i wybierz pozycję Zarejestruj
Teraz możesz przystąpić do tworzenia klastra usługi AKS
Otwórz projekt programu Visual Studio Code, nad którym pracowaliśmy w poprzednim ćwiczeniu.
W terminalu zainstaluj interfejs wiersza polecenia platformy Kubernetes za pomocą następującego polecenia:
Bashaz aks install-cli
Interfejs wiersza polecenia kubernetes,
kubectl
, służy do tworzenia klastra Kubernetes i nawiązywania z nią połączenia.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
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
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
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 tagiem1.0.0
z określonego pliku Dockerfile w bieżącym katalogu, a następnie wypycha obraz do usługi ACR.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.Stosowanie pliku yaml przy użyciu polecenia
kubectl apply -f deployment.yaml
To polecenie tworzy zasób wdrożenia w klastrze.
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
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
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!