Hızlı Başlangıç: Özel bir sanal ağda Azure Kubernetes Service (AKS) Otomatik kümesi oluşturma

Şunlar için geçerlidir: ✔️ AKS Otomatik

Azure Kubernetes Service (AKS) Automatic geliştiriciler, DevOps mühendisleri ve platform mühendisleri için en kolay yönetilen Kubernetes deneyimini sağlar. Modern ve yapay zeka uygulamaları için ideal olan AKS Otomatik, AKS kümesi kurulumunu ve işlemlerini otomatikleştirir ve en iyi uygulama yapılandırmalarını ekler. Herhangi bir beceri düzeyindeki kullanıcılar, AKS Otomatik'in uygulamaları için güvenlik, performans ve güvenilirlikten yararlanabilir. AKS Otomatik ayrıca, 5 dakika içinde tamamlanacağı garanti edilen uygun pod hazır olma işlemlerinin %99,9’unu garanti eden bir pod hazırlık SLA'sı içerir ve bu da uygulamalarınız için güvenilir, kendi kendini iyileştiren bir altyapı sağlar. Bu hızlı başlangıç, Kubernetes kavramlarının temel olarak bilindiğini varsayar. Daha fazla bilgi için Azure Kubernetes Service (AKS) için Kubernetes temel kavramları sayfasına bakınız.

Bu hızlı başlangıçta şunları öğreneceksiniz:

  • Sanal ağ oluşturma.
  • Sanal ağ üzerinde izinleri olan bir yönetilen kimlik oluşturun.
  • Sanal ağda bir AKS Otomatik kümesi dağıtın.
  • Bir grup mikro hizmet ve web ön uçlarıyla perakende senaryosunu simüle eden örnek bir çoklu kapsayıcı uygulama çalıştırın.

Azure hesabınız yoksa free hesabı oluşturun.

Önkoşullar

  • Azure CLI sürüm 2.86.0 veya üzeri. Sürümü bulmak için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.
  • Yerleşik rol ataması ile API sunucusu ağında küme kimliği Network Contributor.
  • Sanal ağda Network Contributor yerleşik rol atamasına sahip küme kimliği, Node Autoprovisioning'i destekler.
  • Azure Kubernetes Service Cluster User Role ve Azure Kubernetes Service RBAC Writer ile kümeye erişen kullanıcı kimliği.
  • En az */28 boyutunda, Microsoft.ContainerService/managedClusters'ye ayrılmış API sunucusu alt ağı içeren bir sanal ağ.
    • Alt ağlara bağlı bir Ağ Güvenlik Grubu (NSG) varsa, NSG güvenlik kurallarının küme bileşenleri arasında gerekli iletişim türlerine izin verdiğinden emin olun. Ayrıntılı gereksinimler için bkz. Özel sanal ağ gereksinimleri.
    • Azure Güvenlik Duvarı veya başka bir giden kısıtlama yöntemi veya cihazı varsa, gerekli giden ağ kuralları ve FQDN'lerin izin verildiğinden emin olun.
  • AKS Otomatik, AKS kümenizde Azure İlkesi'yi etkinleştirecek, ancak daha sorunsuz bir deneyim için aboneliğinizde kaynak sağlayıcıyı önceden kaydetmeniz gerekir. Daha fazla bilgi için bkz. Azure kaynak sağlayıcıları ve türleri.
  • kullanarak az extension remove -n aks-previewAKS-preview uzantısını kaldırın.

Önemli

AKS 1.36’dan itibaren, yeni AKS Otomatik kümeleri, upstream Ingress NGINX retirement nedeniyle, varsayılan olarak uygulama yönlendirme eklentisi aracılığıyla Kubernetes Gateway API’sini, uygulama yönlendirme eklentisiyle Yönetilen NGINX girişi yerine etkinleştirecektir.

Mevcut Otomatik kümeler etkilenmez ancak uygulama yönlendirme eklentisi aracılığıyla Kubernetes Gateway API'sine geçişe başlamalıdır.

Sınırlamalar

