Udostępnij przez


Szybki start: tworzenie prywatnego klastra usługi Azure Kubernetes Service (AKS) w niestandardowej sieci wirtualnej

Dotyczy: ✔️ AKS Automatic

Usługa Azure Kubernetes Service (AKS) Automatic zapewnia najłatwiejsze zarządzane środowisko kubernetes dla deweloperów, inżynierów DevOps i inżynierów platformy. Idealne rozwiązanie dla nowoczesnych aplikacji sztucznej inteligencji, usługa AKS Automatic automatyzuje konfigurację i operacje klastra usługi AKS oraz osadza konfiguracje najlepszych rozwiązań. Użytkownicy dowolnego poziomu umiejętności mogą korzystać z bezpieczeństwa, wydajności i niezawodności Automatyki AKS dla swoich aplikacji. Usługa AKS Automatic obejmuje również umowę SLA dotyczącą gotowości zasobników, która gwarantuje zakończenie 99,9% operacji gotowości zasobników w ciągu 5 minut, zapewniając niezawodną, samonaprawiającą się infrastrukturę dla aplikacji. Ten szybki start zakłada, że masz podstawową wiedzę na temat pojęć związanych z platformą 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)).

Z tego przewodnika Szybki start dowiesz się, jak wykonywać następujące zadania:

  • Utwórz sieć prywatną.
  • Utwórz tożsamość zarządzaną z uprawnieniami za pośrednictwem sieci wirtualnej.
  • Wdróż prywatny automatyczny klaster AKS w sieci wirtualnej.
  • Połącz się z klastrem prywatnym.
  • Uruchom przykładową aplikację z wieloma kontenerami z grupą mikrousług i frontonów internetowych symulujących scenariusz sprzedaży detalicznej.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.77.0 lub nowszej interfejsu wiersza polecenia platformy Azure. Jeśli używasz usługi Azure Cloud Shell, najnowsza wersja jest już tam zainstalowana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Ograniczenia

  • Pula węzłów systemowych klastrów automatycznych AKS musi być wdrożona w regionach platformy Azure, które obsługują co najmniej trzy strefy dostępności, efemeryczne dyski systemu operacyjnego oraz system operacyjny Azure Linux.
  • Klastry automatyczne usługi AKS można tworzyć tylko w regionach, w których integracja z siecią wirtualną serwera INTERFEJSu API jest ogólnie dostępna .

Ważne

AKS Automatic próbuje dynamicznie wybrać rozmiar maszyny wirtualnej dla system puli węzłów na podstawie pojemności dostępnej w ramach subskrypcji. Upewnij się, że subskrypcja ma limit przydziału dla 16 procesorów wirtualnych o dowolnym z następujących rozmiarów w regionie, w którym wdrażasz klaster: Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 lub Standard_D4alds_v5. Możesz wyświetlić limity przydziału dla określonych rodzin maszyn wirtualnych i przesłać żądania zwiększenia limitu przydziału za pośrednictwem witryny Azure Portal. Jeśli masz dodatkowe pytania, dowiedz się więcej, zapoznaj się z dokumentami rozwiązywania problemów.

Definiowanie zmiennych

Zdefiniuj następujące zmienne, które będą używane w kolejnych krokach.

RG_NAME=automatic-rg
VNET_NAME=automatic-vnet
CLUSTER_NAME=automatic
IDENTITY_NAME=automatic-uami
LOCATION=eastus
SUBSCRIPTION_ID=$(az account show --query id -o tsv)

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to grupa logiczna, w której zasoby platformy Azure są wdrażane i zarządzane.

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

az group create -n ${RG_NAME} -l ${LOCATION}

Następujące przykładowe dane wyjściowe przypominają pomyślne utworzenie grupy zasobów:

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

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną przy użyciu az network vnet create polecenia . Utwórz podsieć dla serwera API i podsieć klastra za pomocą polecenia az network vnet subnet create.

W przypadku korzystania z niestandardowej sieci wirtualnej z usługą AKS Automatic należy utworzyć i delegować podsieć serwera API do Microsoft.ContainerService/managedClusters, co udziela usłudze AKS uprawnień do wstrzykiwania zasobników serwera API i wewnętrznego load balancera do tej podsieci. Nie można używać podsieci dla innych obciążeń, ale można jej używać w przypadku wielu klastrów usługi AKS znajdujących się w tej samej sieci wirtualnej. Minimalny obsługiwany rozmiar podsieci serwera interfejsu API to /28.

Ostrzeżenie

