Başarısız durumdaki Azure Kubernetes Service kümelerinin veya düğümlerinin sorunlarını giderme
Bu makalede, başarısız duruma giren bir Microsoft Azure Kubernetes Service (AKS) kümesi veya düğümüyle ilgili sorunları giderme adımları anlatılmaktadır.
Yaygın nedenler
Başarısız bir kümenin veya düğüm havuzunun yaygın nedenleri şunlardır:
Neden | Başvuru |
---|---|
Özel Betik Uzantısı (CSE) sanal makinesi (VM) uzantısı sağlama hatası | CSE hatalarının neden olduğu düğüm hazır değil hatalarıyla ilgili sorunları giderme |
Önemli Azure kaynakları kullanılamıyor | |
Bölgesel/bölgesel kapasite olmadığından VM ayırma hatası | |
Çekirdek kotası aşıldığından VM ayırma hatası | Kota artırıldı hatası |
Müşteri tarafından uygulanan kısıtlamalar | |
İş yükü sorunları |
Küme/düğümün başarısız olmasına neden olan yaygın hatalarda temel sorun giderme
Aşağıdaki tabloda, küme veya düğümün başarısız duruma girmesine neden olabilecek bazı yaygın hatalar, açıklamaları ve bu hataları çözmek için temel sorun giderme yöntemleri özetlenmiştir.
Hata | Açıklama | Sorun giderme yöntemi |
---|---|---|
OutboundConnFailVMExtensionError | Bu hata, giden bağlantı olmaması nedeniyle VM uzantısının yüklenemediğini veya güncelleştirilediğini gösterir. | VM veya VM ölçek kümesinin ağ güvenlik grubu (NSG) kurallarını ve güvenlik duvarı ayarlarını denetleyin. VM veya VM ölçek kümesinin şu uç noktalara erişebildiğinden emin olun: https://aka.ms/aks/outbound , https://aka.ms/aks/ssh , https://aka.ms/aks/agent ve https://aka.ms/aks/containerinsights . |
Boşaltma hatası | Bu hata, yükseltme işleminden önce düğümün boşaltılağını gösterir. | kubectl komutlarını kullanarak düğümdeki pod durumunu ve olaylarını denetleyin: kubectl get pods --all-namespaces -o wide ve kubectl describe pod <pod-name> -n <namespace> . Sonlandırılmış veya bilinmeyen bir durumda ya da olaylardaki hata veya uyarılarla takılmış podları arayın. Podları zorla silmeniz veya düğümdeki kubelet hizmetini yeniden başlatmanız gerekebilir. |
SubscriptionNotRegistered hatası | Bu hata, aboneliğin AKS kaynak sağlayıcısını kullanacak şekilde kaydedilmediğini gösterir. | komutunu kullanarak aboneliği kaydedin az provider register --namespace Microsoft.ContainerService . |
RequestDisallowedByPolicy hatası | Bu hata, işlemin aboneliğe veya kaynak grubuna uygulanan bir ilke tarafından engellendiğini gösterir. | İlke ayrıntılarını ve ilke atama kapsamlarını gözden geçirin. İşleme izin vermek için ilkeyi değiştirmeniz veya dışlamanız gerekebilir. |
QuotaExceeded hatası | Bu hata, işlemin bir kaynak türü veya bölge için kota sınırını aştığını gösterir. | Azure portalını, Azure CLI'yi veya Azure PowerShell'i kullanarak kaynak türü veya bölge için geçerli kota kullanımını ve kota sınırını denetleyin. Kullanılmayan bazı kaynakları silmeniz veya kota artışı istemeniz gerekebilir. |
PublicIPCountLimitReached hatası | Bu hata, işlemin bir abonelikte veya bölgede oluşturulabilecek genel IP adresi sayısı üst sınırına ulaştığını gösterir. | Azure portalını, Azure CLI'yi veya Azure PowerShell'i kullanarak abonelik veya bölge için geçerli genel IP adresi kullanımını ve sınırını denetleyin. Kullanılmayan bazı genel IP adreslerini silmeniz veya genel IP adresi sınırında artış istemeniz gerekebilir. |
OverconstrainedAllocationRequest hatası | Bu hata, işlemin istenen VM boyutunu bir bölgede ayıramaya çalışmadığını gösterir. | Azure portalını, Azure CLI'yı veya Azure PowerShell'i kullanarak bölgedeki VM boyutunun kullanılabilirliğini denetleyin. Farklı bir VM boyutu veya farklı bir bölge seçmeniz gerekebilir. |
ReadOnlyDisabledSubscription hatası | Bu hata, aboneliğin şu anda devre dışı olduğunu ve salt okunur olarak ayarlandığını gösterir. | Abonelik faturalama sorunları, süresi dolmuş kredi veya ilke ihlalleri nedeniyle askıya alınmış olabileceğinden abonelik izinlerini gözden geçirin ve ayarlayın. |
Küme/düğümün başarısız olmasına neden olan diğer olası sorunların temel sorunlarını giderme
Bu tabloda, küme veya düğümün başarısız duruma girmesine neden olabilecek diğer olası sorunlar, açıklamaları ve bu sorunları düzeltmeye yönelik çözümler açıklanmaktadır.
Sorun | Description | Çözüm |
---|---|---|
Alt ağ boyutu çok küçük | Alt ağın gerekli sayıda düğüme yetecek kadar alanı olmadığından işlem kümeyi oluşturamıyor veya güncelleştiremiyor. | Azure portalını, Azure CLI'yi veya Azure PowerShell'i kullanarak düğüm havuzunu silin ve daha büyük bir alt ağ boyutuna sahip yeni bir havuz oluşturun. |
Sanal ağ engellendi | Güvenlik duvarı veya özel Etki Alanı Adı Sistemi (DNS) ayarı düğümlerden giden bağlantıları engellediğinden işlem küme API sunucusu veya Kubernetes denetim düzlemi ile birleştirilemiyor. | Azure portalı, Azure CLI veya Azure PowerShell'i kullanarak düğümün güvenlik duvarı üzerindeki trafiğine izin verin ve Azure'a DNS çözümlemesini ayarlayın. |
PDB sorunları | PDB bir veya daha fazla podun kaldırılmasını durdurduğu için işlem kümeyi güncelleştiremiyor. PDB, belirli bir süre boyunca gönüllü olarak sonlandırılacak pod sayısını sınırlayan bir kaynaktır. | PDB'yi geçici olarak kaldırın, kümeyi uzlaştırın ve kubectl komut satırı aracını kullanarak PDB'yi yeniden ekleyin. |
Altyapı sorunları | Azure'daki kaynakları yöneten Azure Resource Manager (ARM) hizmetiyle ilgili bir iç sorun nedeniyle işlem kümeyi güncelleştiremiyor. | Azure CLI veya Azure PowerShell kullanarak her düğüm havuzu için bir aracı havuzu mutabakatı ve yönetilen küme için bir mutabakat yapın. |
API sunucusu hataları | Bir kesinti veya hata nedeniyle işlem küme API sunucusuna veya Kubernetes denetim düzlemi'ne ulaşamıyor. | Aks destek ekibine bildirin ve ilgili günlükleri ve tanılama bilgilerini sağlayın. Azure portalı, Azure CLI veya Azure PowerShell'i kullanarak günlükleri ve tanılama bilgilerini alabilirsiniz. |
Not
- Önceki tabloda bahsedilen işlem, müşteri tarafından tetiklenen herhangi bir güncelleştirme (
PUT
) işlemini ifade eder. - Kubernetes'te, denetleyici içinde bir bileşen vardır. Küme durumu ve Kubelet için kapsayıcıları çalıştırma veya bulut sağlayıcısı için yük dengeleyiciler gibi dış durumlar da dahil olmak üzere dünyanın gerçek durumunu sağlar. Bir nesnede belirtilen istenen durumla hizalanır. Bu hizalama işlemi denetleyicinin önemli bir işlevidir. AKS için bu bileşen, AKS kümesinin durumunun istenen yapılandırmayla hizalanmasını sağlar. El ile tetikleme için komutunu çalıştırın
az resource update --ids <AKS cluster id>
. KOMUTUNU çalıştırarakaz aks show -n <cluster name> -g <cluster resource group> -o json --query id
AKS kümesi kimliğini alabilirsiniz. Gerçek ve istenen durumlar arasında herhangi bir fark varsa, bu tutarsızlıkları düzeltmek için gerekli eylemleri gerçekleştirin.
Sağlama Durumu Denetimi
Küme durumunu denetlemek için Sağlama Durumu Denetimi'ni seçin. Ardından kümenin ve aracı havuzunun sağlama durumu gösterilir.
Senaryo 1: Küme başarısız durumda
Bu sorunu çözmek için hataya neden olan işlemi alın ve hatayı çözün. Aşağıda başarısız bir kümeye neden olabilecek iki yaygın işlem hatası vardır:
- Küme oluşturma başarısız oldu
- Küme yükseltme başarısız oldu
Yakın zamanda oluşturulan veya yükseltilen bir küme başarısız durumdaysa, hatayı gidermek için aşağıdaki yöntemleri kullanın:
Hatanın kök nedenini belirlemek için etkinlik günlüğünü inceleyin.
Etkinlik günlüğünü Azure portalı, Azure CLI veya Azure PowerShell kullanarak görüntüleyebilirsiniz.
Etkinlik günlüğü, hatayla ilişkili hata kodunu ve iletiyi gösterebilir. Belirli hatalar hakkında daha fazla bilgi için küme/düğümün başarısız olmasına neden olan yaygın hataların temel sorunlarını giderme bölümüne bakın.
Yaygın sorunları gidermek ve çözmek için AKS Sorunları Tanılama ve Çözme özelliğini kullanın.
Not
Bu özellik yalnızca Azure portalında ve Azure CLI'da kullanılabilir.
Azure portalını kullanarak başarısız kümenin etkinlik günlüğünü görüntüleme
Başarısız bir kümenin etkinlik günlüklerini Azure portalından görüntülemek için şu adımları izleyin:
Azure portalında Kaynak grupları sayfasına gidin ve kümenizi içeren kaynak grubunu seçin.
Genel Bakış sayfasında, kaynak listesinden küme adını seçin.
Küme sayfasında, soldaki menüden Etkinlik günlüğü'nü seçin.
Etkinlik günlüğü sayfasında, olayları Durum, Zaman Aralığı, Tarafından başlatılan Olay ve Olay kategorisine göre filtreleyebilirsiniz. Örneğin, Yalnızca başarısız olayları görmek için Durum açılan listesinden Başarısız'ı seçebilirsiniz.
Bir olayın ayrıntılarını denetlemek için listeden olay adını seçin. Olay özeti, özellikleri ve JSON verilerini içeren yeni bir bölme açılır. JSON verilerini dosya olarak da indirebilirsiniz.
Olayla ilişkili hata kodunu ve iletiyi denetlemek için, olay özetindeki Durum bölümüne kadar aşağı kaydırın. Hata bilgilerini özellikler ve JSON verileri bölümlerinde de bulabilirsiniz.
Azure CLI kullanarak başarısız bir kümenin etkinlik günlüğünü görüntüleme
Başarısız bir kümenin etkinlik günlüğünü görüntülemek için Azure CLI kullanmayı tercih ediyorsanız şu adımları izleyin:
Makinenize Azure CLI yükleyin ve Azure hesabınızla oturum açın.
komutunu kullanarak
az group list
aboneliğinizdeki kaynak gruplarını listeleyin ve kümenizi içeren kaynak grubunun adını bulun.parametresiyle
--resource-group
komutunu kullanarakaz resource list
kaynak grubundaki kaynakları listeleyin ve kümenin adını bulun.ve
--resource
parametreleriyle komutunu kullanarak kümeninaz monitor activity-log list
--resource-group
etkinlik günlüğünü listeleyin. Olayları farklı ölçütlere--status
göre filtrelemek için ,--start-time
--end-time
, ,--caller
, ve--filter
parametrelerini de kullanabilirsiniz. Örneğin, yalnızca başarısız olayları görmek için kullanabilirsiniz--status Failed
., ve
--event-id
parametreleriyle--resource
--resource-group
komutunu kullanarakaz monitor activity-log show
belirli bir olayın ayrıntılarını gösterin. Olay kimliğini önceki komutun çıktısından bulabilirsiniz. Çıktı olay özetini, özellikleri ve JSON verilerini içerir. Çıkış biçimini değiştirmek için parametresini de kullanabilirsiniz--output
.Olayla ilişkili hata kodunu ve iletiyi görmek için komut çıkışında alanını arayın
statusMessage
. Hata bilgilerini özellikler ve JSON verileri bölümlerinde de bulabilirsiniz.
Başarısız bir küme için AKS Tanılama ve Sorunları Çözme özelliğini kullanma
Azure portalında AKS küme kaynağınıza gidin ve sol menüden Sorunları tanıla ve çöz'e tıklayın. Tanılama denetimlerini çalıştırmak ve önerilen çözümleri almak için seçebileceğiniz kategorilerin ve senaryoların listesini görürsünüz.
Azure CLI'da, küme düğümlerinizden tanılama verilerini toplamak için ve --resource-group
parametreleriyle komutunu --name
kullanınaz aks collect
. Verilerin karşıya yüklendiği bir Azure Depolama hesabı belirtmek için ve --sas-token
parametrelerini de kullanabilirsiniz--storage-account
. Çıktı, sonuçları ve önerilen eylemleri görüntüleyebileceğiniz Sorunları Tanıla ve Çöz dikey penceresinin bağlantısını içerir.
Sorunları Tanıla ve Çöz dikey penceresinde, kategori olarak Küme Sorunları'nı seçebilirsiniz. Herhangi bir sorun algılanırsa, bunları düzeltmek için izleyebileceğiniz olası çözümlerin listesini görürsünüz.
Senaryo 2: Düğüm başarısız durumda
Nadir durumlarda, düğüm VM'sini başarısız durumda bırakan bir Azure Disk ayırma işlemi kısmen başarısız olabilir.
Bu sorunu çözmek için aşağıdaki yöntemlerden birini kullanarak VM durumunu el ile güncelleştirin:
Kullanılabilirlik kümesini temel alan bir küme için aşağıdaki az vm update komutunu çalıştırın:
az vm update --resource-group <resource-group-name> --name <vm-name>
VM ölçek kümesini temel alan bir küme için aşağıdaki az vmss update-instances komutunu çalıştırın:
az vmss update-instances --resource-group <resource-group-name> --name <scale-set-name> --instance-id <vm-or-scale-set-id>
Senaryo 3: Düğüm havuzu başarısız durumda
Düğüm havuzunu destekleyen VM ölçek kümesi veya kullanılabilirlik kümesi sağlama, ölçeklendirme veya güncelleştirme sırasında bir hatayla karşılaştığında bu sorun oluşabilir. Bu sorun yetersiz kapasite, kota sınırları, ağ sorunları, ilke ihlalleri, kaynak kilitleri veya VM'nin düzgün şekilde ayrılmasını veya yapılandırılmasını engelleyen diğer faktörlerden kaynaklanabilir.
Bu sorunu gidermek için şu adımları izleyin:
- komutunu kullanarak düğüm havuzunun
az aks nodepool show
durumunu denetleyin. Sağlama durumu iseFailed
, çıkışta hata iletisini ve kodu görebilirsiniz. - veya
az vm availability-set show
komutunu kullanarak VM ölçek kümesinin veya kullanılabilirlik kümesininaz vmss show
durumunu denetleyin. Sağlama durumu iseFailed
, çıkışta hata iletisini ve kodu görebilirsiniz. - veya
az vm list
komutunu kullanarak düğüm havuzundaki tek tek VM'ninaz vmss list-instances
durumunu denetleyin. Bir veyaUnhealthy
durumunda herhangi birFailed
VM varsa, çıkışta hata iletisini ve kodu görebilirsiniz. - Hatanın nedenini gösteren olaylar veya uyarılar olup olmadığını görmek için VM ölçek kümesinin veya kullanılabilirlik kümesinin etkinlik günlüğünü ve tanılama ayarını denetleyin. Etkinlik günlüğüne ve tanılama ayarına erişmek için Azure portalı, Azure CLI veya Azure İzleyici API'sini kullanabilirsiniz.
- Düğüm havuzunun dağıtıldığı bölge ve aboneliğin kotasını ve kapasitesini denetleyin. Kotayı ve kapasiteyi
az vm list-usage
denetlemek için komutunu veya Azure portalını kullanabilirsiniz. Kota veya kapasite sınırına ulaşılırsa, bir artış isteyebilir veya kullanılmayan bazı kaynakları silebilirsiniz. - Düğüm havuzunun ilke ve rol atamalarını denetleyin. İlke tanımlarını
az policy
, atamaları, uyumluluğu ve muafiyetleri denetlemek için veaz role
komutlarını veya Azure portalını kullanabilirsiniz. Ayrıca komutunu veya Azure portalını kullanarakaz role assignment
düğüm havuzunun rol atamalarını ve izinlerini de de de kontrol edebilirsiniz. - Düğüm havuzunun kaynak kilitlerini denetleyin. Kilit düzeyini, kapsamı ve notları denetlemek için komutunu veya Azure portalını kullanabilirsiniz
az lock
. Gerekirse kilidi silebilir veya güncelleştirebilirsiniz.
Diğer günlük ve tanılama araçları
Önceki sorun giderme yöntemleri sorununuzu çözmezse, daha fazla bilgi toplamak ve kök nedeni belirlemek için aşağıdaki günlüğe kaydetme ve tanılama araçlarını kullanabilirsiniz:
Kapsayıcılar için Azure İzleyici:
Bu hizmet AKS kümelerinden ve düğümlerden ölçümleri ve günlükleri toplar ve analiz eder. Kapsayıcılar için Azure İzleyici küme ve düğüm durumunu, performansını ve kullanılabilirliğini izleyebilir. Kapsayıcı günlüklerini, kubelet günlüklerini ve düğüm önyükleme tanılama günlüklerini görüntülemek için de kullanabilirsiniz.
-
Bu araç aks kümesinden düğüm ve pod günlüklerini, ağ bilgilerini ve küme yapılandırmasını toplar ve bunları bir Azure depolama hesabına yükler. Bu araç DNS çözümlemesi, ağ bağlantısı ve düğüm durumu gibi yaygın küme sorunlarını gidermenize yardımcı olabilir. Ayrıca, toplanan günlüklerin eklendiği bir destek isteği oluşturmak için de kullanabilirsiniz.
AKS Tanılama
Bu araç AKS kümeleri ve düğümler üzerinde bir dizi denetim çalıştırır ve yaygın sorunlar için öneriler ve düzeltme adımları sağlar. Bu araç küme oluşturma, yükseltme, ölçeklendirme, ağ, depolama ve güvenlikle ilgili sorunları gidermenize yardımcı olabilir. Tanılama sonuçlarının eklendiği bir destek isteği oluşturmak için de kullanabilirsiniz.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.