Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic bietet die einfachste verwaltete Kubernetes-Erfahrung für Entwickler, DevOps-Ingenieure und Plattformtechniker. AKS Automatic automatisiert die Einrichtung von AKS-Clustern sowie Clustervorgänge und bettet Konfigurationen mit bewährten Methoden ein, wodurch es sich ideal für moderne Anwendungen und KI-Anwendungen (künstliche Intelligenz) eignet. Unabhängig von ihren Kenntnissen und Qualifikationen können alle Benutzer von der Sicherheit, Leistung und Zuverlässigkeit profitieren, die AKS Automatic für ihre Anwendungen bietet. AKS Automatic umfasst auch eine Vereinbarung zur Betriebsbereitschaft der Pods, die garantiert, dass 99,9 % der qualifizierenden Pod-Bereitschaftsvorgänge innerhalb von 5 Minuten abgeschlossen werden, wodurch eine zuverlässige, selbstheilende Infrastruktur für Ihre Anwendungen sichergestellt wird. Für diese Schnellstartanleitung werden Grundkenntnisse in Bezug auf die Kubernetes-Konzepte vorausgesetzt. Weitere Informationen finden Sie unter Kubernetes Kernkonzepte für Azure Kubernetes Service (AKS).
In dieser Schnellstartanleitung lernen Sie Folgendes:
- Erstellen Sie ein virtuelles Netzwerk.
- Erstellen Sie eine verwaltete Identität mit Berechtigungen für das virtuelle Netzwerk.
- Stellen Sie einen privaten AKS Automatic Cluster im virtuellen Netzwerk bereit.
- Stellen Sie eine Verbindung mit dem privaten Cluster her.
- Führen Sie eine Beispielanwendung mit mehreren Containern mit einer Gruppe von Microservices und Web-Front-Ends aus, die ein Einzelhandelsszenario simulieren.
Voraussetzungen
- Wenn Sie kein Azure Konto haben, erstellen Sie ein free-Konto.
- Dieser Artikel erfordert Version 2.77.0 oder höher des Azure CLI. Wenn Sie Azure Cloud Shell verwenden, ist die neueste Version bereits dort installiert. Informationen zum Installieren oder Aktualisieren finden Sie unter Install Azure CLI.
- Clusteridentität mit einer
Network Contributorintegrierten Rollenzuweisung im API-Server-Subnetz. - Clusteridentität mit einer
Network Contributorintegrierten Rollenzuweisung im virtuellen Netzwerk zur Unterstützung der automatischen Bereitstellung vonKnoten. - Auf den Cluster wird mit der Benutzeridentität
Azure Kubernetes Service Cluster User RoleundAzure Kubernetes Service RBAC Writerzugegriffen. - Ein virtuelles Netzwerk mit einem dedizierten API-Server-Subnetz mit mindestens
*/28Größe, das anMicrosoft.ContainerService/managedClustersdelegiert wird.- Wenn eine Netzwerksicherheitsgruppe (Network Security Group, NSG) an Subnetze angefügt ist, stellen Sie sicher, dass die Regeln den folgenden Datenverkehr zulassen zwischen den Knoten und dem API-Server, dem Azure Load Balancer und dem API-Server und der Pod-zu-Pod-Kommunikation.
- Wenn eine Azure Firewall oder eine andere ausgehende Einschränkungsmethode oder Appliance vorhanden ist, stellen Sie sicher, dass die angeforderten ausgehenden Netzwerkregeln und FQDNs zulässig sind.
- AKS Automatic wird Azure Policy auf Ihrem AKS-Cluster aktivieren, Sie sollten jedoch den
Microsoft.PolicyInsights-Ressourcenanbieter in Ihrem Abonnement vorab registrieren, um eine reibungslosere Erfahrung zu erzielen. Weitere Informationen finden Sie unter Azure-Ressourcenanbieter und -typen.
Einschränkungen
- Der Systemknotenpool von AKS-Automatik-Clustern erfordert eine Bereitstellung in Azure-Regionen, die mindestens drei Verfügbarkeitszonen, ephemere Betriebssystemdatenträger und das Azure Linux-Betriebssystem unterstützen.
- AKS Automatic ist in den folgenden Regionen verfügbar:
australiaeast,austriaeast,belgiumcentral,brazilsouth,canadacentral,centralindia,centralus,chilecentral,denmarkeast,eastasia,eastus,eastus2,francecentral,germanywestcentral,indonesiacentral,israelcentral,italynorth,japaneast,japanwest,koreacentral,malaysiawest,mexicocentral,newzealandnorth,northcentralus,northeurope,norwayeast,polandcentral,southafricanorth,southcentralus,southeastasia,spaincentral,swedencentral,switzerlandnorth,uaenorth,uksouth,westeurope,westus,westus2,westus3. - Der AKS-Automatikknoten hat die Sperrung der Knotenressourcengruppe vorkonfiguriert, was Änderungen an der MC_-Ressourcengruppe nicht erlaubt und Verbindungen von virtuellen Netzwerken zur standardmäßigen privaten DNS-Zone verhindert. Verwenden Sie für Szenarien mit übergreifendem VNet oder benutzerdefiniertem DNS ein benutzerdefiniertes Netzwerk und privates DNS, indem Sie Erstellen Sie einen privaten Azure Kubernetes Service (AKS) Automatik-Cluster in einem benutzerdefinierten virtuellen Netzwerk.
Von Bedeutung
AKS Automatic versucht, basierend auf der im Abonnement verfügbaren Kapazität dynamisch eine Größe eines virtuellen Computers für den system Knotenpool auszuwählen. Stellen Sie sicher, dass Ihr Abonnement über ein Kontingent für 16 vCPUs einer der folgenden Größen in der Region verfügt, in der Sie den Cluster bereitstellen: 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_v6oder Standard_D4alds_v5. Sie können über das Azure-Portal Kontingente für bestimmte VM-Familien einsehen und Anforderungen zur Kontingenterhöhung einreichen.
Wenn Sie weitere Fragen haben, erfahren Sie mehr über die Dokumentation zur Problembehandlung.
Definieren von Variablen
Definieren Sie die folgenden Variablen, die in den nachfolgenden Schritten verwendet werden.
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)
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure Ressourcen bereitgestellt und verwaltet werden.
Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe.
az group create -n ${RG_NAME} -l ${LOCATION}
Die folgende Beispielausgabe ähnelt der Ausgabe bei der erfolgreichen Erstellung der Ressourcengruppe:
{
"id": "/subscriptions/<guid>/resourceGroups/automatic-rg",
"location": "eastus",
"managedBy": null,
"name": "automatic-rg",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Erstellen eines virtuellen Netzwerks
Erstellen Sie ein virtuelles Netzwerk mit dem Befehl az network vnet create. Erstellen Sie mithilfe des az network vnet subnet create Befehls ein API-Server-Subnetz und ein Cluster-Subnetz.
Wenn Sie ein benutzerdefiniertes virtuelles Netzwerk mit AKS Automatic verwenden, müssen Sie ein API-Server-Subnetz erstellen und delegieren, um es Microsoft.ContainerService/managedClusters zuzuweisen, was dem AKS-Dienst Berechtigungen zum Einfügen der API-Server-Pods und des internen Lastenausgleichs in dieses Subnetz gewährt. Sie können das Subnetz nicht für andere Workloads, jedoch für mehrere AKS-Cluster im selben virtuellen Netzwerk verwenden. Die kleinste unterstützte API-Serversubnetzgröße ist /28.
Warnung
Ein AKS-Cluster reserviert mindestens 9 IP-Adressen im Subnetzadressraum. Eine unzureichende Anzahl von IP-Adressen kann die Skalierung von API-Servern verhindern, sodass ggf. nicht genügend API-Server vorhanden sind.
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
Netzwerksicherheitsgruppen-Regeln
Der gesamte Datenverkehr innerhalb des virtuellen Netzwerks ist standardmäßig zulässig. Wenn Sie jedoch Regeln für die Netzwerksicherheitsgruppe (Network Security Group, NSG) zum Einschränken des Datenverkehrs zwischen verschiedenen Subnetzen hinzugefügt haben, stellen Sie sicher, dass die NSG-Sicherheitsregeln die folgenden Kommunikationstypen zulassen:
| Bestimmungsort | Quelle | Protokoll | Hafen | Verwendung |
|---|---|---|---|---|
| APIServer-Subnetz-CIDR | Cluster-Subnetz | TCP | 443 und 4443 | Erforderlich, um die Kommunikation zwischen Knoten und dem API-Server zu aktivieren. |
| APIServer-Subnetz-CIDR | Azure Load Balancer | TCP | 9988 | Erforderlich, um die Kommunikation zwischen Azure Load Balancer und dem API-Server zu aktivieren. Sie können auch die gesamte Kommunikation zwischen dem Azure Load Balancer und dem API Server Subnet CIDR aktivieren. |
| Knoten-CIDR | Knoten-CIDR | Alle Protokolle | Alle Ports | Erforderlich, um die Kommunikation zwischen Knoten zu aktivieren. |
| Knoten-CIDR | Pod-CIDR | Alle Protokolle | Alle Ports | Erforderlich für das Dienstdatenverkehrsrouting. |
| Pod-CIDR | Pod-CIDR | Alle Protokolle | Alle Ports | Erforderlich für Pod-zu-Pod- und Pod-zu-Dienst-Datenverkehr, einschließlich DNS. |
Erstellen einer verwalteten Identität und Erteilen von Berechtigungen im virtuellen Netzwerk
Erstellen Sie mithilfe des az identity create Befehls eine verwaltete Identität, und rufen Sie die Principal-ID ab. Weisen Sie die Rolle "Netzwerkmitwirkender" im virtuellen Netzwerk mithilfe des az role assignment create Befehls der verwalteten Identität zu.
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}
Erstellen eines privaten AKS Automatic Cluster in einem benutzerdefinierten virtuellen Netzwerk
Verwenden Sie zum Erstellen eines privaten AKS Automatic Cluster den Befehl "az aks create ". Beachten Sie die Verwendung der --enable-private-cluster Kennzeichnung.
Hinweis
Sie können in der Dokumentation zum privaten Cluster weitere Optionen konfigurieren, z. B. das Deaktivieren des öffentlichen FQDN des Clusters und das Konfigurieren der privaten 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
Nach wenigen Minuten ist die Ausführung des Befehls abgeschlossen, und es werden Informationen zum Cluster im JSON-Format zurückgegeben.
Herstellen einer Verbindung mit dem Cluster
Wenn ein automatischer AKS-Cluster als privater Cluster erstellt wird, hat der API-Serverendpunkt keine öffentliche IP-Adresse. Um den API-Server zu verwalten, z. B. über kubectl, müssen Sie eine Verbindung über einen Computer herstellen, der Zugriff auf das Azure virtuelle Netzwerk des Clusters hat. Es gibt mehrere Optionen zum Einrichten der Netzwerkkonnektivität mit dem privaten Cluster:
- Erstellen Sie einen virtuellen Computer im selben virtuellen Netzwerk wie der automatische AKS-Cluster mithilfe des
az vm createBefehls mit der--vnet-nameKennzeichnung. - Verwenden Sie einen virtuellen Computer in einem separaten virtuellen Netzwerk, und richten Sie peering für virtuelle Netzwerke ein.
- Verwenden Sie eine ExpressRoute- oder VPN-Verbindung.
- Verwenden Sie eine private Endpunktverbindung .
Das Erstellen eines virtuellen Computers im selben virtuellen Netzwerk wie der AKS-Cluster ist die einfachste Option. ExpressRoute und VPNs fügen Kosten hinzu und erfordern zusätzliche Netzwerkkomplexität. Beim Peering virtueller Netzwerke müssen Sie Ihre Netzwerk-CIDR-Bereiche planen, um sicherzustellen, dass es keine überlappenden Bereiche gibt. Weitere Informationen finden Sie unter "Optionen für das Herstellen einer Verbindung mit dem privaten Cluster ".
Um einen Kubernetes-Cluster zu verwalten, verwenden Sie den Kubernetes-Befehlszeilenclient kubectl.
kubectl ist bereits installiert, wenn Sie Azure Cloud Shell verwenden. Führen Sie für die lokale Installation von kubectl den Befehl az aks install-cli aus. AKS Automatic-Cluster sind mit Microsoft Entra ID für Kubernetes rollenbasierte Zugriffskontrolle (RBAC) konfiguriert.
Wenn Sie einen Cluster mithilfe des Azure CLI erstellen, werden Ihrem Benutzer integrierte Rollen zugewiesen für Azure Kubernetes Service RBAC Cluster Admin.
Mit dem Befehl kubectl können Sie für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.
az aks get-credentials --resource-group ${RG_NAME} --name ${CLUSTER_NAME}
Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.
kubectl get nodes
Die folgende Beispielausgabe zeigt, wie Sie aufgefordert werden, sich anzumelden.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Nachdem Sie sich angemeldet haben, zeigt die folgende Beispielausgabe die verwalteten Systemknotenpools an. Stellen Sie sicher, dass der Knotenstatus Bereit lautet.
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
Erstellen eines virtuellen Netzwerks
Diese Bicep Datei definiert ein virtuelles Netzwerk.
@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)
Speichern Sie die Bicep Datei virtualNetwork.bicep auf Ihren lokalen Computer.
Von Bedeutung
Die Datei Bicep legt den vnetName Parameter auf aksAutomaticVnet, den addressPrefix Parameter auf 172.19.0.0/16 fest, den apiServerSubnetPrefix Parameter auf 172.19.0.0/28 und den apiServerSubnetPrefix Parameter auf 172.19.1.0/24. Wenn Sie unterschiedliche Werte verwenden möchten, müssen Sie die Zeichenfolgen auf Ihre bevorzugten Werte aktualisieren.
Stellen Sie die Bicep Datei mithilfe des Azure CLI bereit.
az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep
Der gesamte Datenverkehr innerhalb des virtuellen Netzwerks ist standardmäßig zulässig. Wenn Sie jedoch Regeln für die Netzwerksicherheitsgruppe (Network Security Group, NSG) zum Einschränken des Datenverkehrs zwischen verschiedenen Subnetzen hinzugefügt haben, stellen Sie sicher, dass die NSG-Sicherheitsregeln die folgenden Kommunikationstypen zulassen:
| Bestimmungsort | Quelle | Protokoll | Hafen | Verwendung |
|---|---|---|---|---|
| APIServer-Subnetz-CIDR | Cluster-Subnetz | TCP | 443 und 4443 | Erforderlich, um die Kommunikation zwischen Knoten und dem API-Server zu aktivieren. |
| APIServer-Subnetz-CIDR | Azure Load Balancer | TCP | 9988 | Erforderlich, um die Kommunikation zwischen Azure Load Balancer und dem API-Server zu aktivieren. Sie können auch die gesamte Kommunikation zwischen dem Azure Load Balancer und dem API Server Subnet CIDR aktivieren. |
Erstellen einer verwalteten Identität
Diese Bicep Datei definiert eine vom Benutzer zugewiesene verwaltete Identität.
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
Speichern Sie die Bicep Datei uami.bicep auf Ihren lokalen Computer.
Von Bedeutung
Die Bicep-Datei legt den uamiName Parameter auf das aksAutomaticUAMI fest. Wenn Sie einen anderen Identitätsnamen verwenden möchten, müssen Sie die Zeichenfolge auf Ihren bevorzugten Namen aktualisieren.
Stellen Sie die Bicep Datei mithilfe des Azure CLI bereit.
az deployment group create --resource-group <resource-group> --template-file uami.bicep
Zuweisen der Rolle „Netzwerkmitwirkender“ für das virtuelle Netzwerk
Diese Bicep Datei definiert Rollenzuweisungen über das virtuelle Netzwerk.
@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
}
}
Speichern Sie die Bicep Datei roleAssignments.bicep auf Ihren lokalen Computer.
Von Bedeutung
Die datei Bicep legt den vnetName param auf aksAutomaticVnet fest. Wenn Sie einen anderen Namen für das virtuelle Netzwerk verwendet haben, müssen Sie diesen auf Ihren bevorzugten Netzwerknamen aktualisieren.
Stellen Sie die Bicep Datei mithilfe des Azure CLI bereit. Sie müssen die Prinzipal-ID der benutzerseitig zugewiesenen Identität angeben.
az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Erstellen eines privaten AKS Automatic Cluster in einem benutzerdefinierten virtuellen Netzwerk
Diese Bicep Datei definiert den automatischen AKS-Cluster.
Hinweis
Sie können in der Dokumentation zu privaten Clustern weitere Optionen konfigurieren, z. B. das Deaktivieren des öffentlichen Cluster-FQDN und das Konfigurieren der privaten 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}': {}
}
}
}
Speichern Sie die Bicep Datei aks.bicep auf Ihren lokalen Computer.
Von Bedeutung
Die Bicep Datei legt den clusterName Param auf aksAutomaticCluster fest. Wenn Sie einen anderen Clusternamen verwenden möchten, müssen Sie die Zeichenfolge auf Ihren bevorzugten Clusternamen aktualisieren.
Stellen Sie die Bicep Datei mithilfe des Azure CLI bereit. Sie müssen die API-Server-Subnetzressourcen-ID, die Cluster-Subnetzressourcen-ID und die vom Benutzer zugewiesene Identitätsprinzipal-ID angeben.
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>
Herstellen einer Verbindung mit dem Cluster
Wenn ein automatischer AKS-Cluster als privater Cluster erstellt wird, hat der API-Serverendpunkt keine öffentliche IP-Adresse. Um den API-Server zu verwalten, z. B. über kubectl, müssen Sie eine Verbindung über einen Computer herstellen, der Zugriff auf das Azure virtuelle Netzwerk des Clusters hat. Es gibt mehrere Optionen zum Einrichten der Netzwerkkonnektivität mit dem privaten Cluster:
- Erstellen Sie einen virtuellen Computer im selben virtuellen Netzwerk wie der automatische AKS-Cluster mithilfe des
az vm createBefehls mit der--vnet-nameKennzeichnung. - Verwenden Sie einen virtuellen Computer in einem separaten virtuellen Netzwerk, und richten Sie peering für virtuelle Netzwerke ein.
- Verwenden Sie eine ExpressRoute- oder VPN-Verbindung.
- Verwenden Sie eine private Endpunktverbindung .
Das Erstellen eines virtuellen Computers im selben virtuellen Netzwerk wie der AKS-Cluster ist die einfachste Option. ExpressRoute und VPNs (virtuelle private Netzwerke) erhöhen die Kosten und erfordern zusätzliche Netzwerkkomplexität. Beim Peering virtueller Netzwerke müssen Sie Ihre Netzwerk-CIDR-Bereiche planen, um sicherzustellen, dass es keine überlappenden Bereiche gibt. Weitere Informationen finden Sie unter "Optionen für das Herstellen einer Verbindung mit dem privaten Cluster ".
Um einen Kubernetes-Cluster zu verwalten, verwenden Sie den Kubernetes-Befehlszeilenclient kubectl.
kubectl ist bereits installiert, wenn Sie Azure Cloud Shell verwenden. Führen Sie für die lokale Installation von kubectl den Befehl az aks install-cli aus. AKS Automatic-Cluster sind mit Microsoft Entra ID für Kubernetes rollenbasierte Zugriffskontrolle (RBAC) konfiguriert.
Von Bedeutung
Wenn Sie einen Cluster mit Bicep erstellen, müssen Sie eine der integrierten Rollen zuweisen wie Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin oder Azure Kubernetes Service RBAC Cluster Admin für Ihre Benutzer, die auf den Cluster oder einen bestimmten Namespace ausgerichtet sind, z. B. mithilfe von az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Stellen Sie außerdem sicher, dass Ihre Benutzer die eingebaute Rolle Azure Kubernetes Service Cluster User haben, um az aks get-credentials ausführen zu können. Verwenden Sie dann den Befehl az aks get-credentials, um die Kubeconfig Ihres AKS-Clusters abzurufen.
Mit dem Befehl kubectl können Sie für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.
kubectl get nodes
Die folgende Beispielausgabe zeigt, wie Sie aufgefordert werden, sich anzumelden.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Nachdem Sie sich angemeldet haben, zeigt die folgende Beispielausgabe die verwalteten Systemknotenpools an. Stellen Sie sicher, dass der Knotenstatus Bereit lautet.
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
Stellen Sie die Anwendung bereit
Zum Bereitstellen der Anwendung verwenden Sie eine Manifestdatei, um alle Objekte zu erstellen, die zum Ausführen der AKS Store-Anwendung erforderlich sind. Eine Kubernetes-Manifestdatei definiert den gewünschten Zustand (Desired State) eines Clusters – also beispielsweise, welche Containerimages ausgeführt werden sollen. Das Manifest umfasst die folgenden Kubernetes-Bereitstellungen und -Dienste:
- Store Front: Webanwendung für Kund*innen zum Anzeigen von Produkten und Aufgeben von Bestellungen
- Produktservice: Zeigt Produktinformationen an.
- Bestellservice: Bestellungen aufgeben.
- Rabbit MQ: Nachrichtenwarteschlange für eine Auftragswarteschlange.
Hinweis
Zustandsbehaftete Container wie Rabbit MQ sollten nicht ohne persistenten Speicher in einer Produktionsumgebung ausgeführt werden. Diese Container werden hier zur Einfachheit verwendet, es wird jedoch empfohlen, verwaltete Dienste wie Azure Cosmos DB oder Azure Service Bus zu verwenden.
Erstellen Sie einen Namespace
aks-store-demo, in dem die Kubernetes-Ressourcen bereitgestellt werden.kubectl create ns aks-store-demoStellen Sie die Anwendung mit dem Befehl kubectl apply im Namespace
aks-store-demobereit. Die YAML-Datei, die die Bereitstellung definiert, befindet sich auf GitHub.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yamlDie folgende Beispielausgabe zeigt die Bereitstellungen und Dienste:
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
Testen der Anwendung
Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Dienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Minuten dauern.
Sehen Sie sich den Status der bereitgestellten Pods mithilfe des Befehls kubectl get pods an. Stellen Sie sicher, dass alle Pods den Status
Runninghaben, bevor Sie fortfahren. Wenn dies die erste Workload ist, die Sie bereitstellen, kann es einige Minuten dauern, bis die automatische Knotenbereitstellung einen Knotenpool erstellt und die Pods ausführt.kubectl get pods -n aks-store-demoSuchen Sie nach einer öffentlichen IP-Adresse für die Storefront-Anwendung. Verwenden Sie zum Überwachen des Fortschritts den Befehl kubectl get service mit dem Argument
--watch:kubectl get ingress store-front -n aks-store-demo --watchDie Ausgabe von ADDRESS für den
store-front-Dienst ist anfangs leer:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mSobald ADDRESS von einem leeren in eine tatsächliche öffentliche IP-Adresse geändert wird, verwenden Sie
CTRL-C, um denkubectl-Beobachtungsprozess zu beenden.Die folgende Beispielausgabe zeigt eine gültige öffentliche IP-Adresse, die dem Dienst zugewiesen ist:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mÖffnen Sie einen Webbrowser mit der externen IP-Adresse Ihres Eingangs, um die Azure Store-App in Aktion zu sehen.
Löschen des Clusters
Wenn Sie nicht planen, das Lernprogramm AKS zu durchlaufen, bereinigen Sie unnötige Ressourcen, um Azure Gebühren zu vermeiden. Führen Sie den Befehl az group delete aus, um die Ressourcengruppe, den Containerdienst und alle dazugehörigen Ressourcen zu entfernen.
az group delete --name <resource-group> --yes --no-wait
Hinweis
Der AKS-Cluster wurde mit einer vom Benutzer zugewiesenen verwalteten Identität erstellt. Wenn Sie diese Identität nicht mehr benötigen, können Sie sie manuell entfernen.
Nächste Schritte
In dieser Schnellstartanleitung haben Sie einen privaten Kubernetes-Cluster mit AKS Automatic in einem benutzerdefinierten virtuellen Netzwerk bereitgestellt und anschließend eine einfache Multicontaineranwendung dafür bereitgestellt. Diese Beispielanwendung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für Kubernetes-Anwendungen dar. Anleitungen zum Erstellen vollständiger Lösungen mit AKS für die Produktion finden Sie unter AKS-Lösungsleitfaden.
Weitere Informationen zu AKS Automatic finden Sie in der Einführung.