AKS kümesi oluşturma sorunlarının temel sorunlarını giderme
Bu makalede, Bir Microsoft Azure Kubernetes Service (AKS) kümesini başarıyla oluşturamıyor veya dağıtamıyorsanız kullanılacak temel sorun giderme yöntemleri özetlenmiştir.
Önkoşullar
Azure CLI (sürüm 2.0.59 veya sonraki bir sürüm).
Kubernetes kubectl aracı. Azure CLI kullanarak kubectl yüklemek için az aks install-cli komutunu çalıştırın.
Azure CLI'dan hataları görüntüleme
Azure CLI kullanarak küme oluşturduğunuzda, işlem başarısız olursa hatalar çıkış olarak kaydedilir. Bash konsolunda komut, kullanıcı girişi ve işlem çıkışı şu şekilde görünebilir:
$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS
It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y
(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj
Code: ControlPlaneAddOnsNotReady
Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj
Bu hatalar genellikle küme oluşturma işleminde neyin yanlış gittiğinin ayrıntılı açıklamalarını içerir ve daha fazla ayrıntı içeren makalelerin bağlantılarını sağlar. Ayrıca, bir Azure CLI işleminin ürettiği hataya bağlı olarak başvuru olarak sorun giderme makalelerimizi kullanabilirsiniz.
Azure portal hata ayrıntılarını görüntüleme
Azure portal hatalarla ilgili ayrıntıları görüntülemek için Azure etkinlik günlüğünü inceleyin. Azure portal etkinlik günlüklerinin listesini bulmak için Etkinlik günlüğü'nde arama yapın. Ya da Bildirimler'i (zil simgesi) ve ardından etkinlik günlüğünde Diğer olaylar'ı seçin.
Etkinlik günlüğü sayfasındaki günlüklerin listesi, İşlem adı sütun değerinin Yönetilen Küme Oluştur veya Güncelleştir olarak adlandırıldığı bir satır girdisi içerir. Sütun değeri tarafından başlatılan ilgili Olay , iş veya okul hesabınızın adına ayarlanır. İşlem başarılı olursa Durum sütun değeri Kabul Edildi olarak gösterilir. Küme bileşenlerinin oluşturulması için aşağıdaki işlem adları gibi alt çalışma girdilerini de görürsünüz:
- Rota Tablosu Oluşturma veya Güncelleştirme
- Ağ Güvenlik Grubu Oluşturma veya Güncelleştirme
- Kullanıcı Tarafından Atanan Kimlik Oluşturmayı Güncelleştirme
- Load Balancer Oluşturma veya Güncelleştirme
- Genel Ip Adresi Oluşturma veya Güncelleştirme
- Rol ataması oluşturma
- Kaynak grubunu güncelleştirme
Bu alt çalışma girişlerinde Durum değeri Başarılı ve Tarafından başlatılan Olay alanı AzureContainerService olarak ayarlanır.
Bunun yerine bir hata oluştuysa ne olur? Bu durumda, Yönetilen Küme Oluşturma veya Güncelleştirme işlemi Durumu alanında Başarısız gösterilir. Küme bileşenleri oluşturma işlemlerinden farklı olarak, burada başarısız olan işlem girdisini genişleterek alt çalışma girdilerini gözden geçirmeniz gerekir. Tipik alt çalışma adları, 'denetim' İlke eylemi ve 'auditIfNotExists' İlke eylemi gibi ilke eylemleridir. Bazı alt işlemlerin başarılı olduğunu göstermeye devam edecektir.
Daha fazla araştırma yapmak için başarısız alt işlemlerden birini seçebilirsiniz. Alt çalışma hakkında daha fazla bilgi gözden geçirebilmeniz için bir yan bölme açılır. Özet, JSON ve Değişiklik Geçmişi gibi alanların değerlerinin sorunlarını giderebilirsiniz. JSON alanı, hatanın çıkış metnini JSON biçiminde içerir ve genellikle en yararlı bilgileri sağlar.
Küme içgörülerini görüntüleme
Küme Azure portal oluşturuldu mu ve orada görünüyor mu? Bu doğruysa, sorun gidermenize yardımcı olacak küme içgörüleri oluşturabilirsiniz. Bu özelliğe erişmek için şu adımları izleyin:
Azure portalKubernetes hizmetleri'ni arayın ve seçin.
AKS kümenizin adını seçin.
AKS kümesi sayfasının gezinti bölmesinde Sorunları tanılama ve çözme'yi seçin.
Sorunları tanılama ve çözme sayfasında Küme içgörüleri bağlantısını seçin. Küme içgörüleri aracı kümenizi analiz eder ve ardından Küme İçgörüleri sayfasının Gözlemler ve Çözümler bölümünde bulgularının listesini sağlar.
Bir sorun ve olası çözümleri hakkında daha fazla bilgi görüntülemek için bulgulardan birini seçin.
Azure portal kaynakları görüntüleme
Azure portal, küme oluşturulduğunda oluşturulan kaynakları görüntülemek isteyebilirsiniz. Bu kaynaklar genellikle MC_ başlayan bir kaynak grubunda yer alır. Yönetilen küme kaynak grubunun MC_MyResourceGroup_MyManagedCluster_<location-code> gibi bir adı olabilir. Ancak kümeyi özel yönetilen bir küme kaynak grubu kullanarak derlediyseniz ad farklı olabilir.
Kaynak grubunu bulmak için, Azure portal Kaynak grupları'nı arayın ve seçin ve ardından kümenin oluşturulduğu kaynak grubunu seçin. Kaynak listesi, kaynak grubunun Genel Bakış sayfasında gösterilir.
Uyarı
MC_ kaynak grubundaki kaynakları değiştirmenizi öneririz. Bu eylem AKS kümenizde istenmeyen etkilere neden olabilir.
Sanal makine ölçek kümesinin durumunu gözden geçirmek için, kaynak grubunun kaynak listesinde ölçek kümesi adını seçebilirsiniz. aks-nodepool1-12345678-vmss'yebenzer birAda sahip olabilir ve Tür değeri Sanal makine ölçek kümesine sahip olabilir. Ölçek kümesinin durumu düğüm havuzunun Genel Bakış sayfasının en üstünde görünür ve Essentials başlığında daha fazla ayrıntı gösterilir. Dağıtım başarısız olduysa, görüntülenen durum Başarısız olur.
Tüm kaynaklar için, dağıtımın neden başarısız olduğu hakkında daha iyi bilgi edinmek için ayrıntıları gözden geçirebilirsiniz. Bir ölçek kümesi için Başarısız durum metnini seçerek hatayla ilgili ayrıntıları görüntüleyebilirsiniz. Ayrıntılar Durum, Düzey ve Kod sütunlarını içeren bir satırda yer alır. Aşağıdaki örnekte sütun değerleri satırı gösterilmektedir.
Sütun | Örnek değer |
---|---|
Durum | Sağlama başarısız oldu |
Düzey | Hata |
Kod | ProvisioningState/failed/VMExtensionProvisioningError |
İleti alanını görmek için satırı seçin. Bu hata hakkında daha fazla bilgi içerir. Örneğin, örnek satırın İleti alanı aşağıdaki metinde başlar:
VM, 'vmssCSE' uzantısı işlenirken bir hata bildirdi. Hata iletisi: "Etkinleştirildi: komut yürütülemedi: komut exit status=50 [stdout] [stderr] 0 0 0 ile sonlandırıldı --:
Bu bilgilerle birlikte, ölçek kümesindeki VM'lerin başarısız olduğu ve çıkış durumu 50 oluşturulduğu sonucuna varabilirsiniz.
Not
Küme dağıtımı bu kaynakların oluşturulduğu noktaya ulaşmadıysa, Azure portal yönetilen küme kaynak grubunu gözden geçiremeyebilirsiniz.
Kubectl komutlarını kullanma
Kümenizdeki hataları gidermeye yardımcı olacak başka bir seçenek için, kümede dağıtılan kaynaklar hakkındaki ayrıntıları almak için kubectl komutlarını girin. kubectl kullanmak için önce AKS kümenizde oturum açın:
az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster
Hatanın türüne ve ne zaman oluştuğuna bağlı olarak, daha fazla ayrıntı almak için kümenizde oturum açamayabilirsiniz. Ancak genel olarak, kümeniz oluşturulduysa ve Azure portal gösterildiyse oturum açabilmeniz ve kubectl komutlarını çalıştırabilmeniz gerekir.
Küme düğümlerini görüntüleme (kubectl get düğümleri)
Düğümlerin durumunu belirlemek için daha fazla ayrıntı almak için kubectl get node komutunu girerek küme düğümlerini görüntüleyin. Bu örnekte kümede hiçbir düğüm raporlamıyor:
$ kubectl get nodes
No resources found
Sistem ad alanında podları görüntüleme (kubectl get pods)
Kube-system ad alanında podları görüntülemek de sorununuzu gidermenin iyi bir yoludur. Bu yöntem Kubernetes sistem podlarının durumunu görüntülemenizi sağlar. Bu örnekte şu komutu gireriz kubectl get pods
:
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-845757d86-7xjqb 0/1 Pending 0 78m
coredns-autoscaler-5f85dc856b-mxkrj 0/1 Pending 0 77m
konnectivity-agent-67f7f5554f-nsw2g 0/1 Pending 0 77m
konnectivity-agent-8686cb54fd-xlsgk 0/1 Pending 0 65m
metrics-server-6bc97b47f7-dfhbr 0/1 Pending 0 77m
Podun durumunu açıklama (kubectl describe pod)
Podların durumunu açıklayarak, yapılandırma ayrıntılarını ve podlarda gerçekleşen tüm olayları görüntüleyebilirsiniz. kubectl describe pod komutunu çalıştırın:
$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name: coredns-845757d86-7xjqb
Namespace: kube-system
Priority: 2000001000
Priority Class Name: system-node-critical
Node: <none>
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
pod-template-hash=845757d86
version=v20
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 24m (x1 over 25m) default-scheduler no nodes available to schedule pods
Warning FailedScheduling 29m (x57 over 84m) default-scheduler no nodes available to schedule pods
Komut çıkışında, kullanılabilir düğüm olmadığından pod'un bir düğüme dağıtılamadığı görebilirsiniz.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin