Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic poskytuje nejsnadnější spravované prostředí Kubernetes pro vývojáře, techniky DevOps a techniky platformy. Ideální pro moderní aplikace a aplikace AI, AKS Automatic automatizuje nastavení a operace clusteru AKS a vkládá osvědčené postupy konfigurace. Uživatelé jakékoli úrovně dovedností můžou těžit z zabezpečení, výkonu a spolehlivosti AKS Automaticky pro své aplikace. AKS Automatic také zahrnuje SLA o připravenosti podů, která zaručuje dokončení 99,9 % operací připravenosti podů do 5 minut, zajišťuje spolehlivou a samoopravitelnou infrastrukturu pro vaše aplikace. Tento rychlý start předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro Službu Azure Kubernetes Service (AKS).
V tomto rychlém startu se naučíte:
- Vytvořte virtuální síť.
- Vytvořte spravovanou identitu s oprávněními pro virtuální síť.
- Nasazení automatického clusteru AKS ve virtuální síti
- Spusťte ukázkovou vícekontenerovou aplikaci se skupinou mikroslužeb a webových front-endů simulujících scénář maloobchodního prodeje.
Pokud účet Azure nemáte, vytvořte si bezplatný účet.
Požadavky
- Tento článek vyžaduje verzi 2.77.0 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je tam už nainstalovaná nejnovější verze. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.
- Identita clusteru
Network Contributors předdefinovaným přiřazením role na podsíti serveru API. - Identita clusteru s
Network Contributorpředdefinovaným přiřazením role ve virtuální síti pro podporu automatického zřizování uzlů - Identita uživatele, která přistupuje ke clusteru pomocí
Azure Kubernetes Service Cluster User RoleaAzure Kubernetes Service RBAC Writer. - Virtuální síť s vyhrazenou podsítí serveru API s minimálně
*/28velikostí delegovanou naMicrosoft.ContainerService/managedClusters.- Pokud je k podsítím připojená skupina zabezpečení sítě (NSG), ujistěte se, že pravidla zabezpečení NSG povolují požadované typy komunikace mezi komponentami clusteru. Podrobné požadavky najdete v tématu Požadavky na vlastní virtuální síť.
- Pokud je k dispozici azure Firewall nebo jiná metoda omezení odchozích přenosů nebo zařízení, ujistěte se, že jsou povolená požadovaná pravidla odchozí sítě a plně kvalifikované názvy domén .
- AKS Automatic povolí Azure Policy ve vašem clusteru AKS, ale pro zajištění plynulejšího prostředí byste měli poskytovatele prostředků předem zaregistrovat ve svém předplatném. Další informace najdete v tématu Poskytovatelé a typy prostředků Azure .
Omezení
- Fond uzlů systému AKS automatického clusteru vyžaduje nasazení v oblastech Azure, které podporují alespoň tři zóny dostupnosti, dočasný disk s operačním systémem a operační systém Azure Linux.
- Automatické clustery AKS můžete vytvořit pouze v oblastech, kde je obecně dostupná integrace virtuální sítě s rozhraním API Server .
Důležité
Funkce AKS Automatic se pokusí dynamicky vybrat velikost virtuálního počítače pro fond uzlů system na základě kapacity dostupné v rámci předplatného. Ujistěte se, že vaše předplatné má kvótu pro 16 virtuálních procesorů libovolné z následujících velikostí v oblasti, do které cluster nasazujete: 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 nebo Standard_D4alds_v5.
Kvóty pro konkrétní rodiny virtuálních počítačů můžete zobrazit a odeslat žádosti o navýšení kvóty prostřednictvím webu Azure Portal.
Pokud máte další otázky, přečtěte si další informace v dokumentaci k řešení potíží.
Definování proměnných
Definujte následující proměnné, které se použijí v následujících krocích.
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)
Vytvoření skupiny zdrojů
Skupina prostředků Azure je logická skupina, ve které se nasazují a spravují prostředky Azure.
Vytvořte skupinu prostředků pomocí příkazu az group create .
az group create -n ${RG_NAME} -l ${LOCATION}
Následující ukázkový výstup se podobá úspěšnému vytvoření skupiny prostředků:
{
"id": "/subscriptions/<guid>/resourceGroups/automatic-rg",
"location": "eastus",
"managedBy": null,
"name": "automatic-rg",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Vytvoření virtuální sítě
Vytvořte virtuální síť pomocí az network vnet create příkazu. Pomocí příkazu vytvořte podsíť serveru API a podsíť clusteru az network vnet subnet create .
Pokud používáte vlastní virtuální síť s AKS Automatic, musíte vytvořit a delegovat podsíť serveru API , která Microsoft.ContainerService/managedClustersuděluje službě AKS oprávnění k vložení podů serveru API a interního nástroje pro vyrovnávání zatížení do této podsítě. Podsíť nemůžete použít pro žádné jiné úlohy, ale můžete ji použít pro více clusterů AKS umístěných ve stejné virtuální síti. Minimální podporovaná velikost podsítě serveru API je /28.
Výstraha
Cluster AKS si v adresní prostoru podsítě vyhrazuje alespoň 9 IP adres. Nedostatek IP adres může bránit škálování API serveru a způsobit jeho výpadek.
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
Požadavky na skupinu zabezpečení sítě
Pokud jste přidali pravidla skupiny zabezpečení sítě (NSG), která omezují provoz mezi různými podsítěmi ve vaší vlastní virtuální síti, ujistěte se, že pravidla zabezpečení NSG povolují požadované typy komunikace mezi komponentami clusteru.
Podrobné požadavky na skupiny zabezpečení sítě (NSG) při používání vlastních virtuálních sítí s clustery AKS naleznete v části Požadavky na vlastní virtuální síť.
Vytvoření spravované identity a udělení oprávnění k virtuální síti
Vytvořte spravovanou identitu pomocí az identity create příkazu a načtěte ID objektu zabezpečení. Pomocí příkazu přiřaďte roli Přispěvatel sítě ve virtuální síti spravované identitě 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}
Vytvoření automatického clusteru AKS ve vlastní virtuální síti
Pokud chcete vytvořit automatický cluster AKS, použijte příkaz az aks create .
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 \
--no-ssh-key
Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON.
Připojení ke clusteru
Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl.
kubectl už je nainstalovaný, pokud používáte Azure Cloud Shell. Pokud chcete nainstalovat kubectl místně, spusťte příkaz az aks install-cli . Automatické clustery AKS jsou nakonfigurované s ID Microsoft Entra pro řízení přístupu na základě role Kubernetes (RBAC).
Když vytvoříte cluster pomocí Azure CLI, přiřadí se uživateli předdefinované role.Azure Kubernetes Service RBAC Cluster Admin
Nakonfigurujte kubectl připojení ke clusteru Kubernetes pomocí příkazu az aks get-credentials . Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.
az aks get-credentials --resource-group ${RG_NAME} --name ${CLUSTER_NAME}
Pomocí příkazu kubectl get ověřte připojení ke clusteru. Tento příkaz vrátí seznam uzlů clusteru.
kubectl get nodes
Následující ukázkový výstup ukazuje, jak se zobrazí výzva k přihlášení.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Po přihlášení se zobrazí následující ukázkový výstup poolů spravovaných uzlů systému. Ujistěte se, že je stav uzlu Připravený.
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
Vytvoření virtuální sítě
Tento soubor Bicep definuje virtuální síť.
@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)
Uložte soubor Bicep virtualNetwork.bicep do místního počítače.
Důležité
Soubor Bicep nastaví parametr vnetName na aksAutomaticVnet, parametr addressPrefix na 172.19.0.0/16, parametr apiServerSubnetPrefix na 172.19.0.0/28 a parametr apiServerSubnetPrefix na 172.19.1.0/24. Pokud chcete použít jiné hodnoty, nezapomeňte aktualizovat řetězce na preferované hodnoty.
Nasaďte soubor Bicep pomocí Azure CLI.
az deployment group create --resource-group <resource-group> --template-file virtualNetwork.bicep
Ve výchozím nastavení je povolený veškerý provoz ve virtuální síti. Pokud jste přidali pravidla skupiny zabezpečení sítě (NSG), která omezují provoz mezi různými podsítěmi ve vaší vlastní virtuální síti, ujistěte se, že pravidla zabezpečení NSG povolují požadované typy komunikace mezi komponentami clusteru.
Podrobné požadavky na skupiny zabezpečení sítě (NSG) při používání vlastních virtuálních sítí s clustery AKS naleznete v části Požadavky na vlastní virtuální síť.
Vytvoření spravované identity
Tento soubor Bicep definuje uživatelem přiřazenou spravovanou identitu.
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
Uložte soubor Bicep uami.bicep do místního počítače.
Důležité
Soubor Bicep nastaví uamiName parametr na aksAutomaticUAMI. Pokud chcete použít jiný název identity, nezapomeňte řetězec aktualizovat na preferovaný název.
Nasaďte soubor Bicep pomocí Azure CLI.
az deployment group create --resource-group <resource-group> --template-file uami.bicep
Přiřaďte roli Přispěvatele sítě ke virtuální síti.
Tento soubor Bicep definuje přiřazení rolí ve virtuální síti.
@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
}
}
Uložte soubor roleAssignments.bicep do místního počítače.
Důležité
Soubor Bicep nastaví parametr vnetName na aksAutomaticVnet. Pokud jste použili jiný název virtuální sítě, nezapomeňte řetězec aktualizovat na upřednostňovaný název virtuální sítě.
Nasaďte soubor Bicep pomocí Azure CLI. Musíte poskytnout ID hlavní identity přiřazené uživateli.
az deployment group create --resource-group <resource-group> --template-file roleAssignments.bicep \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Vytvoření automatického clusteru AKS ve vlastní virtuální síti
Tento soubor Bicep definuje automatizovaný cluster AKS.
@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 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
}
networkProfile: {
outboundType: 'loadBalancer'
}
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${uamiId}': {}
}
}
}
Uložte soubor Bicep aks.bicep do místního počítače.
Důležité
Soubor Bicep nastaví clusterName parametr na hodnotu aksAutomaticCluster. Pokud chcete jiný název clusteru, nezapomeňte řetězec aktualizovat na upřednostňovaný název clusteru.
Nasaďte soubor Bicep pomocí Azure CLI. Musíte zadat ID prostředku podsítě serveru API, ID prostředku podsítě clusteru a ID prostředku spravované identity přiřazené uživatelem.
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 uamiId=<user assigned identity id>
Připojení ke clusteru
Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl.
kubectl už je nainstalovaný, pokud používáte Azure Cloud Shell. Pokud chcete nainstalovat kubectl místně, spusťte příkaz az aks install-cli . Automatické clustery AKS jsou nakonfigurované s ID Microsoft Entra pro řízení přístupu na základě role Kubernetes (RBAC).
Důležité
Při vytváření clusteru pomocí Bicep musíte přiřadit jednu z předdefinovaných rolí, jako je Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin nebo Azure Kubernetes Service RBAC Cluster Admin vašim uživatelům, s přístupem vymezeným na cluster nebo konkrétní obor názvů, například pomocí az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Také se ujistěte, že vaši uživatelé mají Azure Kubernetes Service Cluster User integrovanou roli, aby mohli spustit az aks get-credentials, a poté pomocí příkazu az aks get-credentials získejte kubeconfig svého AKS clusteru.
Nakonfigurujte kubectl připojení ke clusteru Kubernetes pomocí příkazu az aks get-credentials . Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Pomocí příkazu kubectl get ověřte připojení ke clusteru. Tento příkaz vrátí seznam uzlů clusteru.
kubectl get nodes
Následující ukázkový výstup ukazuje, jak se zobrazí výzva k přihlášení.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
Po přihlášení se zobrazí následující ukázkový výstup poolů spravovaných uzlů systému. Ujistěte se, že je stav uzlu Připravený.
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
Nasazení aplikace
K nasazení aplikace použijete soubor manifestu k vytvoření všech objektů potřebných ke spuštění aplikace AKS Store. Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit. Manifest zahrnuje následující nasazení a služby Kubernetes:
- Store front: Webová aplikace pro zákazníky k zobrazení produktů a objednávání.
- Produktová služba: Zobrazuje informace o produktu.
- Služba pro objednávání: Realizuje objednávky.
- Rabbit MQ: Fronta zpráv pro objednávkovou frontu.
Poznámka:
Nedoporučujeme spouštět stavové kontejnery, jako je Rabbit MQ, bez trvalého úložiště pro produkční prostředí. Tyto kontejnery se zde používají pro zjednodušení, ale doporučujeme používat spravované služby, jako je Azure Cosmos DB nebo Azure Service Bus.
Vytvořte obor názvů
aks-store-demo, kam budou nasazeny prostředky Kubernetes.kubectl create ns aks-store-demoNasaďte aplikaci pomocí příkazu kubectl apply do
aks-store-demonamespace. Soubor YAML definující nasazení je na GitHubu.kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yamlNásledující ukázkový výstup ukazuje nasazení a služby:
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
Otestování aplikace
Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.
Pomocí příkazu kubectl get pods zkontrolujte stav nasazených podů. Ujistěte se, že jsou všechny pody
Running, než budete pokračovat. Pokud se jedná o první úlohu, kterou nasadíte, může trvat několik minut, než automatické zřizování uzlu vytvoří fond uzlů pro spuštění podů.kubectl get pods -n aks-store-demoZkontrolujte veřejnou IP adresu pro aplikaci store-front. Sledujte průběh pomocí příkazu kubectl get service s argumentem
--watch.kubectl get ingress store-front -n aks-store-demo --watchVýstup ADDRESS pro
store-frontslužbu zpočátku zobrazuje prázdný:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mJakmile se adresa změní z prázdné na skutečnou
CTRL-Cveřejnou IP adresu, použijtekubectlk zastavení procesu sledování.Následující ukázkový výstup ukazuje platnou veřejnou IP adresu přiřazenou službě:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mOtevřete webový prohlížeč na externí IP adresu vašeho vstupního bodu a podívejte se na aplikaci Azure Store v akci.
Odstranění clusteru
Pokud nechcete projít kurzem AKS, vyčistěte nepotřebné prostředky, abyste se vyhnuli poplatkům za Azure. Spuštěním příkazu az group delete odeberte skupinu prostředků, službu kontejneru a všechny související prostředky.
az group delete --name <resource-group> --yes --no-wait
Poznámka:
Cluster AKS byl vytvořen se spravovanou identitou přiřazenou uživatelem. Pokud už tuto identitu nepotřebujete, můžete ji odebrat ručně.
Další kroky
V tomto rychlém startu jste nasadili cluster Kubernetes pomocí služby AKS Automatic v rámci vlastní virtuální sítě a pak jste do ní nasadili jednoduchou vícekontenerovou aplikaci. Tato ukázková aplikace slouží jenom pro ukázkové účely a nepředstavuje všechny osvědčené postupy pro aplikace Kubernetes. Pokyny k vytváření úplných řešení pomocí AKS pro produkční prostředí najdete v pokynech k řešení AKS.
Další informace o službě AKS Automatic najdete v úvodu.