AKS Otomatik kümeleri için aşağıdaki sınırlamalar geçerlidir:

  • AKS Automatic şu bölgelerde genel kullanıma sunulmuştur: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
    • Yeni AKS Otomatik kümeleri varsayılan olarak yönetilen sistem düğümü havuzlarını ve LocalDNS'yi etkinleştirir. Hiçbir bölgede yönetilen sistem düğümü havuzları olmadan AKS Otomatik kümeleri oluşturamazsınız.
  • AKS Otomatik kümesinde node kaynak grubu kilitleme önceden yapılandırılmıştır; bu da MC_ kaynak grubunda değişikliklere izin vermez ve varsayılan Özel DNS bölgesinde sanal ağ bağlantılarını engeller. Sanal ağlar arası veya özel DNS senaryoları için Özel bir sanal ağda özel Azure Kubernetes Service (AKS) Otomatik kümesi oluştur izleyerek özel ağ ve özel DNS kullanın.
  • Azure CLI sürüm 2.86.0 veya üzeri gereklidir. Sürümü bulmak için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.
  • Aşağıdaki uzantılar desteklenmez:
  • Windows düğümleri desteklenmez.
  • AKS için Istio tabanlı hizmet ağı eklentisi desteklenmez.
  • AKS temel SKU'su ile Otomatik SKU arasında geçiş desteklenmez.
  • Yönetilen sistem düğümü havuzları olmayan AKS Otomatik kümeleri ile yönetilen sistem düğümü havuzlarına sahip AKS Otomatik kümeleri arasındaki geçişler desteklenmez.
  • Prometheus ölçümlerinin ve günlük koleksiyonunun özel kazıma yapılandırması desteklenmez.
  • Otomatik küme oluşturma sırasında ACNS gözlemlenebilirliğini etkinleştirme desteklenmez. Küme oluşturulduktan sonra ACNS gözlemlenebilirliğini etkinleştirebilirsiniz.

Değişkenleri tanımlama

Aşağıdaki adımlarda kullanılan aşağıdaki değişkenleri tanımlayın.

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)

Kaynak grubu oluşturma

Azure kaynak grubu Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir grupdur.

az group create komutunu kullanarak bir kaynak grubu oluşturun .

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

Aşağıdaki örnek çıktı, kaynak grubunun başarıyla oluşturulmasına benzer:

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

Sanal ağ oluşturma

komutunu kullanarak az network vnet create bir sanal ağ oluşturun. komutunu kullanarak az network vnet subnet create bir API sunucusu alt ağı, kullanıcı düğümü alt ağı ve sistem düğümü alt ağı oluşturun.

AKS Otomatik ile özel bir sanal ağ kullanırken bir API sunucusu alt ağı oluşturmanız gerekir. AKS, alt ağı sizin yerinize Microsoft.ContainerService/managedClusters olarak devredecek ve bu sayede AKS hizmeti bu alt ağa API sunucusu podlarını ve iç yük dengeleyiciyi ekleme izni verir. Alt ağı diğer iş yükleri için kullanamazsınız, ancak aynı sanal ağda bulunan birden çok AKS kümesi için kullanabilirsiniz. Desteklenen en düşük API sunucusu alt ağ boyutu /28'dir.

Uyarı

AKS kümesi alt ağ adres alanında en az dokuz (9) IP ayırır. IP adreslerinin bitmesi API sunucusu ölçeklendirmesini engelleyebilir ve API sunucusu kesintisine neden olabilir.

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 userNodeSubnet \
--address-prefixes 172.19.1.0/24

az network vnet subnet create --resource-group ${RG_NAME} \
--vnet-name ${VNET_NAME} \
--name managedSystemNodeSubnet \
--address-prefixes 172.19.0.64/26

Ağ güvenlik grubu gereksinimleri

Özel sanal ağınızdaki farklı alt ağlar arasındaki trafiği kısıtlamak için Ağ Güvenlik Grubu (NSG) kuralları eklediyseniz, NSG güvenlik kurallarının küme bileşenleri arasında gerekli iletişim türlerine izin verin.

AKS kümeleriyle özel sanal ağlar kullanırken ayrıntılı NSG gereksinimleri için bkz. Özel sanal ağ gereksinimleri.

Yönetilen bir kimlik oluşturun ve sanal ağ üzerinde izinler verin

komutunu kullanarak az identity create bir yönetilen kimlik oluşturun ve asıl kimliği alın. Sanal ağdaki Ağ Katkıda Bulunanı rolünü yönetilen kimliğe az role assignment create komutunu kullanarak atayın.

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-object-id "${IDENTITY_PRINCIPAL_ID}" \
--assignee-principal-type ServicePrincipal

Özel bir sanal ağda AKS Otomatik kümesi oluşturma

AKS Otomatik kümesi oluşturmak için az aks create komutunu kullanın.

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" \
--node-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/userNodeSubnet" \
--system-node-subnet-id "/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RG_NAME}/providers/Microsoft.Network/virtualNetworks/${VNET_NAME}/subnets/managedSystemNodeSubnet" 
--assign-identity "/subscriptions/${SUBSCRIPTION_ID}/resourcegroups/${RG_NAME}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${IDENTITY_NAME}" \
--sku automatic \
--no-ssh-key

Birkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür.

Kümeye bağlanma

Kubernetes kümesini yönetmek için kubectl adlı Kubernetes komut satırı istemcisini kullanın. Azure Cloud Shell kullanıyorsanız kubectl zaten yüklüdür. Yerel olarak kubectl yüklemek için az aks install-cli komutunu çalıştırın. AKS otomatik küme yapılandırmaları, Kubernetes rol tabanlı erişim denetimi (RBAC) için Microsoft Entra ID ile yapılandırılır.

Azure CLI kullanarak bir küme oluşturduğunuzda, kullanıcınıza yerleşik roller atanırAzure Kubernetes Service RBAC Cluster Admin.

kubectl'u, az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırın. Bu komut kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanacak şekilde yapılandırmaktadır.

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

kubectl get komutunu kullanarak kümenize bağlantıyı doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.

kubectl get nodes

Aşağıdaki örnek çıktıda oturum açma işleminiz gösterilmektedir.

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

Oturum açtığınızda, aşağıdaki örnek çıktı yönetilen sistem düğümü havuzlarını gösterir. Düğümün durumunun Hazır olduğundan emin olun.

NAME                           STATUS   ROLES    AGE   VERSION
aks-hostedpool-16652789-vms1   Ready    <none>   19m   v1.34.7
aks-hostedpool-16652789-vms2   Ready    <none>   19m   v1.34.7
aks-hostedpool-16652789-vms3   Ready    <none>   19m   v1.34.7
aks-system-surge-zq4d2         Ready    <none>   19m   v1.34.7

Sanal ağ oluşturma

Bu Bicep dosyası bir sanal ağ tanımlar.

@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 user node subnet.')
param userNodeSubnetName string = 'userNodeSubnet'

@description('The subnet prefix of the user node subnet.')
param userNodeSubnetPrefix string = '172.19.1.0/24'

@description('The name of the system node subnet.')
param systemNodeSubnetName string = 'systemNodeSubnet'

@description('The subnet prefix of the system node subnet.')
param systemNodeSubnetPrefix string = '172.19.0.64/26'

// Virtual network with an API server subnet, a user node subnet, and a system node subnet
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-09-01' = {
    name: vnetName
    location: location
    properties: {
        addressSpace: {
            addressPrefixes: [ addressPrefix ]
        }
        subnets: [
            {
                name: apiServerSubnetName
                properties: {
                    addressPrefix: apiServerSubnetPrefix
                }
            }
            {
                name: userNodeSubnetName
                properties: {
                    addressPrefix: userNodeSubnetPrefix
                }
            }
            {
                name: systemNodeSubnetName
                properties: {
                    addressPrefix: systemNodeSubnetPrefix
                }
            }
        ]
    }
}

output apiServerSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, apiServerSubnetName)
output userNodeSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, userNodeSubnetName)
output systemNodeSubnetId string = resourceId('Microsoft.Network/virtualNetworks/subnets', vnetName, systemNodeSubnetName)

Bicep dosyasını virtualNetwork.bicep kaydedinyerel bilgisayarınıza .

Önemli

Bicep dosyası vnetName parametresini aksAutomaticVnet, addressPrefix parametresini 172.19.0.0/16 olarak ayarlar, apiServerSubnetPrefix için parametresi ve apiServerSubnetPrefix için parametresi. Farklı değerler kullanmak istiyorsanız, dizeleri tercih ettiğiniz değerlere güncelleştirdiğinizden emin olun.

Azure CLI kullanarak Bicep dosyasını dağıtın.

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

Sanal ağ içindeki tüm trafiğe varsayılan olarak izin verilir. Özel sanal ağınızdaki farklı alt ağlar arasındaki trafiği kısıtlamak için Ağ Güvenlik Grubu (NSG) kuralları eklediyseniz, NSG güvenlik kurallarının küme bileşenleri arasında gerekli iletişim türlerine izin verin.

AKS kümeleriyle özel sanal ağlar kullanırken ayrıntılı NSG gereksinimleri için bkz. Özel sanal ağ gereksinimleri.

Yönetilen bir kimlik oluştur

Bu Bicep dosyası, kullanıcı tarafından atanan yönetilen kimliği tanımlar.

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

Bicep dosyasını uami.bicep kaydedinyerel bilgisayarınıza .

