AKS kümesi oluşturma sorunlarının temel sorunlarını giderme
Bu makalede, 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şturmaya çalıştığınızda işlem başarısız olursa çıkışta hata bilgileri görüntülenir. Aşağıda örnek bir Azure CLI komutu ve çıkışı verilmişti:
# Create a cluster specifying subnet
az aks create --resource-group myResourceGroup
--name MyManagedCluster \
--load-balancer-sku standard \
--vnet-subnet-id /subscriptions/<subscriptions-id>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS
Çıktı örneği:
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://zcusa.951200.xyz/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
Çıkıştan hata kodunu ve hata iletisini tanımlayabilirsiniz. Bu durumda şunlardır:
- Hata kodu:
ControlPlaneAddOnsNotReady
- Hata iletisi:
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 açıklamalar genellikle küme oluşturma işleminde neyin yanlış gittiğinin ayrıntılarını içerir ve daha da fazla ayrıntı içeren makalelere bağlanır. Ayrıca, Azure CLI işleminin ürettiği hatalara bağlı olarak başvuru olarak sorun giderme makalelerimizi kullanabilirsiniz.
Azure portalında hata ayrıntılarını görüntüleme
Azure portalında AKS kümesi oluşturma hatalarını araştırmak için Etkinlik Günlüğü'nü açın. Sonuçları gereksinimlerinize uyacak şekilde filtreleyebilirsiniz. Bunu yapmak için Filtre Ekle'yi seçerek filtreye daha fazla özellik ekleyin.
Etkinlik Günlüğü sayfasında, İşlem adı sütununun Yönetilen Küme Oluştur veya Güncelleştir'i gösterdiği günlük girdilerini bulun.
Tarafından başlatılan Olay sütunu, işlemi gerçekleştiren kullanıcıyı gösterir. Bu kullanıcı bir iş hesabı, okul hesabı veya Azure yönetilen kimliği olabilir.
İşlem başarılı olursa Durum sütun değeri Kabul Edildi olur. Ayrıca, aşağıdaki işlem adları gibi küme bileşenlerinin oluşturulması için alt çalışma girdileri de görürsünüz:
- Yol Tablosu Oluşturma veya Güncelleştirme
- Ağ Güvenlik Grubu Oluşturma veya Güncelleştirme
- Kullanıcı Tarafından Atanan Kimlik Oluşturma 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 Olay tarafından başlatılan alan AzureContainerService olarak ayarlanır.
Bunun yerine bir hata oluştuysa ne olur? Bu durumda Durum değeri Başarısız olur. Küme bileşenleri oluşturma işlemlerinden farklı olarak, başarısız alt çalışma girdilerini gözden geçirmek için genişletmeniz gerekir. Tipik alt çalışma adları, 'denetim' İlke eylemi ve 'auditIfNotExists' İlke eylemi gibi ilke eylemleridir. Tüm alt işlemlerin birlikte başarısız olması gerekmez. Bazılarının başarılı olduğunu görmeyi bekleyebilirsiniz.
Daha fazla araştırmak için başarısız alt işlemlerden birini seçin. Sorunu gidermek için Özet, JSON ve Değişiklik Geçmişi sekmelerini seçin. JSON sekmesi, hatanın JSON biçimindeki çıkış metnini içerir ve genellikle en yararlı bilgileri sağlar.
Aşağıda JSON biçiminde ayrıntılı günlük örneği verilmişti:
{
"status": {
"value": "Failed",
"localizedValue": "Failed"
},
"subStatus": {
"value": "",
"localizedValue": ""
},
"submissionTimestamp": "2024-08-30T10:06:07Z",
"subscriptionId": "<subscriptionId>",
"tenantId": "<tenantId>",
"properties": {
"statusMessage": "{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"VMExtensionProvisioningError\",\"message\":\"Unable to establish outbound connection from agents, please see https://zcusa.951200.xyz/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.\"}]}}",
}
}
Küme içgörülerini görüntüleme
Küme Azure portalında oluşturuldu mu ve orada görünür mü? 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 portalında Kubernetes hizmetlerini 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ında kaynakları görüntüleme
Azure portalında, küme oluşturulduğunda oluşturulan kaynakları görüntülemek isteyebilirsiniz. Bu kaynaklar genellikle adı 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 olarak yönetilen bir küme kaynak grubu kullanarak derlediyseniz ad farklı olabilir.
Kaynak grubunu bulmak için Azure portalında 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ümenizi olumsuz etkileyebilir.
Sanal makine ölçek kümesinin durumunu gözden geçirmek için, kaynak grubunun kaynak listesinden ölçek kümesi adını seçebilirsiniz. Aks-nodepool1-12345678-vmss değerine benzeyen bir Ad değerine ve Sanal makine ölçek kümesinin Tür değerine sahip olabilir. Ölçek kümesinin durumu düğüm havuzunun Genel Bakış sayfasının en üstünde görünür ve Temel Parçalar 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ğunu daha iyi anlamak 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 |
Level | Hata |
Kod | ProvisioningState/failed/VMExtensionProvisioningError |
İleti alanını görmek için satırı seçin. Bu, 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ştirilemedi: komut yürütülemedi: komut exit status=50 [stdout] [stderr] 0 0 0 --:
Bu bilgilerle birlikte ölçek kümesindeki VM'lerin başarısız olduğu ve çıkış durumu 50 olduğu sonucuna varabilirsiniz.
Not
Küme dağıtımı bu kaynakların oluşturulacağı noktaya ulaşmadıysa, Azure portalında 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 kubectl komutlarını kullanarak kümede dağıtılan kaynaklar hakkında ayrıntılı bilgi edinin. Bunu yapmak 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 kümeniz oluşturulduysa ve Azure portalında görünüyorsa oturum açabilmeniz ve kubectl komutlarını çalıştırabilmeniz gerekir.
Küme düğümlerini görüntüleme (kubectl get düğümleri)
Küme düğümlerinin durumunu belirlemek için komutunu çalıştırarak düğümleri kubectl get nodes
görüntüleyin. Bu örnekte, kümede hiçbir düğüm bildirilmemiş:
$ 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 pods
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.