Klaster AKS rezerwuje co najmniej 9 adresów IP w przestrzeni podsieci. Brak adresów IP może uniemożliwić skalowanie serwera interfejsu API i spowodować awarię serwera interfejsu API.

az network vnet create --name ${VNET_NAME} \
--resource-group ${RG_NAME} \
--location ${LOCATION} \
--address-prefixes 172.19.0.0/16

az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name apiServerSubnet \
--delegations Microsoft.ContainerService/managedClusters \
--address-prefixes 172.19.0.0/28

az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name clusterSubnet \
--address-prefixes 172.19.1.0/24

Reguły sieciowych grup zabezpieczeń

Cały ruch w sieci wirtualnej jest domyślnie dozwolony. Jeśli jednak dodano reguły sieciowej grupy zabezpieczeń w celu ograniczenia ruchu między różnymi podsieciami, upewnij się, że reguły zabezpieczeń sieciowej grupy zabezpieczeń zezwalają na następujące typy komunikacji:

Destynacja Źródło Protokół Port Użyj
Podsieć CIDR APIServer Podsieć klastra TCP 443 i 4443 Wymagane do umożliwienia komunikacji między węzłami systemu i serwerem API.
Podsieć CIDR APIServer Azure Load Balancer TCP 9988 Wymagane do włączenia komunikacji między usługą Azure Load Balancer i serwerem interfejsu API. Możesz również włączyć całą komunikację między usługą Azure Load Balancer a podsiecią CIDR serwera API.
CIDR węzła CIDR węzła Wszystkie protokoły Wszystkie porty Wymagane do włączenia komunikacji między węzłami.
CIDR węzła CIDR Pod-a Wszystkie protokoły Wszystkie porty Wymagane do trasowania ruchu usługowego.
CIDR Pod-a CIDR Pod-a Wszystkie protokoły Wszystkie porty Wymagane dla ruchu Pod do Pod i Pod do usługi, w tym ruchu DNS.

Tworzenie tożsamości zarządzanej i nadawanie jej uprawnień w sieci wirtualnej

Utwórz tożsamość zarządzaną za pomocą polecenia az identity create i pobierz identyfikator podmiotu zabezpieczeń. Przypisz rolę Współautor sieci do tożsamości zarządzanej w sieci wirtualnej przy użyciu polecenia az role assignment create.

az identity create \
--resource-group ${RG_NAME} \
 --name ${IDENTITY_NAME} \
 --location ${LOCATION}

IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group ${RG_NAME} --name ${IDENTITY_NAME} --query principalId -o tsv)

az role assignment create \
--scope "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}" \
--role "Network Contributor" \
--assignee ${IDENTITY_PRINCIPAL_ID}

"Tworzenie prywatnego automatycznego klastra AKS w niestandardowej sieci wirtualnej"

Aby utworzyć prywatny klaster AKS Automatic, użyj polecenia az aks create. Zwróć uwagę na użycie flagi --enable-private-cluster .

Uwaga

Dokumentacja klastra prywatnego umożliwia konfigurowanie dodatkowych opcji, takich jak wyłączenie publicznej nazwy FQDN klastra oraz skonfigurowanie prywatnej strefy DNS.

az aks create \
--resource-group ${RG_NAME} \
--name ${CLUSTER_NAME} \
--location ${LOCATION} \
--apiserver-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/apiServerSubnet" \
--vnet-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/clusterSubnet" \
--assign-identity "/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RG_NAME}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${IDENTITY_NAME}" \
--sku automatic \
--enable-private-cluster \
--no-ssh-key

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

Łączenie z klastrem

Po utworzeniu klastra automatycznego usługi AKS jako klastra prywatnego punkt końcowy serwera interfejsu API nie ma publicznego adresu IP. Aby zarządzać serwerem interfejsu API, na przykład za pośrednictwem kubectlprogramu, musisz nawiązać połączenie za pośrednictwem maszyny, która ma dostęp do wirtualnej sieci klastra Azure. Istnieje kilka opcji nawiązywania łączności sieciowej z klastrem prywatnym:

Utworzenie maszyny wirtualnej w tej samej sieci wirtualnej co klaster usługi AKS jest najprostszą opcją. Usługa ExpressRoute i sieci VPN dodają koszty i wymagają dodatkowej złożoności sieci. Równoważenie sieci wirtualnych wymaga zaplanowania zakresów CIDR sieci, aby uniknąć nakładania się zakresów. Aby uzyskać więcej informacji , zobacz Opcje nawiązywania połączenia z klastrem prywatnym .

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, uruchom polecenie az aks install-cli . Klastry automatyczne AKS są konfigurowane z użyciem Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) w Kubernetes.

