Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ş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 özel bir AKS Otomatik kümesi dağıtın.
- Özel kümeye bağlanı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.
Önkoşullar
- Azure hesabınız yoksa free hesabı oluşturun.
- Bu makale, Azure CLI 2.77.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanıyorsanız en son sürüm zaten orada yüklüdür. 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 Contributoryerleşik rol atamasına sahip küme kimliği, Node Autoprovisioning'i destekler. -
Azure Kubernetes Service Cluster User RoleveAzure Kubernetes Service RBAC Writerile kümeye erişen kullanıcı kimliği. - En az
*/28boyutunda,Microsoft.ContainerService/managedClusters'ye ayrılmış API sunucusu alt ağı içeren bir sanal ağ.- Alt ağa bağlı bir Ağ Güvenlik Grubu (NSG) varsa, kuralların düğümler ile API sunucusu, Azure Load Balancer ile API sunucusu ve podlar arasında iletişime izin verdiğinden emin olun.
- 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.
Sınırlamalar
- AKS Otomatik kümelerinin sistem düğüm havuzu, en az üç kullanılabilirlik bölgesi, geçici işletim sistemi diski ve Azure Linux işletim sistemini destekleyen Azure bölgelerinde dağıtılmalıdır.
- AKS Otomatik şu bölgelerde kullanılabilir:
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. - 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şturun kısmındaki adımları takip ederek özel ağ ve özel DNS kullanın.
Önemli
AKS Otomatik, abonelikte kullanılabilir kapasiteye göre düğüm havuzu için system dinamik olarak bir sanal makine boyutu seçmeye çalışır. Aboneliğinizin, kümeyi dağıttığınız bölgede aşağıdaki boyutlardan herhangi biri için 16 vCPU kotası olduğundan emin olun: 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 veya Standard_D4alds_v5. Azure portalı üzerinden belirli VM aileleri için kotaları görüntüleyebilir ve kota artış taleplerini gönderebilirsiniz.
Başka sorularınız varsa sorun giderme belgeleri aracılığıyla daha fazla bilgi edinin.
Değişkenleri tanımlama
Sonraki adımlarda kullanılacak 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": "eastus",
"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ğı ve küme alt ağı oluşturun.
AKS Otomatik ile özel bir sanal ağ kullanırken, bir API sunucusu alt ağı oluşturmanız ve Microsoft.ContainerService/managedClusters'ye devretmeniz gerekir. Bu, AKS hizmetine API sunucusu podlarını ve iç yük dengeleyiciyi bu alt ağa 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 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 clusterSubnet \
--address-prefixes 172.19.1.0/24
Ağ güvenlik grubu kuralları
Sanal ağ içindeki tüm trafiğe varsayılan olarak izin verilir. Ancak 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 aşağıdaki iletişim türlerine izin verin:
| Varış Yeri | Kaynak | Protokol | Liman | Kullan |
|---|---|---|---|---|
| APIServer Alt Ağ CIDR | Küme Alt Ağı | TCP | 443 ve 4443 | Düğümler ile API sunucusu arasındaki iletişimi etkinleştirmek için gereklidir. |
| APIServer Alt Ağ CIDR | Azure Load Balancer | TCP | 9988 | Azure Load Balancer ile API sunucusu arasındaki iletişimi etkinleştirmek için gereklidir. ayrıca Azure Load Balancer ile API Server Alt Ağı CIDR arasındaki tüm iletişimi etkinleştirebilirsiniz. |
| Düğüm CIDR | Düğüm CIDR | Tüm Protokoller | Tüm Bağlantı Noktaları | Düğümler arasında iletişimi sağlamak için gereklidir. |
| Düğüm CIDR | Pod CIDR | Tüm Protokoller | Tüm Bağlantı Noktaları | Hizmet trafiğinin yönlendirilmesi için gereklidir. |
| Pod CIDR | Pod CIDR | Tüm Protokoller | Tüm Bağlantı Noktaları | DNS de dahil olmak üzere Pod'dan Pod'a ve Pod'dan Hizmete trafik için gereklidir. |
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 özel AKS Otomatik kümesi oluşturma
Özel aks Otomatik kümesi oluşturmak için az aks create komutunu kullanın. Bayrağın kullanımına dikkat edin --enable-private-cluster .
Uyarı
Kümenin genel FQDN'sini devre dışı bırakma ve özel DNS bölgesini yapılandırma gibi ek seçenekleri yapılandırmak için özel küme belgelerine başvurabilirsiniz.
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
Birkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür.
Kümeye bağlanma
Aks Otomatik kümesi özel küme olarak oluşturulduğunda, API sunucusu uç noktasının genel IP adresi yoktur. API sunucusunu yönetmek için, örneğin kubectl aracılığıyla kümenin Azure sanal ağına erişimi olan bir makine aracılığıyla bağlanmanız gerekir. Özel kümeye ağ bağlantısı kurmak için çeşitli seçenekler vardır:
-
az vm createkomutunu--vnet-namebayrağı ile kullanarak, AKS Automatic kümesiyle aynı sanal ağda bir sanal makine oluşturun. - Ayrı bir sanal ağda bir sanal makine kullanın ve sanal ağ eşlemesini ayarlayın.
- Express Route veya VPN bağlantısı kullanın.
- Özel bir uç nokta bağlantısı kullanın.
AKS kümesiyle aynı sanal ağda bir sanal makine oluşturmak en kolay seçenektir. ExpressRoute ve VPN'ler maliyet ekler ve ek ağ karmaşıklığı gerektirir. Sanal ağ eşlemesi, çakışan aralıklar olmadığından emin olmak için ağ CIDR aralıklarınızı planlamanızı gerektirir. Daha fazla bilgi için Özel kümeye bağlanma seçenekleri'ne bakın.
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 nasıl oturum açmanız istendiğiniz 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ıktan sonra 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-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
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 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)
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. Ancak 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 aşağıdaki iletişim türlerine izin verin:
| Varış Yeri | Kaynak | Protokol | Liman | Kullan |
|---|---|---|---|---|
| APIServer Alt Ağ CIDR | Küme Alt Ağı | TCP | 443 ve 4443 | Düğümler ile API sunucusu arasındaki iletişimi etkinleştirmek için gereklidir. |
| APIServer Alt Ağ CIDR | Azure Load Balancer | TCP | 9988 | Azure Load Balancer ile API sunucusu arasındaki iletişimi etkinleştirmek için gereklidir. ayrıca Azure Load Balancer ile API Server Alt Ağı CIDR arasındaki tüm iletişimi etkinleştirebilirsiniz. |
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 özel AKS Otomatik kümesi oluşturma
Bu Bicep dosyası AKS Otomatik kümesini tanımlar.
Uyarı
Kümeleri genel FQDN'yi devre dışı bırakma ve özel DNS bölgesini yapılandırma gibi ek seçenekleri yapılandırmak için özel küme belgelerine başvurabilirsiniz.
@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}': {}
}
}
}
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, küme alt ağ kaynak kimliğini ve kullanıcı tarafından atanan kimlik sorumlusu 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 clusterSubnetId=<cluster subnet resource id> \
--parameters uamiPrincipalId=<user assigned identity prinicipal id>
Kümeye bağlanma
Aks Otomatik kümesi özel küme olarak oluşturulduğunda, API sunucusu uç noktasının genel IP adresi yoktur. API sunucusunu yönetmek için, örneğin kubectl aracılığıyla kümenin Azure sanal ağına erişimi olan bir makine aracılığıyla bağlanmanız gerekir. Özel kümeye ağ bağlantısı kurmak için çeşitli seçenekler vardır:
-
az vm createkomutunu--vnet-namebayrağı ile kullanarak, AKS Automatic kümesiyle aynı sanal ağda bir sanal makine oluşturun. - Ayrı bir sanal ağda bir sanal makine kullanın ve sanal ağ eşlemesini ayarlayın.
- Express Route veya VPN bağlantısı kullanın.
- Özel bir uç nokta bağlantısı kullanın.
AKS kümesiyle aynı sanal ağda bir sanal makine oluşturmak en kolay seçenektir. Express Route ve VPN'ler maliyet ekler ve ek ağ karmaşıklığı gerektirir. Sanal ağ eşlemesi, çakışan aralıklar olmadığından emin olmak için ağ CIDR aralıklarınızı planlamanızı gerektirir. Daha fazla bilgi için Özel kümeye bağlanma seçenekleri'ne bakın.
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 nasıl oturum açmanız istendiğiniz 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ıktan sonra 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-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
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:
- 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.
Kubernetes kaynaklarını dağıtmak için bir ad alanı
aks-store-demooluşturun.kubectl create ns aks-store-demoKubectl apply komutunu kullanarak uygulamayı ad alanına dağıtın
aks-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.yamlAş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.
kubectl get pods komutunu kullanarak dağıtılan podların durumunu denetleyin. Devam etmeden önce tüm podların
Runningolduğundan emin olun. Dağıtacağınız ilk iş yükü buysa, düğüm otomatik sağlamanın podları çalıştırmak için bir düğüm havuzu oluşturması birkaç dakika sürebilir.kubectl get pods -n aks-store-demoMağaza ön uygulaması için genel IP adresi olup olmadığını denetleyin. kubectl get service komutunu
--watchbağımsız değişkeniyle kullanarak ilerlemeyi izleyin.kubectl get ingress store-front -n aks-store-demo --watchHizmetin ADDRESS çıkışı
store-frontbaşlangıçta boş görünüyor:NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mADRES boştan gerçek bir genel IP adresine geçtikten
CTRL-Csonra 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 12mAzure Mağazası uygulamasının çalıştığını görmek için girişinizin dış IP adresine bir web tarayıcısı açın.
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ıç kılavuzunda, özel bir sanal ağın içinde AKS Otomatik'i kullanarak özel bir Kubernetes kümesi kurdunuz ve ardından basit bir çok konteynerli uygulama kurdunuz. 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.