Szybki start: wdrażanie klastra usługi Azure Kubernetes Service (AKS) przy użyciu witryny 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 ramach tego przewodnika Szybki start wykonasz następujące czynności:
- Wdrażaj klaster AKS za pomocą witryny Azure Portal.
- Uruchom przykładową aplikację z wieloma kontenerami z grupą mikrousług i frontonów internetowych symulujących scenariusz sprzedaży detalicznej.
Uwaga
Aby rozpocząć szybkie aprowizowanie klastra usługi AKS, ten artykuł zawiera kroki wdrażania klastra z ustawieniami domyślnymi tylko do celów ewaluacyjnych. Przed wdrożeniem klastra gotowego do produkcji zalecamy zapoznanie się z naszą architekturą referencyjną punktu odniesienia, aby wziąć pod uwagę, jak jest ona zgodna z wymaganiami biznesowymi.
Zanim rozpoczniesz
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 temat Kubernetes core concepts for Azure Kubernetes Service (AKS) (Kubernetes — 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.
- Jeśli nie znasz usługi Azure Cloud Shell, zapoznaj się z artykułem Omówienie usługi Azure Cloud Shell.
- Upewnij się, że 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).
Uwaga
Pula węzłów systemu Linux platformy Azure jest teraz ogólnie dostępna . Aby dowiedzieć się więcej o korzyściach i krokach wdrażania, zobacz Wprowadzenie do hosta kontenera systemu Linux platformy Azure dla usługi AKS.
Tworzenie klastra AKS
Zaloguj się w witrynie Azure Portal.
Na stronie głównej witryny Azure Portal wybierz pozycję Utwórz zasób.
W sekcji Kategorie wybierz pozycję Kontenery>usługi Azure Kubernetes Service (AKS).
Na karcie Podstawowe skonfiguruj następujące ustawienia:
- W obszarze Szczegóły projektu:
- Subskrypcja: wybierz subskrypcję platformy Azure, której chcesz użyć dla tego klastra usługi AKS.
- Grupa zasobów: wybierz pozycję Utwórz nową, wprowadź nazwę grupy zasobów, taką jak myResourceGroup, a następnie wybierz przycisk OK. Chociaż możesz wybrać istniejącą grupę zasobów, na potrzeby testowania lub oceny, zalecamy utworzenie grupy zasobów w celu tymczasowego hostowania tych zasobów i uniknięcia wpływu na obciążenia produkcyjne lub programistyczne.
- W obszarze Szczegóły klastra:
Konfiguracja ustawień wstępnych klastra: wybierz pozycję Tworzenie i testowanie. Aby uzyskać więcej informacji na temat wstępnych konfiguracji, zobacz Ustawienia wstępne konfiguracji klastra w witrynie Azure Portal.
Nazwa klastra Kubernetes: wprowadź nazwę klastra, taką jak myAKSCluster.
Region: wybierz region, taki jak Wschodnie stany USA 2.
Strefy dostępności: wybierz pozycję Brak.
Warstwa cenowa usługi AKS: wybierz pozycję Bezpłatna.
Pozostaw wartości domyślne pozostałych ustawień, a następnie wybierz pozycję Dalej.
- W obszarze Szczegóły projektu:
Na karcie Pule węzłów skonfiguruj następujące ustawienia:
Wybierz pozycję Dodaj pulę węzłów i wprowadź nazwę puli węzłów, taką jak nplinux.
Tryb: wybierz pozycję Użytkownik.
Jednostka SKU systemu operacyjnego: wybierz pozycję Ubuntu Linux.
Strefy dostępności: wybierz pozycję Brak.
Pozostaw pole wyboru Włącz wystąpienia usługi Azure Spot niezaznaczone.
Rozmiar węzła: wybierz pozycję Wybierz rozmiar. Na stronie Wybieranie rozmiaru maszyny wirtualnej wybierz pozycję D2s_v3, a następnie wybierz pozycję Wybierz.
Pozostaw wartości domyślne pozostałych ustawień, a następnie wybierz pozycję Dodaj.
Wybierz pozycję Przejrzyj i utwórz , aby uruchomić walidację w konfiguracji klastra. Po zakończeniu walidacji wybierz pozycję Utwórz.
Utworzenie klastra AKS może potrwać kilka minut. Po zakończeniu wdrażania przejdź do zasobu, wybierając pozycję Przejdź do zasobu lub przechodząc do grupy zasobów klastra usługi AKS i wybierając zasób usługi AKS.
Łączenie z klastrem
Do zarządzania klastrami Kubernetes służy klient wiersza polecenia kubectl. kubectl
program jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Jeśli nie znasz usługi Cloud Shell, zapoznaj się z omówieniem usługi Azure Cloud Shell.
Jeśli używasz usługi Cloud Shell, otwórz ją za pomocą >_
przycisku w górnej części witryny Azure Portal. Jeśli używasz programu PowerShell lokalnie, połącz się z platformą Connect-AzAccount
Azure za pomocą polecenia . Jeśli używasz interfejsu wiersza polecenia platformy Azure lokalnie, połącz się z platformą az login
Azure za pomocą polecenia .
Skonfiguruj
kubectl
, aby nawiązać połączenie z klastremaz aks get-credentials
Kubernetes przy użyciu polecenia . To polecenie powoduje pobranie poświadczeń i zastosowanie ich w konfiguracji interfejsu wiersza polecenia Kubernetes.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Sprawdź połączenie z klastrem przy użyciu polecenia
kubectl get
, aby zwrócić listę węzłów klastra.kubectl get nodes
Poniższe przykładowe dane wyjściowe zawierają jeden 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.15.10
Wdrażanie aplikacji
Plik manifestu służy do tworzenia wszystkich obiektów wymaganych do uruchomienia aplikacji sklepu AKS. Plik manifestu kubernetes definiuje żądany stan klastra, taki jak obrazy kontenerów do uruchomienia. Manifest obejmuje następujące wdrożenia i usługi Kubernetes:
- Front sklepu: aplikacja internetowa dla klientów do wyświetlania produktów i składania zamówień.
- Usługa produktu: wyświetla informacje o produkcie.
- Usługa zamawiania: umieszcza zamówienia.
- Rabbit MQ: kolejka komunikatów dla kolejki zamówień.
Uwaga
Nie zalecamy uruchamiania kontenerów stanowych, takich jak Rabbit MQ, bez trwałego przechowywania w środowisku produkcyjnym. Są one używane tutaj dla uproszczenia, ale zalecamy korzystanie z usług zarządzanych, takich jak Azure CosmosDB lub Azure Service Bus.
W usłudze Cloud Shell otwórz edytor i utwórz plik o nazwie
aks-store-quickstart.yaml
.Wklej następujący manifest do edytora:
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
Aby uzyskać podział plików manifestu YAML, zobacz Wdrożenia i manifesty YAML.
Jeśli tworzysz i zapisujesz plik YAML lokalnie, możesz przekazać plik manifestu do katalogu domyślnego w programie CloudShell, wybierając przycisk Przekaż/Pobierz pliki i wybierając plik z lokalnego systemu plików.
Wdróż aplikację przy użyciu
kubectl apply
polecenia i określ nazwę manifestu YAML:kubectl apply -f aks-store-quickstart.yaml
W poniższych przykładowych danych wyjściowych przedstawiono wdrożenia i usługi:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Testowanie aplikacji
Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut.
Sprawdź stan wdrożonych zasobników przy użyciu
kubectl get pods
polecenia . Przed kontynuowaniem upewnij się, że wszystkie zasobniki sąRunning
gotowe.kubectl get pods
Sprawdź publiczny adres IP aplikacji
store-front
. Monitoruj postęp za pomocąkubectl get service
polecenia z argumentem--watch
.kubectl get service store-front --watch
Dane wyjściowe EXTERNAL-IP dla
store-front
usługi początkowo są wyświetlane jako oczekujące:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
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:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Otwórz przeglądarkę internetową na zewnętrzny adres IP usługi, aby zobaczyć działanie aplikacji ze Sklepu Azure.
Usuwanie klastra
Jeśli nie planujesz przechodzenia przez serię samouczków usługi AKS, wyczyść niepotrzebne zasoby, aby uniknąć opłat za platformę Azure.
W witrynie Azure Portal przejdź do grupy zasobów klastra usługi AKS.
Wybierz pozycję Usuń grupę zasobów.
Wprowadź nazwę grupy zasobów do usunięcia, a następnie wybierz pozycję Usuń>usuń.
Uwaga
Klaster usługi AKS został utworzony przy użyciu tożsamości zarządzanej przypisanej przez system. Ta 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. Ta przykładowa aplikacja służy tylko do celów demonstracyjnych i nie reprezentuje wszystkich najlepszych rozwiązań dla aplikacji Kubernetes. 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.
Aby dowiedzieć się więcej na temat usługi AKS i zapoznać się z kompletnym przykładem kodu do wdrożenia, przejdź do serii samouczków dotyczących klastra Kubernetes.
Azure Kubernetes Service