Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: ✔️ AKS Automatisch
Azure Kubernetes Service (AKS) Automatic biedt de eenvoudigste beheerde Kubernetes-ervaring voor ontwikkelaars, DevOps-technici en platformtechnici. Ideaal voor moderne en AI-toepassingen, AKS Automatic automatiseert de installatie en bewerkingen van AKS-clusters en sluit best practice-configuraties in. Gebruikers van elk vaardigheidsniveau kunnen profiteren van de beveiliging, prestaties en betrouwbaarheid van AKS Automatic voor hun toepassingen. AKS Automatic bevat ook een SLA voor podgereedheid die garandeert dat 99,9% van de podgereedheidsbewerkingen binnen 5 minuten voltooid zijn, die ervoor zorgt dat uw toepassingen een betrouwbare, zelfhelende infrastructuur hebben. In deze snelstart wordt ervan uitgegaan dat u een basisbegrip hebt van Kubernetes-concepten. Zie Kubernetes-kernconcepten voor Azure Kubernetes Service (AKS) voor meer informatie.
In deze quickstart leert u het volgende:
- Maak een virtueel netwerk.
- Maak een beheerde identiteit met machtigingen via het virtuele netwerk.
- Implementeer een privé-AKS Automatisch cluster in het virtuele netwerk.
- Maak verbinding met het privécluster.
- Voer een voorbeeldtoepassing met meerdere containers uit met een groep microservices en webfront-ends die een retailscenario simuleren.
Vereiste voorwaarden
- Als u geen Azure-account hebt, maakt u een gratis account.
- Voor dit artikel is versie 2.77.0 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie daar al geïnstalleerd. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.
- Clusteridentiteit met een
Network Contributoringebouwde roltoewijzing op het subnet van de API-server. - Clusteridentiteit met een
Network Contributoringebouwde roltoewijzing in het virtuele netwerk ter ondersteuning van automatische inrichting van knooppunten. - Gebruikersidentiteit die toegang heeft tot het cluster met
Azure Kubernetes Service Cluster User RoleenAzure Kubernetes Service RBAC Writer. - Een virtueel netwerk met een toegewezen API-serversubnet van minimaal
*/28de grootte waaraan is gedelegeerdMicrosoft.ContainerService/managedClusters.- Als er een netwerkbeveiligingsgroep (NSG) is gekoppeld aan subnetten, moet u ervoor zorgen dat de regels het volgende verkeer toestaan tussen de knooppunten en de API-server, de Azure Load Balancer en de API-server en de pod naar podcommunicatie.
- Als er een Azure Firewall of een andere uitgaande beperkingsmethode of een ander apparaat is, moet u ervoor zorgen dat de vereiste uitgaande netwerkregels en FQDN's zijn toegestaan.
- AKS Automatic schakelt Azure Policy in op uw AKS-cluster, maar u moet de
Microsoft.PolicyInsightsresourceprovider vooraf registreren in uw abonnement voor een soepelere ervaring. Zie Azure-resourceproviders en -typen voor meer informatie.
Beperkingen
- De systeemknooppuntpool van AKS Automatische clusters vereist implementatie in Azure-regio's die ondersteuning bieden voor ten minste drie beschikbaarheidszones, tijdelijke besturingssysteemschijf en Azure Linux-besturingssysteem.
- U kunt alleen automatische AKS-clusters maken in regio's waar VNet-integratie van API Server algemeen beschikbaar is.
Belangrijk
AKS Automatic probeert dynamisch een grootte van een virtuele machine voor de system knooppuntgroep te selecteren op basis van de capaciteit die beschikbaar is in het abonnement. Zorg ervoor dat uw abonnement een quotum van 16 vCPU's heeft van een van de volgende grootten in de regio waarin u het cluster implementeert: 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 of Standard_D4alds_v5. U kunt quota voor specifieke VM-families weergeven en aanvragen voor quotumverhoging indienen via Azure Portal.
Als u aanvullende vragen hebt, vindt u meer informatie via de documentatie voor probleemoplossing.
Variabelen definiëren
Definieer de volgende variabelen die in de volgende stappen worden gebruikt.
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)
Een brongroep maken
Een Azure-resourcegroep is een logische groep waarin Azure-resources worden geïmplementeerd en beheerd.
Maak een resourcegroep met de opdracht az group create.
az group create -n ${RG_NAME} -l ${LOCATION}
Hieronder staat een voorbeelduitvoer die lijkt op een geslaagde aanmaak van de resourcegroep.
{
"id": "/subscriptions/<guid>/resourceGroups/automatic-rg",
"location": "eastus",
"managedBy": null,
"name": "automatic-rg",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Een virtueel netwerk maken
Maak een virtueel netwerk met behulp van de az network vnet create opdracht. Maak een subnet van de API-server en het clustersubnet met behulp van de az network vnet subnet create opdracht.
Wanneer u een aangepast virtueel netwerk gebruikt met AKS Automatic, moet u een API-server-subnet maken en delegeren aan Microsoft.ContainerService/managedClusters, waarmee de AKS-service de machtigingen krijgt om de API-serverpods en interne load balancer in dat subnet te injecteren. U kunt het subnet niet gebruiken voor andere workloads, maar u kunt het gebruiken voor meerdere AKS-clusters die zich in hetzelfde virtuele netwerk bevinden. De minimaal ondersteunde subnetgrootte van de API-server is een /28.
Waarschuwing
Een AKS-cluster reserveert ten minste 9 IP-adressen in de adresruimte van het subnet. Als er onvoldoende IP-adressen zijn, kan de schaalbaarheid van de API-server worden belemmerd en kan dit leiden tot een uitval van de API-server.
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
Regels voor netwerkbeveiligingsgroepen
Al het verkeer binnen het virtuele netwerk is standaard toegestaan. Maar als u NSG-regels (Network Security Group) hebt toegevoegd om verkeer tussen verschillende subnetten te beperken, moet u ervoor zorgen dat de NSG-beveiligingsregels de volgende typen communicatie toestaan:
| Bestemming | Bron | protocol | Porto | Gebruik |
|---|---|---|---|---|
| APIServer Subnetwerk CIDR | Clustersubnet | TCP | 443 en 4443 | Vereist om communicatie tussen knooppunten en de API-server mogelijk te maken. |
| APIServer Subnetwerk CIDR | Azure-belastingsverdeling | TCP | 9988 | Vereist om communicatie mogelijk te maken tussen Azure Load Balancer en de API-server. U kunt ook alle communicatie tussen de Azure Load Balancer en de CIDR van het API Server-subnet inschakelen. |
| Knooppunt-CIDR | Knooppunt-CIDR | Alle protocollen | Alle poorten | Vereist om communicatie tussen knooppunten mogelijk te maken. |
| Knooppunt-CIDR | Pod CIDR | Alle protocollen | Alle poorten | Vereist voor serviceverkeersroutering. |
| Pod CIDR | Pod CIDR | Alle protocollen | Alle poorten | Vereist voor Pod-naar-Pod- en Pod-naar-Serviceverkeer, inclusief DNS. |
Een beheerde identiteit maken en deze machtigingen geven voor het virtuele netwerk
Maak een beheerde identiteit met behulp van de az identity create opdracht en haal de principal-id op. Wijs de rol Inzender voor het netwerk in het virtuele netwerk toe aan de beheerde identiteit met behulp van de az role assignment create opdracht.
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}
Een privé-AKS Automatisch cluster maken in een aangepast virtueel netwerk
Als u een privé-AKS Automatisch cluster wilt maken, gebruikt u de opdracht az aks create . Let op het gebruik van de --enable-private-cluster vlag.
Opmerking
Raadpleeg de documentatie van het privécluster voor het configureren van extra opties, zoals het uitschakelen van de openbare FQDN van het cluster en het configureren van de privé-DNS-zone.
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
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling.
Verbinding maken met het cluster
Wanneer een automatisch AKS-cluster wordt gemaakt als een privécluster, heeft het EINDPUNT van de API-server geen openbaar IP-adres. Als u de API-server wilt beheren, bijvoorbeeld via kubectl, moet u verbinding maken via een computer die toegang heeft tot het virtuele Azure-netwerk van het cluster. Er zijn verschillende opties voor het tot stand brengen van netwerkconnectiviteit met het privécluster:
- Maak een virtuele machine in hetzelfde virtuele netwerk als het automatische AKS-cluster met behulp van de
az vm createopdracht met de--vnet-namevlag. - Gebruik een virtuele machine in een afzonderlijk virtueel netwerk en stel peering van virtuele netwerken in.
- Gebruik een Express Route- of VPN-verbinding .
- Gebruik een privé-eindpuntverbinding .
Het maken van een virtuele machine in hetzelfde virtuele netwerk als het AKS-cluster is de eenvoudigste optie. ExpressRoute en VPN's voegen kosten toe en vereisen extra netwerkcomplexiteit. Voor peering van virtuele netwerken moet u de CIDR-bereiken van uw netwerk plannen om ervoor te zorgen dat er geen overlappende bereiken zijn. Raadpleeg Opties voor het maken van verbinding met het privécluster voor meer informatie.
Als u een Kubernetes-cluster wilt beheren, gebruikt u de Kubernetes-opdrachtregelclient kubectl.
kubectl is al geïnstalleerd als u Azure Cloud Shell gebruikt. Als u lokaal wilt installeren kubectl , voert u de opdracht az aks install-cli uit. Automatische AKS-clusters worden geconfigureerd met Microsoft Entra-id voor op rollen gebaseerd toegangsbeheer (RBAC) van Kubernetes.
Wanneer u een cluster maakt met behulp van de Azure CLI, krijgt uw gebruiker ingebouwde rollen toegewezen voor Azure Kubernetes Service RBAC Cluster Admin.
Configureer kubectl om verbinding te maken met uw Kubernetes-cluster met behulp van de opdracht az aks get-credentials. Deze opdracht downloadt referenties en configureert de Kubernetes CLI om deze te gebruiken.
az aks get-credentials --resource-group ${RG_NAME} --name ${CLUSTER_NAME}
Controleer de verbinding met uw cluster met behulp van de opdracht kubectl get . Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.
kubectl get nodes
In de volgende voorbeelduitvoer ziet u hoe u wordt gevraagd u aan te melden.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Nadat u zich hebt aangemeld, ziet u in de volgende voorbeelduitvoer de pools van het beheerde systeemknooppunt. Zorg ervoor dat de status van het knooppunt gereed is.
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
Een virtueel netwerk maken
Dit Bicep-bestand definieert een virtueel netwerk.
@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)
Sla het Bicep-bestand virtualNetwork.bicep op uw lokale computer op.
Belangrijk
Het Bicep-bestand stelt de vnetName param in op aksAutomaticVnet, de addressPrefix param op 172.19.0.0/16, de apiServerSubnetPrefix param op 172.19.0.0/28 en de apiServerSubnetPrefix param op 172.19.1.0/24. Als u verschillende waarden wilt gebruiken, moet u ervoor zorgen dat u de tekenreeksen bijwerkt naar uw voorkeurswaarden.
Implementeer het Bicep-bestand met behulp van de Azure CLI.
az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep
Al het verkeer binnen het virtuele netwerk is standaard toegestaan. Maar als u NSG-regels (Network Security Group) hebt toegevoegd om verkeer tussen verschillende subnetten te beperken, moet u ervoor zorgen dat de NSG-beveiligingsregels de volgende typen communicatie toestaan:
| Bestemming | Bron | protocol | Porto | Gebruik |
|---|---|---|---|---|
| APIServer Subnetwerk CIDR | Clustersubnet | TCP | 443 en 4443 | Vereist om communicatie tussen knooppunten en de API-server mogelijk te maken. |
| APIServer Subnetwerk CIDR | Azure-belastingsverdeling | TCP | 9988 | Vereist om communicatie mogelijk te maken tussen Azure Load Balancer en de API-server. U kunt ook alle communicatie tussen de Azure Load Balancer en de CIDR van het API Server-subnet inschakelen. |
Een beheerde identiteit maken
Dit Bicep-bestand definieert een door de gebruiker toegewezen beheerde identiteit.
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
Sla het Bicep-bestand uami.bicep op uw lokale computer op.
Belangrijk
Het Bicep-bestand stelt de uamiName parameter in op de aksAutomaticUAMI. Als u een andere identiteitsnaam wilt gebruiken, moet u de tekenreeks bijwerken naar uw voorkeursnaam.
Implementeer het Bicep-bestand met behulp van de Azure CLI.
az deployment group create --resource-group <resource-group> --template-file uami.bicep
De rol Netwerkbijdrager toewijzen op het virtuele netwerk
Dit Bicep-bestand definieert roltoewijzingen via het virtuele netwerk.
@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
}
}
Sla het Bicep-bestand roleAssignments.bicep op uw lokale computer op.
Belangrijk
Het Bicep-bestand stelt de vnetName param in op aksAutomaticVnet. Als u een andere naam voor een virtueel netwerk hebt gebruikt, moet u de tekenreeks bijwerken naar de naam van het virtuele netwerk van uw voorkeur.
Implementeer het Bicep-bestand met behulp van de Azure CLI. U moet de principal-id van de door de gebruiker toegewezen identiteit opgeven.
az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Een privé-AKS Automatisch cluster maken in een aangepast virtueel netwerk
Dit Bicep-bestand definieert het AKS automatische cluster.
Opmerking
Raadpleeg de documentatie voor het privécluster voor het configureren van extra opties, zoals het uitschakelen van de openbare FQDN-clusters en het configureren van de privé-DNS-zone.
@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}': {}
}
}
}
Sla het Bicep-bestand aks.bicep op uw lokale computer op.
Belangrijk
Het Bicep-bestand stelt de clusterName param in op aksAutomaticCluster. Als u een andere clusternaam wilt, moet u de tekenreeks bijwerken naar de clusternaam van uw voorkeur.
Implementeer het Bicep-bestand met behulp van de Azure CLI. U moet de resource-id van het subnet van de API-server, de resource-id van het clustersubnet en de door de gebruiker toegewezen identiteits-id opgeven.
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>
Verbinding maken met het cluster
Wanneer een automatisch AKS-cluster wordt gemaakt als een privécluster, heeft het EINDPUNT van de API-server geen openbaar IP-adres. Als u de API-server wilt beheren, bijvoorbeeld via kubectl, moet u verbinding maken via een computer die toegang heeft tot het virtuele Azure-netwerk van het cluster. Er zijn verschillende opties voor het tot stand brengen van netwerkconnectiviteit met het privécluster:
- Maak een virtuele machine in hetzelfde virtuele netwerk als het automatische AKS-cluster met behulp van de
az vm createopdracht met de--vnet-namevlag. - Gebruik een virtuele machine in een afzonderlijk virtueel netwerk en stel peering van virtuele netwerken in.
- Gebruik een Express Route- of VPN-verbinding .
- Gebruik een privé-eindpuntverbinding .
Het maken van een virtuele machine in hetzelfde virtuele netwerk als het AKS-cluster is de eenvoudigste optie. ExpressRoute en VPN's voegen kosten toe en vereisen extra netwerkcomplexiteit. Voor peering van virtuele netwerken moet u de CIDR-bereiken van uw netwerk plannen om ervoor te zorgen dat er geen overlappende bereiken zijn. Raadpleeg Opties voor het maken van verbinding met het privécluster voor meer informatie.
Als u een Kubernetes-cluster wilt beheren, gebruikt u de Kubernetes-opdrachtregelclient kubectl.
kubectl is al geïnstalleerd als u Azure Cloud Shell gebruikt. Als u lokaal wilt installeren kubectl , voert u de opdracht az aks install-cli uit. Automatische AKS-clusters worden geconfigureerd met Microsoft Entra-id voor op rollen gebaseerd toegangsbeheer (RBAC) van Kubernetes.
Belangrijk
Wanneer u een cluster maakt met Bicep, moet u een van de ingebouwde rollen, zoals Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writerof Azure Kubernetes Service RBAC AdminAzure Kubernetes Service RBAC Cluster Admin aan uw gebruikers, toewijzen die zijn afgestemd op het cluster of een specifieke naamruimte, bijvoorbeeld met behulp van az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Zorg er ook voor dat uw gebruikers beschikken over de ingebouwde rol Azure Kubernetes Service Cluster User, zodat ze az aks get-credentials kunnen uitvoeren. Haal vervolgens de kubeconfig van uw AKS-cluster op met behulp van de opdracht az aks get-credentials.
Configureer kubectl om verbinding te maken met uw Kubernetes-cluster met behulp van de opdracht az aks get-credentials. Deze opdracht downloadt referenties en configureert de Kubernetes CLI om deze te gebruiken.
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Controleer de verbinding met uw cluster met behulp van de opdracht kubectl get . Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.
kubectl get nodes
In de volgende voorbeelduitvoer ziet u hoe u wordt gevraagd u aan te melden.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Nadat u zich hebt aangemeld, ziet u in de volgende voorbeelduitvoer de pools van het beheerde systeemknooppunt. Zorg ervoor dat de status van het knooppunt gereed is.
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
De toepassing implementeren
Als u de toepassing wilt implementeren, gebruikt u een manifestbestand om alle objecten te maken die nodig zijn om de AKS Store-toepassing uit te voeren. Een Kubernetes-manifestbestand definieert de gewenste status van een cluster, zoals welke containerinstallatiekopieën moeten worden uitgevoerd. Het manifest bevat de volgende Kubernetes-implementaties en -services:
- Webwinkel: Webtoepassing voor klanten om producten te bekijken en bestellingen te plaatsen.
- Productservice: toont productgegevens.
- Orderservice: Orders plaatsen.
- Rabbit MQ: Berichtensysteem voor een bestelwachtrij.
Opmerking
We raden aan om stateful containers, zoals RabbitMQ, niet te gebruiken zonder permanente opslag voor productie. Deze containers worden hier voor het gemak gebruikt, maar we raden u aan beheerde services te gebruiken, zoals Azure Cosmos DB of Azure Service Bus.
Maak een naamruimte
aks-store-demoom de Kubernetes-resources in te implementeren.kubectl create ns aks-store-demoImplementeer de toepassing met behulp van de opdracht kubectl apply in de
aks-store-demonaamruimte. Het YAML-bestand dat de implementatie definieert, bevindt zich op GitHub.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yamlIn de volgende voorbeelduitvoer ziet u de implementaties en services:
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
De toepassing testen
Wanneer de toepassing wordt uitgevoerd, maakt een Kubernetes-service de front-end van de toepassing beschikbaar op internet. Dit proces kan enkele minuten duren.
Controleer de status van de geïmplementeerde pods met behulp van de opdracht kubectl get pods . Zorg ervoor dat alle pods gereed zijn
Runningvoordat u doorgaat. Als dit de eerste workload is die u implementeert, kan het enkele minuten duren voordat het automatisch inrichten van knooppunten een nodepool maakt om de pods te laten draaien.kubectl get pods -n aks-store-demoControleer op een openbaar IP-adres voor de store-front-toepassing. Controleer de voortgang met behulp van de opdracht kubectl get service met het
--watchargument.kubectl get ingress store-front -n aks-store-demo --watchAanvankelijk toont de ADRESUITVOER voor de
store-frontservice leeg:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mZodra het ADRES verandert van leeg naar een werkelijk openbaar IP-adres, gebruikt u
CTRL-Com hetkubectlobservatieproces te stoppen.In de volgende voorbeelduitvoer ziet u een geldig openbaar IP-adres dat is toegewezen aan de service:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mGa met een webbrowser naar het externe IP-adres van uw ingress om de Azure Store-app in actie te zien.
Het cluster verwijderen
Als u niet van plan bent om de AKS-zelfstudie te doorlopen, moet u overbodige resources opschonen om Azure-kosten te voorkomen. Voer de opdracht az group delete uit om de resourcegroep, containerservice en alle gerelateerde resources te verwijderen.
az group delete --name <resource-group> --yes --no-wait
Opmerking
Het AKS-cluster is gemaakt met een door de gebruiker toegewezen beheerde identiteit. Als u die identiteit niet meer nodig hebt, kunt u deze handmatig verwijderen.
Volgende stappen
In deze quickstart hebt u een privé Kubernetes-cluster geïmplementeerd met behulp van AKS Automatic in een aangepast virtueel netwerk en vervolgens een eenvoudige toepassing met meerdere containers erop geïmplementeerd. Deze voorbeeldtoepassing is alleen bedoeld voor demodoeleinden en vertegenwoordigt niet alle aanbevolen procedures voor Kubernetes-toepassingen. Zie de richtlijnen voor AKS-oplossingen voor meer informatie over het maken van volledige oplossingen met AKS voor productie.
Ga verder met de inleiding voor meer informatie over AKS Automatic.