Önemli

Bicep dosyası uamiName parametresini aksAutomaticUAMI olarak ayarlar. Farklı bir kimlik adı kullanmak istiyorsanız, dizeyi tercih ettiğiniz adla güncelleştirdiğinizden emin olun.

Azure CLI kullanarak Bicep dosyasını dağıtın.

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

Sanal ağ üzerinden Ağ Katkıda Bulunanı rolünü atama

Bu Bicep dosyası, sanal ağ üzerinden rol atamalarını tanımlar.

@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
  }
}

Bicep dosyasını roleAssignments.bicep kaydedinyerel bilgisayarınıza .

Önemli

Bicep dosyası vnetName parametresini aksAutomaticVnet olarak ayarlar. Farklı bir sanal ağ adı kullandıysanız, dizeyi tercih ettiğiniz sanal ağ adına güncelleştirdiğinizden emin olun.

Azure CLI kullanarak Bicep dosyasını dağıtın. Kullanıcı tarafından atanan kimlik sorumlusu kimliğini sağlamanız gerekir.

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

Özel bir sanal ağda AKS Otomatik kümesi oluşturma

Bu Bicep dosyası AKS Otomatik kümesini tanımlar.

@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 user node subnet.')
param userNodeSubnetId string

@description('The resource ID of the system node subnet.')
param systemNodeSubnetId 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: {
    apiServerAccessProfile: {
      subnetId: apiServerSubnetId
    }
    networkProfile: {
      outboundType: 'loadBalancer'
    }
    hostedSystemProfile: {
      systemNodeSubnetID: systemNodeSubnetId
      nodeSubnetID: userNodeSubnetId
    }
  }
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${uamiId}': {}
    }
  }
}

Bicep dosyasını aks.bicep kaydedinyerel bilgisayarınıza .

Önemli

Bicep dosyası clusterName parametresini aksAutomaticCluster olarak ayarlar. Farklı bir küme adı istiyorsanız, dizeyi tercih ettiğiniz küme adıyla güncelleştirdiğinizden emin olun.

Azure CLI kullanarak Bicep dosyasını dağıtın. API sunucusu alt ağ kaynak kimliğini, kullanıcı düğümü alt ağ kaynak kimliğini, sistem düğümü alt ağ kaynak kimliğini ve kullanıcı tarafından atanan yönetilen kimlik kaynak kimliğini sağlamanız gerekir.

az deployment group create --resource-group <resource-group> --template-file aks.bicep \
--parameters apiServerSubnetId=<API server subnet resource id> \
--parameters nodeSubnetId=<user node subnet resource id> \
--parameters systemNodeSubnetId=<system node subnet resource id> \
--parameters uamiId=<user assigned identity id>

Kümeye bağlanma

Kubernetes kümesini yönetmek için kubectl adlı Kubernetes komut satırı istemcisini kullanın. Azure Cloud Shell kullanıyorsanız kubectl zaten yüklüdür. Yerel olarak kubectl yüklemek için az aks install-cli komutunu çalıştırın. AKS otomatik küme yapılandırmaları, Kubernetes rol tabanlı erişim denetimi (RBAC) için Microsoft Entra ID ile yapılandırılır.

Önemli

Bicep kullanarak bir küme oluşturduğunuzda, kullanıcılarınıza , Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer veya Azure Kubernetes Service RBAC Admin gibi yerleşik rollerden birini küme veya belirli bir ad alanı için (örneğin, Azure Kubernetes Service RBAC Cluster Admin kullanılarak) atamanız gerekir. Ayrıca kullanıcılarınızın Azure Kubernetes Service Cluster User çalıştırabilmek için az aks get-credentials yerleşik rolüne sahip olduğundan emin olun ve az aks get-credentials komutunu kullanarak AKS kümenizin kubeconfig değerini alın.

kubectl'u, az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırın. Bu komut kimlik bilgilerini indirir ve Kubernetes CLI'yi bunları kullanacak şekilde yapılandırmaktadır.

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

kubectl get komutunu kullanarak kümenize bağlantıyı doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.

kubectl get nodes

Aşağıdaki örnek çıktıda oturum açma işleminiz gösterilmektedir.

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

Oturum açtığınızda, aşağıdaki örnek çıktı yönetilen sistem düğümü havuzlarını gösterir. Düğümün durumunun Hazır olduğundan emin olun.