Podczas tworzenia klastra przy użyciu interfejsu wiersza polecenia platformy Azure użytkownik ma przypisane wbudowane role dla programu Azure Kubernetes Service RBAC Cluster Admin.

Skonfiguruj kubectl, aby połączyć się z klastrem Kubernetes przy użyciu polecenia az aks get-credentials. To polecenie pobiera poświadczenia i konfiguruje Kubernetes CLI do ich użycia.

az aks get-credentials --resource-group ${RG_NAME} --name ${CLUSTER_NAME}

Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get . To polecenie zwraca listę węzłów klastra.

kubectl get nodes

Przykładowy wynik poniżej pokazuje, jak proszono Cię o zalogowanie się.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

Po zalogowaniu się następujące przykładowe dane wyjściowe przedstawiają zarządzane pule węzłów systemu. Upewnij się, że stan węzła to Gotowe.

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Tworzenie sieci wirtualnej

Ten plik Bicep definiuje sieć wirtualną.

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'

@description('The address prefix of the virtual network.')
param addressPrefix string = '172.19.0.0/16'

@description('The name of the API server subnet.')
param apiServerSubnetName string = 'apiServerSubnet'

@description('The subnet prefix of the API server subnet.')
param apiServerSubnetPrefix string = '172.19.0.0/28'

@description('The name of the cluster subnet.')
param clusterSubnetName string = 'clusterSubnet'

@description('The subnet prefix of the cluster subnet.')
param clusterSubnetPrefix string = '172.19.1.0/24'

// Virtual network with an API server subnet and a cluster subnet
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
    name: vnetName
    location: location
    properties: {
        addressSpace: {
            addressPrefixes: [ addressPrefix ]
        }
        subnets: [
            {
                name: apiServerSubnetName
                properties: {
                    addressPrefix: apiServerSubnetPrefix
                }
            }
            {
                name: clusterSubnetName
                properties: {
                    addressPrefix: clusterSubnetPrefix
                }
            }
        ]
    }
}

output apiServerSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, apiServerSubnetName)
output clusterSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, clusterSubnetName)

Zapisz plik Bicep virtualNetwork.bicep na komputerze lokalnym.

Ważne

Plik Bicep ustawia vnetName parametr na aksAutomaticVnet, addressPrefix parametr na 172.19.0.0/16, apiServerSubnetPrefix parametr na 172.19.0.0/28, a apiServerSubnetPrefix parametr na 172.19.1.0/24. Jeśli chcesz użyć różnych wartości, pamiętaj, aby zaktualizować ciągi do preferowanych wartości.

Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure.

az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep

Cały ruch w sieci wirtualnej jest domyślnie dozwolony. Jeśli jednak dodano reguły sieciowej grupy zabezpieczeń w celu ograniczenia ruchu między różnymi podsieciami, upewnij się, że reguły zabezpieczeń sieciowej grupy zabezpieczeń zezwalają na następujące typy komunikacji:

Destynacja Źródło Protokół Port Użyj
Podsieć CIDR APIServer Podsieć klastra TCP 443 i 4443 Wymagane do umożliwienia komunikacji między węzłami systemu i serwerem API.
Podsieć CIDR APIServer Azure Load Balancer TCP 9988 Wymagane do włączenia komunikacji między usługą Azure Load Balancer i serwerem interfejsu API. Możesz również włączyć całą komunikację między usługą Azure Load Balancer a podsiecią CIDR serwera API.

Tworzenie tożsamości zarządzanej

Ten plik Bicep definiuje tożsamość zarządzaną przypisaną użytkownikowi.

param location string = resourceGroup().location
param uamiName string = 'aksAutomaticUAMI'

resource userAssignedManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
  name: uamiName
  location: location
}

output uamiId string = userAssignedManagedIdentity.id
output uamiPrincipalId string = userAssignedManagedIdentity.properties.principalId
output uamiClientId string = userAssignedManagedIdentity.properties.clientId

Zapisz plik Bicep uami.bicep na komputerze lokalnym.

Ważne

Plik Bicep ustawia parametr uamiName na aksAutomaticUAMI. Jeśli chcesz użyć innej nazwy tożsamości, pamiętaj o zaktualizowaniu ciągu do preferowanej nazwy.

Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure.

az deployment group create --resource-group <resource-group> --template-file uami.bicep

Przypisz rolę współpracownika sieci dla sieci wirtualnej

Ten plik Bicep definiuje przypisania ról w sieci wirtualnej.

