Pod zamanlama hatalarını, görüntü çekme hatalarını, başlatma çökmelerini, OOM sonlandırmalarını ve çalışma zamanı sorunlarını çözün.
Konsol tabanlı sorun giderme (pod durumunu, olayları ve günlükleri görüntüleme; terminallere erişme ve tanılama çalıştırma) için bkz. Yaygın Sorun Giderme Yordamları.
Hızlı tanılama yordamı
Anormal bir pod'u tanılamak için hedef Pods ayrıntılar sayfasına gidin. Anormal olayların açıklamalarını incelemek üzere Events sekmesine tıklayın. Ardından, son anormal günlükleri kontrol etmek için Logs sekmesine tıklayın.
Pending durumunda olan Pod
Bir Pod'un Status Details bölümünde Unschedulable durumu varsa veya Events bölümünde FailedScheduling olayı görünüyorsa, düğüm sağlığını ve kaynak düzeylerini (CPU ve bellek) kontrol etmek için yolunu izleyin. Ayrıca pod'un affinity kurallarının — nodeSelector, nodeAffinity ve tolerasyonlar — aşırı kısıtlayıcı olup olmadığını denetleyin. Bkz. Zamanlama sorunları.
Görüntü çekme hatası (ImagePullBackOff/ErrImagePull)
Pods ayrıntılar sayfasında Container sekmesine gidin ve Image adresini kontrol edin. Pod'un çalıştığı düğüme bağlanın ve görüntü deposuna ağ bağlantısını doğrulamak için crictl pull <image-address> veya curl -v https://<image-address> komutunu çalıştırın. Sağ üst köşede Edit YAML öğesine tıklayın ve iş yükünün spec.imagePullSecrets alanında belirtilen Secret'ın var olduğunu ve geçerli olduğunu doğrulayın. Daha fazla sorun giderme için bkz. görüntü çekme sorunları.
Pod başlatılamıyor (CrashLoopBackOff)
Uygulama tekrar tekrar çöker ve yeniden başlar. Pods ayrıntılar sayfasında Logs sekmesine tıklayın ve hatanın nedenini görüntülemek için Show the log of the last container exit seçeneğini belirleyin. Daha fazla sorun giderme için bkz. Pod başlatma hatalarını giderme.
Pod Running durumda ancak hazır değil
Pod'un hazırlık probu başarısız oldu. Hedef Edit kaynağının Workloads sayfasında sağlık kontrolü istek yolunun (örneğin, /healthz) ve bağlantı noktasının uygulama tarafından sunulanlarla eşleştiğini doğrulayın. Daha fazla sorun giderme için bkz. Pod Running durumunda ancak hazır değil (Ready: False).
Sağlık kontrolünü geçici olarak devre dışı bırakın, ardından uç noktanın doğru yanıt verdiğini doğrulamak için pod terminalinden veya ana makine düğümünden curl komutunu kullanın.
Pod OOMKilled durumunda
Pods ayrıntılar sayfasında Logs sekmesine tıklayın ve OOM günlüklerini görüntülemek için Show the log of the last container exit seçeneğini belirleyin. Uygulamada bellek sızıntısı veya yetersiz bellek (OOM) hatası olup olmadığını kontrol edin. Java uygulamaları için -Xmx parametresini optimize edebilirsiniz. Gerektiğinde uygulamanın bellek kaynak sınırını (resources.limits.memory) ayarlayın. Daha fazla sorun giderme için bkz. OOMKilled.
Bir liveness probu yapılandırılmışsa, pod yalnızca kısa bir süre OOMKilled durumunda kalır ve ardından otomatik olarak yeniden başlar.
Tanılama iş akışı
Anormal bir pod'u tanılamak için olaylarını, günlüklerini ve yapılandırmasını inceleyin.
Aşama 1: Zamanlama sorunları
Pod bir düğüme zamanlanmıyor
Bir pod uzun bir süre Pending durumunda kalıyorsa, bir düğüme zamanlanmamış demektir.
Hata mesajı | Açıklama | Çözüm |
| Kümede pod zamanlaması için kullanılabilir düğüm yok. |
|
| Kümede, pod'un CPU veya bellek kaynak isteklerini karşılayabilecek kullanılabilir düğüm yok. Gerçek kullanım düşük olsa bile, toplam tahsis edilen | Hedef kümenin ayrıntılar sayfasında yolunu izleyin ve hedef düğüm için CPU veya bellek requests tahsis oranını kontrol edin. Belirli kaynak tahsis değerlerini görüntülemek için tahsis oranının üzerine gelin.
Ayrıntılı düğüm kaynak kullanımını görüntülemek için bkz. kubectl kullanarak düğüm kaynak kullanımını görüntüleme.
|
| Mevcut düğümler, pod'un düğüm affinity ilkesiyle ( |
|
|
|
|
| Birim düğüm affinity çakışması nedeniyle zamanlama başarısız olur. Bu genellikle bir cloud diskin farklı alanlar arasında bağlanamamasından kaynaklanır. |
|
| ECS örneği, belirtilen cloud disk türünü desteklemiyor. | ECS örneğiniz tarafından desteklenen cloud disk türlerini doğrulamak için bkz. Örnek aileleri. Bağlama sırasında, cloud disk türünü ECS örneği tarafından desteklenen bir türle güncelleyin. |
| Pod, düğümün taint'lerinden biri için tolerans içermediğinden bir düğüme zamanlanamıyor. |
|
| Düğümde yeterli geçici depolama alanı yok. |
|
| Pod, kalıcı birim talebini (PVC) bağlayamadı. | Pod tarafından belirtilen PVC veya PV'nin oluşturulup oluşturulmadığını kontrol edin. Daha fazla tanılama için PVC ve PV olaylarını görüntülemek üzere |
Pod zamanlandı ancak Pending durumunda kaldı
Bir pod zamanlandıysa ancak Pending durumunda kaldıysa aşağıdaki adımları izleyin.
-
Bir pod
hostPortkullanıyorsa, düğüm başına yalnızca buhostPortdeğerine sahip bir pod çalışabilir; bu nedenlehostPortdeğeri,Replicassayısını düğüm sayısıyla sınırlar. Bağlantı noktası zaten kullanılıyorsa, zamanlama başarısız olur.hostPortkullanımı, zamanlama karmaşıklığını artırır. Bunun yerine pod'ları ortaya çıkarmak için bir Service kullanın. -
Pod
hostPortile yapılandırılmamışsa, sorunları gidermek için aşağıdaki adımları izleyin.kubectl describe pod <pod-name>komutuyla pod'un olaylarını görüntüleyin. Yaygın nedenler arasında görüntü çekme hataları, yetersiz kaynaklar, güvenlik ilkesi kısıtlamaları ve yapılandırma hataları bulunur.Kullanışlı olay bulunamazsa, düğümdeki kubelet günlüklerini
grep -i <pod name> /var/log/messages* | lesskomutuyla kontrol edin.
Aşama 2: Görüntü çekme sorunları
ImagePullBackOff veya ErrImagePull
Bir pod durumunun ImagePullBackOff veya ErrImagePull olması, görüntü çekmenin başarısız olduğunu gösterir. Nedeni belirlemek için pod olaylarını inceleyin.
Hata mesajı | Açıklama | Önerilen çözüm |
| Pod oluşturulurken bir | İş yükünün YAML dosyasındaki ACR kullanırken, parola olmadan görüntüleri çekmek için bir kimlik bilgisi yardımcısı kullanın. Bkz. Aynı hesaptan görüntüleri çekme. |
| HTTPS üzerinden görüntü çekerken görüntü deposu adresi çözümlenemedi. |
|
| Düğümde yeterli disk alanı yok. | Düğüme bağlanın (bkz. ECS uzaktan bağlantı yöntemi seçme) ve disk alanını kontrol etmek için |
| Üçüncü taraf görüntü deposu, bilinmeyen veya güvenli olmayan bir Sertifika Yetkilisi (CA) tarafından imzalanmış bir sertifika kullanıyor. |
|
| İşlem iptal edildi; bu durum muhtemelen görüntü dosyasının çok büyük olmasından kaynaklanır. Kubernetes'in görüntüleri çekmek için varsayılan bir zaman aşımı süresi vardır. Çekme işlemi belirli bir süre boyunca ilerleme kaydetmezse, Kubernetes işlemin başarısız olduğunu veya yanıt vermediğini varsayar ve görevi iptal eder. |
|
| Ağ sorunları nedeniyle görüntü deposuna bağlanılamıyor. |
|
| Denizaşırı bir depodan görüntü çekerken ağ sorunları nedeniyle bağlantı zaman aşımına uğradı. | Docker Hub gibi denizaşırı depolardan görüntü çekmek, taşıyıcı ağlarının kararsızlığı nedeniyle ACK kümelerinde başarısız olabilir. Bu sorunu çözmek için aşağıdaki çözümleri düşünün:
|
| Docker Hub, görüntü çekme isteklerine oran sınırlamaları uygular. | Görüntüyü Container Registry (ACR) adresine yükleyin ve bir ACR görüntü deposundan çekin. |
| Kubelet'in görüntü çekme oranı sınırlama mekanizması tetiklenmiş olabilir. | Düğüm havuzu kubelet yapılandırmalarını özelleştirme özelliğini kullanarak |
Aşama 3: Başlatma sorunları
Pod Init durumunda
Hata mesajı | Açıklama | Çözüm |
| Pod'da M init konteyneri bulunur; N tanesi tamamlandı, ancak kalan M-N tanesi başlatılamadı. |
Bkz. Debug init containers. |
| Pod'daki bir init konteyneri başlatılamadı. | |
| Pod'daki bir init konteyneri başlatılamadı ve yeniden başlatma döngüsünde. |
Pod Creating durumunda
Hata mesajı | Açıklama | Çözüm |
| Bu durum, Flannel ağ eklentisinin tasarımı nedeniyle beklenen bir davranıştır. | Flannel bileşenini v0.15.1.11-7e95fe23-aliyun veya üzeri bir sürüme yükseltin. Bkz. Flannel. |
Kubernetes 1.20'den önceki bir sürümü çalıştıran kümelerde, bir pod tekrar tekrar yeniden başlatılırsa veya bir CronJob'a ait pod'lar görevlerini tamamlayıp hızlı bir şekilde çıkarsa IP adresi sızıntısı meydana gelebilir. | Kümeyi Kubernetes 1.20 veya üzeri bir sürüme (en son sürüm önerilir) yükseltin. Bkz. Kümeyi manuel olarak yükseltme. | |
Bu sorun, containerd ve runC'deki hatalardan kaynaklanır. | Acil düzeltme için bkz. Pod'um neden "no IP addresses available in range" hatasıyla başlatılamıyor? | |
| Terway ağ eklentisi, esnek ağ arayüzlerini (ENI'ler) izlemek ve yönetmek için düğümde dahili bir veritabanı tutar. Veritabanı durumu gerçek ağ cihazı yapılandırmasıyla tutarsız olduğunda bu hata oluşur ve ENI tahsisi başarısız olur. |
|
| Terway ağ eklentisi, vSwitch'ten bir IP adresi isteyememiş olabilir. |
|
Pod başlatılamıyor (CrashLoopBackOff)
Hata mesajı | Açıklama | Çözüm |
Günlükte |
| |
Pod'un olaylarında | Liveness probu başarısız oldu ve uygulamanın yeniden başlatılmasına neden oldu. |
|
Pod'un olaylarında | Startup probu başarısız oldu ve uygulamanın yeniden başlatılmasına neden oldu. |
|
Pod günlüğünde | Yetersiz cloud disk alanı. |
|
Olay bilgisi olmadan başlatma başarısız oluyor. | Bu sorun, bir konteynerin bildirilen sınırlarından daha fazla kaynak gerektirdiğinde ve bu nedenle başarısız olduğunda ortaya çıkar. | Pod'un kaynak yapılandırmasının doğru olup olmadığını kontrol edin. Konteyner için önerilen Request ve Limit yapılandırmalarını almak için kaynak profil oluşturma özelliğini etkinleştirebilirsiniz. |
Pod günlüğünde | Aynı pod içindeki konteynerler arasında bir bağlantı noktası çakışması var. |
|
Pod günlüğünde | İş yükü bir Secret'ı bağlar ancak Secret'taki değer Base64 kodlu değildir. |
|
Uygulamaya özel sorun. | Sorunu gidermek için pod günlüklerini inceleyin. | |
Pod Running durumunda ancak hazır değil (Ready: False)
Hata mesajı | Açıklama | Çözüm |
| Hazırlık probu başarısız oldu ve hedef pod'un trafik almasını engelledi. |
|
Pod durumu yukarıdakiyle aynı. Pod'un olaylarında | Başarısız bir startup probu, konteynerin yeniden başlatılmasına neden olur. Bu hata, kalıcı bir Running/NotReady durumu yerine 'CrashLoopBackOff' durumuyla sonuçlanmalıdır. | Startup probu için "Pod başlatılamıyor (CrashLoopBackOff)" bölümünde açıklandığı gibi bu sorunu giderin. |
Aşama 4: Pod çalışma zamanı sorunları
OOMKilled
Bir konteyner bellek sınırını aştığında, OOM kill işlemi tarafından sonlandırılır. Bkz. Assign Memory Resources to Containers and Pods.
Sonlandırılan işlem konteynerin ana işlemiyse, konteyner beklenmedik şekilde yeniden başlayabilir.
Bir OOM olayı gerçekleştiğinde, konsoldaki pod ayrıntılar sayfasının Events sekmesinde
pod was OOM killed. node:XXX pod:XXX namespace:XXXgibi bir ileti görünür.OOM bildirimleri almak için bir konteyner çoğaltma istisna uyarısı yapılandırın.
OOM düzeyi | Açıklama | Önerilen çözüm |
İşletim sistemi düzeyi | Pod'un düğümünde |
|
cgroup düzeyi | Pod'un düğümünde |
|
Terminating
Olası neden | Açıklama | Önerilen çözüm |
Düğüm NotReady durumundadır. | Düğüm NotReady durumundan kurtulduktan sonra pod otomatik olarak silinir. | |
Pod finalizer'larla yapılandırılmış. | Bir pod finalizer'larla yapılandırılmışsa, Kubernetes pod'u silmeden önce finalizer'lar tarafından belirtilen temizleme işlemlerini gerçekleştirir. Bir temizleme işlemi yanıt veremezse, pod Terminating durumunda kalır. |
|
Pod'un preStop hook'u geçersiz veya takılı. | Pod için bir preStop hook yapılandırılmışsa, Kubernetes konteyneri sonlandırmadan önce hook'u yürütür. Hook çalışırken pod Terminating durumunda kalır. |
|
Pod için zarif kapatma süresi yapılandırılmış. | Bir Pod zarif kapatma süresi ( | Kubernetes, konteyner zarif bir şekilde kapandıktan sonra pod'u otomatik olarak siler. |
Konteyner yanıt vermiyor. | Bir pod'u durdurmayı veya silmeyi istediğinizde, Kubernetes pod içindeki konteynerlere bir |
|
Evicted
Olası neden | Açıklama | Önerilen çözüm |
Düğüm, bellek veya disk kullanımı gibi faktörlerden kaynaklanan kaynak baskısı altında. | Düğüm bellek baskısı, disk baskısı veya PID baskısı yaşıyor olabilir.
|
|
Beklenmedik bir tahliye gerçekleşiyor. | Pod'un düğümüne manuel olarak eklenen bir NoExecute taint'i, beklenmedik bir tahliyeye neden oldu. |
|
Tahliye beklendiği gibi ilerlemiyor. |
| Küçük bir kümede (50 düğüm veya daha az), düğümlerin %55'inden fazlası başarısız olursa pod tahliyesi durur. Bkz. Rate limits on eviction. |
Büyük bir kümede (50'den fazla düğüm), sağlıksız düğümlerin oranı | ||
Bir pod, tahliye edildikten sonra sık sık orijinal düğümüne yeniden zamanlanıyor. | Kubelet, pod'ları gerçek kaynak kullanımına göre tahliye ederken, zamanlayıcı pod'ları kaynak isteklerine göre yerleştirir. Tahliye kaynakları serbest bıraktığından, istekleri hala uyuyorsa zamanlayıcı bir pod'u aynı düğüme yeniden zamanlayabilir. | Pod'un kaynak isteklerini düğümün atanabilir kaynaklarına uyacak şekilde ayarlayın. Bkz. Bir konteyner için CPU ve bellek kaynaklarını ayarlama. Önerilen istek ve sınır değerlerini almak için kaynak profil oluşturma özelliğini etkinleştirin. |
Completed
Tüm konteynerler başarıyla çıktı. Bu durum, job'lar ve init konteynerleri için yaygındır.
SSS
Pod çalışıyor ancak işlev görmüyor
YAML hataları, bir pod'un Running durumuna girmesine ancak işlev görmemesine neden olabilir.
Pod'un yapılandırmasındaki konteyner ayarlarını doğrulayın.
-
YAML yapılandırmanızda yazım hataları olup olmadığını kontrol etmek için aşağıdaki yöntemleri kullanın.
Bir YAML anahtarı yanlış yazılırsa (örneğin,
commandyerinecommnd), küme kaynağı hatasız oluşturur ancak çalışma zamanında yanlış yazılan anahtarı yürütemez.Aşağıdaki örnekte,
commandifadesicommndolarak yanlış yazılmıştır; yazım sorunlarını nasıl gidereceğinizi açıklar.-
kubectl apply -fkomutuna--validateekleyin vekubectl apply --validate -f XXX.yamlkomutunu çalıştırın.Bir kelimeyi yanlış yazarsanız, şu hata rapor edilir:
XXX] unknown field: commnd XXX] this may be a false alarm, see https://gXXXb.XXX/6842pods/test. -
Çıktı
pod.yamldosyasını, pod'u oluşturmak için kullanılan orijinal YAML dosyasıyla karşılaştırın.Not[$Pod]ifadesi,kubectl get podskomutunu çalıştırarak alabileceğiniz anormal Pod'un adıdır.kubectl get pods [$Pod] -o yaml > pod.yamlpod.yamldosyası orijinal dosyadan daha fazla satır içeriyorsa, pod beklendiği gibi oluşturulmuş ve küme varsayılan değerler eklemiştir.Orijinal YAML dosyanızdan satırlar
pod.yamldosyasında eksikse, bu durum orijinal dosyanızda bir yazım hatası olduğunu gösterir.
-
Sorunu gidermek için pod'un günlüklerini kontrol edin.
Bir terminal aracılığıyla konteynere erişin ve konteyner içindeki yerel dosyaların beklendiği gibi olduğunu doğrulayın.
kubectl ile düğüm kaynak kullanımını kontrol etme
-
Kümedeki tüm düğümlerin CPU ve bellek kullanımını kontrol edin.
kubectl describe nodes | awk '/^Name:/{print "\n"$2} /Resource +Requests +Limits/{print $0} /^[ \t]+cpu.*%/{print $0} /^[ \t]+memory.*%/{print $0}'Beklenen çıktı:
cn-hangzhou.192.168.0.xxx Resource Requests Limits cpu 1725m (44%) 10320m (263%) memory 1750Mi (11%) 16044Mi (109%) cn-hangzhou.192.168.16.xxx Resource Requests Limits cpu 1885m (48%) 16820m (429%) memory 2536Mi (17%) 25760Mi (179%)Yüksek istek utilization'ına sahip bir düğüm, yeni bir Pod'un
requestsdeğerlerini karşılayamayabilir ve Pod'un zamanlanmasını engelleyebilir. -
Düğümdeki tüm Pod'ların kaynak kullanımını görüntülemek için
YOUR_NODE_NAMEifadesini gerçek düğüm adıyla değiştirin.kubectl describe node YOUR_NODE_NAME | awk '/Non-terminated Pods/,/Allocated resources/{ if ($0 !~ /Allocated resources/) print }'Beklenen çıktı:
Non-terminated Pods: (11 in total) Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age --------- ---- ------------ ---------- --------------- ------------- --- arms-prom node-exporter-gp95p 20m (0%) 1020m (26%) 160Mi (1%) 1152Mi (7%) 6d21h csdr csdr-velero-77c8bbc9c7-w46lq 500m (12%) 1 (25%) 128Mi (0%) 2Gi (13%) 6d19h kube-system ack-cost-exporter-5b647ffc65-zdrsl 100m (2%) 1 (25%) 200Mi (1%) 1Gi (6%) 6d21h kube-system ack-node-local-dns-admission-controller-5dfd74f5f4-9rl6n 100m (2%) 1 (25%) 100Mi (0%) 1Gi (6%) 6d21h kube-system ack-node-problem-detector-daemonset-6wql2 200m (5%) 1200m (30%) 300Mi (2%) 1324Mi (9%) 6d21h kube-system coredns-7784559f6-dr9sn 100m (2%) 0 (0%) 100Mi (0%) 2Gi (13%) 6d21h kube-system csi-plugin-knz7j 130m (3%) 2 (51%) 176Mi (1%) 4Gi (27%) 6d21h kube-system kube-proxy-worker-rkbzv 100m (2%) 0 (0%) 100Mi (0%) 0 (0%) 6d21h kube-system loongcollector-ds-kw7cj 100m (2%) 2 (51%) 256Mi (1%) 2Gi (13%) 6d21h kube-system node-local-dns-pgzcn 25m (0%) 0 (0%) 30Mi (0%) 1Gi (6%) 6d21h kube-system terway-eniip-lnn8n 350m (8%) 1100m (28%) 200Mi (1%) 256Mi (1%) 6d21hGerçek kaynak tüketimine göre
requestsyapılandırmasını ayarlayabilirsiniz.
Pod'lardan veritabanlarına aralıklı ağ kesintileri
Bir pod veritabanından aralıklı olarak bağlantı kesiyorsa aşağıdaki adımları izleyin.
1. Pod'u kontrol etme
Bağlantı kararlılığı belirtileri (ağ sorunları, yeniden başlatmalar veya yetersiz kaynaklar gibi) için pod'un olaylarını kontrol edin.
Veritabanı bağlantısıyla ilgili hata mesajları (zaman aşımları, kimlik doğrulama hataları veya yeniden bağlanma tetikleyicileri gibi) için pod'un günlüklerini kontrol edin.
Kaynak tükenmesinin uygulama veya veritabanı sürücüsünün çökmesine neden olmadığından emin olmak için pod'un CPU ve bellek kullanımını izleyin.
Yeterli CPU ve belleğe sahip olduğundan emin olmak için pod'un
requestsvelimitskaynak değerlerini gözden geçirin.
2. Düğümü kontrol etme
Düğümde kaynak kıtlığı (bellek, disk) olup olmadığını kontrol edin. Bkz. Düğümleri izleme.
Düğüm ile hedef veritabanı arasında aralıklı ağ kesintileri olup olmadığını test edin.
3. Veritabanını kontrol etme
Herhangi bir yeniden başlatma veya performans darboğazı olup olmadığını görmek için veritabanının durumunu ve performans ölçümlerini kontrol edin.
Anormal bağlantı sayısını ve bağlantı zaman aşımı ayarlarını gözden geçirin ve uygulamanızın gereksinimlerine göre bunları ayarlayın.
Bağlantı kesilmeleriyle ilgili kayıtlar için veritabanı günlüklerini inceleyin.
4. Küme bileşeni durumunu kontrol etme
Arızalı küme bileşenleri, bir pod'un ağ iletişimini bozabilir.
kubectl get pod -n kube-system # Check the status of component pods.
Ayrıca aşağıdaki ağ bileşenlerini kontrol edin:
CoreDNS: Pod'un veritabanı hizmeti adresini doğru şekilde çözümleyebilmesini sağlamak için bileşenin durumunu ve günlüklerini kontrol edin.
Flannel: kube-flannel bileşeninin durumunu ve günlüklerini kontrol edin.
Terway: terway-eniip bileşeninin durumunu ve günlüklerini kontrol edin.
5. Ağ trafiğini analiz etme
Sorunun nedenini belirlemenize yardımcı olmak için paketleri yakalamak ve ağ trafiğini analiz etmek amacıyla tcpdump kullanabilirsiniz.
-
Pod ve düğüm bilgilerini alma:
Belirli bir ad alanındaki pod'ları ve düğümlerini listeleme:
kubectl get pod -n [namespace] -o wide -
Hedef düğüme bağlanın ve konteyner PID'sini bulmak için aşağıdaki komutları çalıştırın.
Containerd
-
CONTAINERdeğerini görüntüleyin.crictl ps |grep <Pod name keyword>Beklenen çıktı:
CONTAINER IMAGE CREATED STATE a1a214d2***** 35d28df4***** 2 days ago Running -
CONTAINER IDkullanarak konteyner PID'sini görüntüleyin.crictl inspect a1a214d2***** |grep -i PIDBeklenen çıktı:
"pid": 2309838, # The PID of the target container. "pid": 1 "type": "pid"
Docker
-
Konteynerin
CONTAINER IDdeğerini görüntüleyin.docker ps |grep <pod name keyword>Beklenen çıktı:
CONTAINER ID IMAGE COMMAND a1a214d2***** 35d28df4***** "/nginx -
CONTAINER IDkullanarak konteyner PID'sini görüntüleyin.docker inspect a1a214d2***** |grep -i PIDBeklenen çıktı:
"Pid": 2309838, # The PID of the target container. "PidMode": "", "PidsLimit": null,
-
-
Paketleri yakalama.
Konteyner PID'sini kullanarak pod ile hedef veritabanı arasındaki ağ paketlerini yakalayın.
nsenter -t <container PID> tcpdump -i any -n -s 0 tcp and host <database IP address>Konteyner PID'sini kullanarak pod ile ana makine arasındaki ağ paketlerini yakalayın.
nsenter -t <container PID> tcpdump -i any -n -s 0 tcp and host <node IP address>Ana makine ile veritabanı arasındaki ağ paketlerini yakalayın.
tcpdump -i any -n -s 0 tcp and host <database IP address>
6. Uygulamayı optimize etme
Uygulamanızda otomatik yeniden bağlanma mekanizması uygulayarak, veritabanı anahtarlama veya geçiş sırasında bağlantıları otomatik olarak restore edebilmesini sağlayın.
Veritabanıyla iletişim kurmak için kısa ömürlü bağlantılar yerine kalıcı bağlantılar kullanın. Kalıcı bağlantılar, performans yükünü ve kaynak tüketimini önemli ölçüde azaltarak genel sistem verimliliğini artırabilir.
Konsol sorun giderme
ACK konsoluna bağlanın ve Pod sorunlarını gidermek için kümenizin ayrıntılar sayfasına gidin.
Eylemler | Konsol |
Bir Pod'un durumunu kontrol etme |
|
Bir Pod'un temel bilgilerini kontrol etme |
|
Bir Pod'un yapılandırmasını kontrol etme |
|
Bir Pod'un olaylarını kontrol etme |
|
Bir Pod'un günlüklerini görüntüleme |
Not ACK, konteyner günlüğü toplama için Simple Log Service (SLS) ile entegre edilmiştir. Bkz. ACK kümesinden konteyner günlüklerini toplama. |
Bir Pod'un izleme verilerini kontrol etme |
Not ACK, gerçek zamanlı küme ve konteyner izleme için Managed Service for Prometheus ile entegre edilmiştir. Bkz. Managed Service for Prometheus yapılandırma. |
Yerel dosyaları görüntülemek için bir terminal kullanarak konteynere erişme |
|
Pod tanılama çalıştırma |
Not Container Intelligent Service tek tıkla tanılama sağlar. Bkz. Küme tanılama kullanma. |
Beklenmedik Pod silme işlemi
kube-controller-manager (KCM), Completed durumundaki pod'ların sayısı varsayılan 12.500 eşiğini aştığında bunları çöp toplar. --terminated-pod-gc-threshold parametresi bu eşiği yapılandırır. Bkz. KCM parametre belgelendirmesi.
Öneri: Denetleyici verimliliğini etkilememeleri için Completed pod'larını periyodik olarak temizleyin.

> Containerd Configuration seçeneğini belirleyin.
Pod'un olaylarında