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:

  1. Azure portalKubernetes hizmetleri'ni arayın ve seçin.

  2. AKS kümenizin adını seçin.

  3. AKS kümesi sayfasının gezinti bölmesinde Sorunları tanılama ve çözme'yi seçin.

  4. 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.

  5. 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.