@description('The name of the virtual network.')
param vnetName string = 'aksAutomaticVnet'

@description('The principal ID of the user assigned managed identity.')
param uamiPrincipalId string

// Get a reference to the virtual network
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' existing ={
  name: vnetName
}

// Assign the Network Contributor role to the user assigned managed identity on the virtual network
// '4d97b98b-1d4f-4787-a291-c67834d212e7' is the built-in Network Contributor role definition
// See: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/networking#network-contributor
resource networkContributorRoleAssignmentToVirtualNetwork 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(uamiPrincipalId, '4d97b98b-1d4f-4787-a291-c67834d212e7', resourceGroup().id, virtualNetwork.name)
  scope: virtualNetwork
  properties: {
      roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', '4d97b98b-1d4f-4787-a291-c67834d212e7')
      principalId: uamiPrincipalId
  }
}

Zapisz plik roleAssignments.bicep na lokalnym komputerze.

Ważne

Plik Bicep ustawia parametr vnetName na aksAutomaticVnet. Jeśli użyto innej nazwy sieci wirtualnej, pamiętaj o zaktualizowaniu ciągu do preferowanej nazwy sieci wirtualnej.

Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure. Musisz podać główny identyfikator tożsamości przypisanej przez użytkownika.

az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>

"Tworzenie prywatnego automatycznego klastra AKS w niestandardowej sieci wirtualnej"

Ten plik Bicep definiuje klaster AKS Automatic.

Uwaga

Możesz odnieść się do dokumentacji prywatnego klastra w celu skonfigurowania dodatkowych opcji, takich jak wyłączenie publicznego FQDN dla klastrów oraz skonfigurowanie prywatnej strefy DNS.

@description('The name of the managed cluster resource.')
param clusterName string = 'aksAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

@description('The resource ID of the API server subnet.')
param apiServerSubnetId string

@description('The resource ID of the cluster subnet.')
param clusterSubnetId string

@description('The resource ID of the user assigned managed identity.')
param uamiId string

/// Create the private AKS Automatic cluster using the custom virtual network and user assigned managed identity
resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
    name: 'Automatic'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        mode: 'System'
          count: 3
        vnetSubnetID: clusterSubnetId
      }
    ]
    apiServerAccessProfile: {
        subnetId: apiServerSubnetId
        enablePrivateCluster: true
    }
    networkProfile: {
      outboundType: 'loadBalancer'
    }
  }
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${uamiId}': {}
    }
  }
}

Zapisz plik Bicep aks.bicep na komputerze lokalnym.

Ważne

Plik Bicep ustawia parametr clusterName na aksAutomaticCluster. Jeśli chcesz mieć inną nazwę klastra, pamiętaj, aby zaktualizować ciąg do preferowanej nazwy klastra.

Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure. Musisz podać identyfikator zasobu podsieci serwera API, identyfikator zasobu podsieci klastra i identyfikator tożsamości przypisanej użytkownika.

az deployment group create --resource-group <resource-group> --template-file aks.bicep \
--parameters apiServerSubnetId=<API server subnet resource id> \
--parameters clusterSubnetId=<cluster subnet resource id> \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>

Łączenie z klastrem

Po utworzeniu klastra automatycznego usługi AKS jako klastra prywatnego punkt końcowy serwera interfejsu API nie ma publicznego adresu IP. Aby zarządzać serwerem interfejsu API, na przykład za pośrednictwem kubectlprogramu, musisz nawiązać połączenie za pośrednictwem maszyny, która ma dostęp do wirtualnej sieci klastra Azure. Istnieje kilka opcji nawiązywania łączności sieciowej z klastrem prywatnym:

Utworzenie maszyny wirtualnej w tej samej sieci wirtualnej co klaster usługi AKS jest najprostszą opcją. Usługa Express Route i sieci VPN dodają koszty i wymagają dodatkowej złożoności sieci. Równoważenie sieci wirtualnych wymaga zaplanowania zakresów CIDR sieci, aby uniknąć nakładania się zakresów. Aby uzyskać więcej informacji , zobacz Opcje nawiązywania połączenia z klastrem prywatnym .

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, uruchom polecenie az aks install-cli . Klastry automatyczne AKS są konfigurowane z użyciem Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) w Kubernetes.

Ważne

Podczas tworzenia klastra przy użyciu Bicep należy przypisać jedną z wbudowanych ról, takich jak Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin lub Azure Kubernetes Service RBAC Cluster Admin, do użytkowników, określając zakres do klastra lub określonej przestrzeni nazw, na przykład przy użyciu az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Upewnij się również, że użytkownicy mają wbudowaną rolę Azure Kubernetes Service Cluster User, aby mogli uruchamiać az aks get-credentials, a następnie uzyskać kubeconfig klastra usługi AKS, używając polecenia az aks get-credentials.

