Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Jeśli nie masz konta w usłudze Azure, utwórz darmowe konto.
- 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.
- Tożsamość klastra z wbudowanym
Network Contributorprzypisaniem roli w podsieci serwera interfejsu API. - Tożsamość klastra z wbudowanym
Network Contributorprzypisaniem roli w sieci wirtualnej do obsługi automatycznej aprowizacji węzłów. - Tożsamość użytkownika, która uzyskuje dostęp do klastra za pomocą polecenia
Azure Kubernetes Service Cluster User RoleiAzure Kubernetes Service RBAC Writer. - Sieć wirtualna z dedykowaną podsiecią serwera interfejsu API o rozmiarze co najmniej
*/28delegowanym doMicrosoft.ContainerService/managedClustersusługi .- Jeśli istnieje sieciowa grupa zabezpieczeń (NSG) dołączona do podsieci, upewnij się, że reguły zezwalają na następujący ruch między węzłami a serwerem interfejsu API, usługą Azure Load Balancer i serwerem interfejsu API oraz zasobnikiem do komunikacji zasobników.
- Jeśli istnieje usługa Azure Firewall lub inna metoda ograniczenia ruchu wychodzącego lub urządzenie, upewnij się, że wymagane reguły sieci wychodzącej i nazwy FQDN są dozwolone.
- Usługa AKS Automatic włączy usługę Azure Policy w klastrze usługi AKS, ale należy wstępnie zarejestrować dostawcę
Microsoft.PolicyInsightszasobów w ramach subskrypcji, aby zapewnić bezproblemowe środowisko pracy. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i typy 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:
- Utwórz maszynę wirtualną w tej samej sieci wirtualnej co automatyczny klaster AKS, używając polecenia
az vm createz flagą--vnet-name. - Użyj maszyny wirtualnej w oddzielnej sieci wirtualnej i skonfiguruj peering sieci wirtualnej.
- Użyj połączenia usługi Express Route lub sieci VPN.
- Skorzystaj z połączenia za pomocą prywatnego punktu końcowego.
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:
- Utwórz maszynę wirtualną w tej samej sieci wirtualnej co automatyczny klaster AKS, używając polecenia
az vm createz flagą--vnet-name. - Użyj maszyny wirtualnej w oddzielnej sieci wirtualnej i skonfiguruj peering sieci wirtualnej.
- Użyj połączenia usługi Express Route lub sieci VPN.
- Skorzystaj z połączenia za pomocą prywatnego punktu końcowego.
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:
- 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.
Utwórz przestrzeń nazw
aks-store-demow celu wdrożenia zasobów platformy Kubernetes.kubectl create ns aks-store-demoWdróż aplikację przy użyciu polecenia kubectl apply w
aks-store-demoprzestrzeni 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.yamlNastę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.
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-demoSprawdź 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 --watchDane wyjściowe ADRESU dla
store-frontusługi początkowo są puste:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mGdy adres zmieni się z pustego na rzeczywisty publiczny adres IP, użyj polecenia
CTRL-C, aby zatrzymaćkubectlproces 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 12mOtwórz przeglądarkę internetową pod zewnętrznym adresem IP Twojego wejścia, aby zobaczyć działanie aplikacji Azure 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.