NAME                           STATUS   ROLES    AGE   VERSION
aks-hostedpool-16652789-vms1   Ready    <none>   19m   v1.34.7
aks-hostedpool-16652789-vms2   Ready    <none>   19m   v1.34.7
aks-hostedpool-16652789-vms3   Ready    <none>   19m   v1.34.7
aks-system-surge-zq4d2         Ready    <none>   19m   v1.34.7

Uygulamayı dağıt

Uygulamayı dağıtmak için bir bildirim dosyası kullanarak AKS Store uygulamasını çalıştırmak için gereken tüm nesneleri oluşturursunuz. Kubernetes bildirim dosyası, hangi kapsayıcı görüntülerinin çalıştırıldığı gibi kümenin istenen durumunu tanımlar. Bildirim aşağıdaki Kubernetes dağıtımlarını ve hizmetlerini içerir:

 Azure Store örnek mimarisinin ekran görüntüsü.

  • Mağaza ön: Müşterilerin ürünleri görüntülemesi ve sipariş vermesi için web uygulaması.
  • Ürün hizmeti: Ürün bilgilerini gösterir.
  • Sipariş hizmeti: Sipariş verir.
  • Rabbit MQ: Sipariş kuyruğu için ileti kuyruğu.

Uyarı

Üretim için kalıcı depolama olmadan Rabbit MQ gibi durum bilgisi olan kapsayıcıları çalıştırmanızı önermiyoruz. Bu kapsayıcılar burada kolaylık sağlamak için kullanılır, ancak Azure Cosmos DB veya Azure Service Bus gibi yönetilen hizmetleri kullanmanızı öneririz.

  1. Kubernetes kaynaklarını dağıtmak için bir ad alanı aks-store-demo oluşturun.

    kubectl create ns aks-store-demo
    
  2. Kubectl apply komutunu kullanarak uygulamayı ad alanına dağıtınaks-store-demo. Dağıtımı tanımlayan YAML dosyası GitHub üzerindedir.

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

    Aşağıdaki örnek çıktı dağıtımları ve hizmetleri gösterir:

    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
    

Uygulamayı test edin

Uygulama çalıştırıldığında Kubernetes hizmeti, uygulamanın ön ucunu İnternet'te kullanıma sunar. Bu işlemin tamamlanması birkaç dakika sürebilir.

  1. kubectl get pods komutunu kullanarak dağıtılan podların durumunu denetleyin. Devam etmeden önce tüm podların Running durumda olduğundan emin olun. Dağıttığınız ilk iş yükü buysa, otomatik düğüm sağlama özelliğinin pod'ları çalıştıracak bir düğüm havuzu oluşturması birkaç dakika sürebilir.

    kubectl get pods -n aks-store-demo
    
  2. Mağaza ön uygulaması için genel IP adresi olup olmadığını denetleyin. kubectl get service komutunu --watch bağımsız değişkeniyle kullanarak ilerlemeyi izleyin.

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

    Hizmetin ADDRESS çıkışı store-front başlangıçta boş görünüyor:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. ADRES boştan gerçek bir genel IP adresine geçtikten CTRL-C sonra izleme işlemini durdurmak için kullanınkubectl.

    Aşağıdaki örnek çıktı hizmete atanmış geçerli bir genel IP adresini gösterir:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Azure Mağazası uygulamasının çalıştığını görmek için girişinizin dış IP adresine bir web tarayıcısı açın.

    AKS Store örnek uygulamasının ekran görüntüsü.

Kümeyi sil

AKS öğreticisi üzerinden geçmeyi planlamıyorsanız, Azure ücretlerinden kaçınmak için gereksiz kaynakları temizleyin. Kaynak grubunu, kapsayıcı hizmetini ve tüm ilgili kaynakları kaldırmak için az group delete komutunu çalıştırın.

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

Uyarı

AKS kümesi, kullanıcı tarafından atanan yönetilen kimlikle oluşturulmuştur. Bu kimliğe artık ihtiyacınız yoksa, kimliği el ile kaldırabilirsiniz.

Sonraki adımlar

Bu hızlı başlangıçta, özel bir sanal ağ içinde AKS Otomatik kullanarak bir Kubernetes kümesi dağıttınız ve ardından ona basit bir çok kapsayıcılı uygulama dağıttınız. Bu örnek uygulama yalnızca tanıtım amaçlıdır ve Kubernetes uygulamaları için en iyi yöntemlerin tümünü temsil etmez. Üretim için AKS ile tam çözüm oluşturma yönergeleri için bkz . AKS çözümü kılavuzu.

AKS Otomatik hakkında daha fazla bilgi edinmek için giriş bölümüne geçin.