Anormal durumlar, görüntü çekme hataları ve OOM (Bellek Yetersizliği) hataları dahil olmak üzere yaygın pod sorunlarını teşhis edin ve çözün.
Bu konudaki içerikler
|
Kategori |
İçerik |
|
Tanılama süreci |
|
|
Yaygın sorun giderme yöntemleri |
|
|
Yaygın sorunlar ve çözümler |
Tanılama süreci

-
Anormal pod durumlarını kontrol edin. Daha fazla bilgi için bkz. Pod durumunu kontrol edin.
Bir pod anormal durumdaysa nedeni belirlemek için olaylarını, günlüklerini ve yapılandırmasını kontrol edin. Daha fazla bilgi için bkz. Yaygın sorun giderme yöntemleri. Anormal pod durumları ve bunların nasıl ele alınacağı hakkında bilgi için bkz. Yaygın anormal pod durumları ve çözümleri.
Pod
Runningdurumunda ancak beklendiği gibi çalışmıyorsa bkz. Pod Running durumunda ancak beklendiği gibi çalışmıyor.
Bir pod OOM sorunu olduğunu doğruladıysanız bkz. Pod OOM sorunlarını giderme.
Sorun devam ederse destek talebi oluşturun.
Yaygın anormal pod durumları ve çözümleri
|
Pod durumu |
Açıklama |
Çözüm |
|
Pending |
Pod zamanlanmamıştır. |
|
|
Init:N/M |
Podun M adet init konteyneri vardır ve N adedi başarıyla başlatılmıştır. |
Pod Init:N/M, Init:Error veya Init:CrashLoopBackOff durumundadır |
|
Init:Error |
Bir init konteyneri başlatılamadı. |
Pod Init:N/M, Init:Error veya Init:CrashLoopBackOff durumundadır |
|
Init:CrashLoopBackOff |
Bir init konteyneri başlatılamadı ve tekrar tekrar yeniden başlatılıyor. |
Pod Init:N/M, Init:Error veya Init:CrashLoopBackOff durumundadır |
|
Completed |
Pod başlangıç komutunu yürütmeyi tamamladı. |
|
|
CrashLoopBackOff |
Pod başlatılamadı ve tekrar tekrar yeniden başlatılıyor. |
|
|
ImagePullBackOff |
Pod görüntüyü çekemedi. |
|
|
Running |
|
|
|
Terminating |
Pod sonlandırılıyor. |
Yaygın sorun giderme yöntemleri
Pod durumunu kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
-
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin ve durumunu kontrol edin.
Durum
Runningise pod beklendiği gibi çalışıyor demektir.Durum
Runningdeğilse pod anormal durumdadır. Çözümler için bkz. Yaygın anormal pod durumları ve çözümleri.
Pod ayrıntılarını kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin. Ardından ad, görüntü ve IP adresi gibi ayrıntıları görüntülemek için hedef podun adına tıklayın veya İşlemler sütununda Ayrıntılar'a tıklayın.
Pod yapılandırmasını kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin. Ardından hedef podun adına tıklayın veya İşlemler sütununda Ayrıntılar'a tıklayın.
Pod ayrıntıları sayfasında podun YAML dosyasını ve ayrıntılı yapılandırmasını görüntülemek için sağ üst köşedeki Edit seçeneğine tıklayın.
Pod olaylarını kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin. Ardından hedef podun adına tıklayın veya İşlemler sütununda Ayrıntılar'a tıklayın.
Pod ayrıntıları sayfasının sağ üst köşesinde podun YAML dosyasını ve ayrıntılı yapılandırmasını görüntülemek için Edit seçeneğine tıklayın.
-
Pod ayrıntıları sayfasında Events sekmesine tıklayın.
NotKubernetes varsayılan olarak son bir saate ait olayları saklar. Olayları daha uzun süre saklamak için bkz. Kubernetes olay merkezi oluşturma ve kullanma.
Pod günlüklerini kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin. Ardından hedef podun adına tıklayın veya İşlemler sütununda Ayrıntılar'a tıklayın.
-
Pod ayrıntıları sayfasında Logs sekmesine tıklayın.
NotAlibaba Cloud Container Service for Kubernetes (ACK) kümeleri Simple Log Service ile tümleşiktir. Standart çıkış ve konteynerler içindeki metin dosyaları dahil olmak üzere konteyner günlüklerini toplamak için bir küme oluştururken Simple Log Service'i etkinleştirin. Daha fazla bilgi için bkz. Konteyner ortam değişkenlerini kullanarak uygulama günlük toplamayı yapılandırma.
Pod izleme verilerini kontrol edin
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Prometheus Monitoring seçeneğini belirleyin.
Prometheus Monitoring sayfasında pod CPU, bellek ve ağ G/Ç için izleme panolarını görüntülemek üzere Cluster Overview sekmesine tıklayın.
Uçbirim üzerinden bir konteynere bağlanın
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
-
Pods sayfasında hedef podu bulun ve Terminal seçeneğini Actions sütununda tıklayın.
NotKonteynerin içindeki yerel dosyaları ve diğer bilgileri incelemek için uçbirimi kullanın.
Pod hatalarını tanılama
ACS konsolu ile oturum açın. Sol gezinme bölmesinde Clusters öğesine tıklayın.
Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Workloads > Pods seçeneğini belirleyin.
Sol üst köşesindeki Pods sayfasında podun Namespace değerini seçin. Ardından hedef podun adına tıklayın veya İşlemler sütununda Ayrıntılar'a tıklayın.
-
Pods sayfasında hedef podu bulun ve Diagnose seçeneğini Actions sütununda tıklayın.
NotPod üzerinde tanılama çalıştırın ve sonuçlara göre sorunu çözün. Daha fazla bilgi için bkz. Küme tanılama kullanma.
Pod Pending durumundadır
Neden
Pending durumundaki bir pod zamanlanamaz; bu durum genellikle kaynak bağımlılıklarından veya yanlış yapılandırılmış kotalardan kaynaklanır.
Belirti
Pod durumu Pending şeklindedir.
Çözüm
Podun neden zamanlanamadığını belirlemek için pod olaylarını inceleyin. Başlıca nedenler şunlardır:
-
Kaynak bağımlılıkları
Bir pod ConfigMaps veya kalıcı birim talepleri (PVC'ler) gibi diğer küme kaynaklarına bağlı olabilir. Örneğin, bir kalıcı birim talebinin bir pod tarafından kullanılabilmesi için önce bir kalıcı birime bağlanması gerekir.
-
Yanlış yapılandırılmış kotalar
Olayları ve denetim günlüklerini kontrol edin.
Pod durumları: Init, Error veya CrashLoopBackOff
Neden
Bir pod
Init:N/Mdurumunda takılı kaldıysa M adet init konteyneri vardır ancak yalnızca N adedi başarıyla başlatılmıştır; bu da M-N adet konteynerin başlatılamadığı anlamına gelir.Bir pod
Init:Errordurumundaysa poddaki bir init konteyneri başlatılamamıştır.Bir pod
Init:CrashLoopBackOffdurumundaysa bir init konteyneri başlatılamamış ve tekrar tekrar yeniden başlatılmaktadır.
Belirti
Pod durumu
Init:N/Mşeklindedir.Pod durumu
Init:Errorşeklindedir.Pod durumu
Init:CrashLoopBackOffşeklindedir.
Çözüm
Başlatılmayan init konteynerlerinde herhangi bir sorun olup olmadığını görmek için pod olaylarını kontrol edin. Daha fazla bilgi için bkz. Pod olaylarını kontrol edin.
Sorunu gidermek için başlatılmayan init konteynerlerinin günlüklerini kontrol edin. Daha fazla bilgi için bkz. Pod günlüklerini kontrol edin.
Başlatılmayan init konteynerlerinin yapılandırmasının doğru olduğunu doğrulamak için pod yapılandırmasını kontrol edin. Daha fazla bilgi için bkz. Pod yapılandırmasını kontrol edin. Init konteynerleri hakkında daha fazla bilgi için bkz. Init Konteynerlerinde Hata Ayıklama.
Pod ImagePullBackOff durumundadır
Neden
ImagePullBackOff durumundaki bir pod zamanlanmış ancak konteyner görüntüsünü çekememiştir.
Belirti
Pod durumu ImagePullBackOff şeklindedir.
Çözüm
Çekilemeyen görüntünün adını bulmak için pod olayı açıklamasını kontrol edin.
Konteyner görüntüsü adının doğru olduğunu doğrulayın.
Özel bir görüntü deposu kullanıyorsanız çözüm için bkz. Bir görüntü deposundan görüntü kullanarak bir ACK iş yükü oluşturma.
Pod CrashLoopBackOff durumundadır
Neden
CrashLoopBackOff durumu konteynerin içindeki bir uygulama sorununu gösterir.
Belirti
Pod durumu CrashLoopBackOff şeklindedir.
Çözüm
Podda bir sorun olup olmadığını onaylamak için pod olaylarını kontrol edin. Daha fazla bilgi için bkz. Pod olaylarını kontrol edin.
Sorunu gidermek için pod günlüklerini kontrol edin. Daha fazla bilgi için bkz. Pod günlüklerini kontrol edin.
Konteynerin sağlık denetimi yapılandırmasının doğru olduğunu doğrulamak için pod yapılandırmasını kontrol edin. Daha fazla bilgi için bkz. Pod yapılandırmasını kontrol edin. Konteyner sağlık denetimleri hakkında daha fazla bilgi için bkz. Canlılık, Hazırlık ve Başlangıç Yoklamalarını Yapılandırma.
Pod Completed durumundadır
Neden
Tüm konteyner süreçleri çıktıktan sonra bir pod Completed durumuna geçer.
Belirti
Pod durumu Completed şeklindedir.
Çözüm
Konteynerdeki kabın başlangıç komutunu belirlemek için pod yapılandırmasını kontrol edin. Daha fazla bilgi için bkz. Pod yapılandırmasını kontrol edin.
Sorunu gidermek için pod günlüklerini kontrol edin. Daha fazla bilgi için bkz. Pod günlüklerini kontrol edin.
Running durumundaki pod çalışmıyor
Neden
Dağıtım için kullanılan YAML dosyasında bir hata var.
Belirti
Pod Running durumunda ancak beklendiği gibi çalışmıyor.
Çözüm
Konteyner yapılandırmasının beklentilerinizi karşılayıp karşılamadığını belirlemek için pod yapılandırmasını kontrol edin. Daha fazla bilgi için bkz. Pod yapılandırmasını kontrol edin.
-
Ortam değişkenlerinin anahtarlarında yazım hatası olup olmadığını kontrol etmek için aşağıdaki yöntemleri kullanın.
Aşağıdaki örnekte
commandifadesinincommndolarak yanlış yazılması durumunda yazım hatasının nasıl tespit edileceği gösterilmektedir.NotBir pod oluşturduğunuzda küme ortam değişkeni anahtarlarındaki yazım hatalarını yoksayar. Örneğin,
CommandifadesiniCommndolarak yanlış yazarsanız kaynağı oluşturmak için YAML dosyasını yine de kullanabilirsiniz. Ancak çalışma zamanında konteyner yanlış yazılan komutu yoksayar ve bunun yerine görüntüden gelen varsayılan komutu çalıştırır.-
kubectl apply -fkomutunu çalıştırmadan önce--validateparametresini ekleyin ve ardındankubectl apply --validate -f XXX.yamlkomutunu çalıştırın.Command ifadesini commnd olarak yanlış yazarsanız
XXX] unknown field: commnd XXX] this may be a false alarm, see https://gXXXb.XXX/6842pods/testşeklinde bir hata mesajı görürsünüz. -
Aşağıdaki komutu çalıştırın ve pod.yaml dosyasındaki çıktıyı podu oluşturmak için kullandığınız orijinal dosya ile karşılaştırın.
kubectl get pods [$Pod] -o yaml > pod.yamlNot[$Pod]anormal durumdaki podun adıdır. Pod adını görüntülemek içinkubectl get podskomutunu çalıştırabilirsiniz.pod.yaml dosyası podu oluşturmak için kullandığınız dosyadan birkaç satır daha fazlaysa oluşturulan pod beklentilerinizle eşleşiyor demektir.
Orijinal dosyanızdan bir kod satırı pod.yaml dosyasında eksikse orijinal dosyanızda bir yazım hatası olduğunu gösterir.
-
Sorunu gidermek için pod günlüklerini kontrol edin. Daha fazla bilgi için bkz. Pod günlüklerini kontrol edin.
İçindeki yerel dosyaların beklendiği gibi olup olmadığını kontrol etmek için uçbirim üzerinden konteynere erişin. Daha fazla bilgi için bkz. Uçbirim kullanarak bir konteynere bağlanın.
Pod Terminating durumundadır
Neden
Pod kapatılıyor.
Belirti
Pod durumu Terminating şeklindedir.
Çözüm
Terminating durumundaki bir pod belirli bir gecikme süresinden sonra otomatik olarak silinir. Takılı kalırsa zorla silmek için aşağıdaki komutu çalıştırın:
kubectl delete pod [$Pod] -n [$namespace] --grace-period=0 --force
Pod OOM sorunlarını giderme
Neden
Bir konteyner bellek sınırını aştığında sistem OOM (Bellek Yetersizliği) olayıyla onu sonlandırır ve beklenmedik bir çıkışa neden olur. OOM olayları hakkında daha fazla bilgi için bkz. Konteynerlere ve Podlara Bellek Kaynakları Atama.
Belirti
Sonlandırılan süreç engelleyici bir süreçse konteyner beklenmedik şekilde yeniden başlatılabilir.
Bir OOM sorunu oluşursa konsoldaki pod ayrıntıları sayfasında Events sekmesi pod was OOM killed OOM olayını görüntüler.
Çözüm
Sorunun ne zaman oluştuğunu belirlemek için pod izleme verilerindeki bellek artış eğrisini inceleyin. Daha fazla bilgi için bkz. Pod izleme verilerini kontrol edin.
-
İzleme verilerine, bellek artış zaman çizelgesine, günlüklere ve süreç adlarına dayanarak ilgili süreçte bellek sızıntısı olup olmadığını kontrol edin.
OOM bir süreç bellek sızıntısından kaynaklanıyorsa uygulamanıza göre kök nedeni giderin.
Süreç normal çalışıyorsa iş yükü ihtiyaçlarınıza göre podun bellek sınırını artırın. Bir podun gerçek bellek kullanımının bellek sınırının %80'ini aşmamasını öneririz. Daha fazla bilgi için bkz. Podları yönetme.