Skonfiguruj kubectl, aby połączyć się z klastrem Kubernetes przy użyciu polecenia az aks get-credentials. To polecenie pobiera poświadczenia i konfiguruje Kubernetes CLI do ich użycia.

az aks get-credentials --resource-group <resource-group> --name <cluster-name>

Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get . To polecenie zwraca listę węzłów klastra.

kubectl get nodes

Przykładowy wynik poniżej pokazuje, jak proszono Cię o zalogowanie się.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

Po zalogowaniu się następujące przykładowe dane wyjściowe przedstawiają zarządzane pule węzłów systemu. Upewnij się, że stan węzła to Gotowe.

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Wdrażanie aplikacji

Aby wdrożyć aplikację, należy użyć pliku manifestu, aby utworzyć wszystkie obiekty wymagane do uruchomienia aplikacji sklepu AKS. Plik manifestu Kubernetes definiuje żądany stan klastra, taki jak jakie obrazy kontenerów mają być uruchamiane. Manifest obejmuje następujące wdrożenia i usługi Kubernetes:

Zrzut ekranu przedstawiający przykładową architekturę sklepu Azure Store.

  • 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 zamówień: składa zamówienia.
  • Rabbit MQ: system kolejkowania komunikatów dla kolejki zamówień.

Uwaga

Nie zalecamy uruchamiania kontenerów stanowych, takich jak RabbitMQ, bez stałego przechowywania danych w środowisku produkcyjnym. Te kontenery są używane tutaj dla uproszczenia, ale zalecamy korzystanie z usług zarządzanych, takich jak Azure Cosmos DB lub Azure Service Bus.

  1. Utwórz przestrzeń nazw aks-store-demo w celu wdrożenia zasobów platformy Kubernetes.

    kubectl create ns aks-store-demo
    
  2. Wdróż aplikację przy użyciu polecenia kubectl apply w aks-store-demo przestrzeni nazw. Plik YAML definiujący wdrożenie znajduje się w witrynie GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    Następujące przykładowe dane wyjściowe przedstawiają wdrożenia i usługi:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins 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
    ingress/store-front created
    

Testowanie aplikacji

Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut.

  1. Sprawdź status wdrożonych podów za pomocą polecenia kubectl get pods. Przed kontynuowaniem upewnij się, że wszystkie zasobniki są gotowe Running. Jeśli jest to pierwsze wdrożone obciążenie, automatyczne aprowizowanie węzłów może potrwać kilka minut, aby utworzyć pulę węzłów do uruchamiania zasobników.

    kubectl get pods -n aks-store-demo
    
  2. Sprawdź publiczny adres IP aplikacji frontonu sklepu. Monitoruj postęp, używając polecenia kubectl get service z argumentem --watch.

    kubectl get ingress store-front -n aks-store-demo --watch
    

    Dane wyjściowe ADRESU dla store-front usługi początkowo są puste:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. Gdy adres zmieni się z pustego na rzeczywisty publiczny adres IP, użyj polecenia CTRL-C , aby zatrzymać kubectl proces oglądania.

    Następujące przykładowe dane wyjściowe pokazują prawidłowy publiczny adres IP przypisany do usługi:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Otwórz przeglądarkę internetową pod zewnętrznym adresem IP Twojego wejścia, aby zobaczyć działanie aplikacji Azure Store.

    Zrzut ekranu przedstawiający przykładową aplikację sklepu AKS Store.

Usuwanie klastra

Jeśli nie planujesz przechodzenia przez samouczek AKS, wyczyść niepotrzebne zasoby, aby uniknąć opłat Azure. Uruchom polecenie az group delete , aby usunąć grupę zasobów, usługę kontenera i wszystkie powiązane zasoby.

az group delete --name <resource-group> --yes --no-wait

Uwaga

Klaster usługi AKS został utworzony przy użyciu tożsamości zarządzanej przypisanej przez użytkownika. Jeśli nie potrzebujesz już tej tożsamości, możesz ją usunąć ręcznie.

Następne kroki

W tym przewodniku szybkiego startu wdrożyłeś prywatny klaster Kubernetes za pomocą AKS Automatic w ramach niestandardowej sieci wirtualnej, a następnie zainstalowałeś na nim prostą aplikację wielokontenerową. 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 o usłudze AKS Automatic, przejdź do wprowadzenia.