AKS kümesindeki bir Windows düğümünden Windows kapsayıcı döküm dosyası yakalama
Microsoft Azure Kubernetes Service (AKS) kümesinde bir Windows kapsayıcısı başarısız olursa, kök nedeni araştırmak için Windows kapsayıcı döküm dosyasını incelemeniz gerekebilir. Bu makale, AKS kümesindeki bir Windows düğümünden Windows kapsayıcı dökümü dosyasını yakalama adımlarını sağlar. Ayrıca, daha fazla analiz için döküm dosyasını yerel bilgisayarınıza indirme yönergelerini de içerir.
Önkoşullar
Aks kümesi. AKS kümeniz yoksa Azure CLI kullanarak veya Azure portal aracılığıylabir küme oluşturun.
Sonrasında oluşturulan
3/13/2024
Windows aracısı havuzları veya AKS Windows görüntü sürümüne veya sonraki bir sürüme20240316
yükseltilen bir düğüm görüntüsü. Alternatif olarak, WindowsCSEScriptsPackage sürümünün windows düğümlerinde bulunabilenC:\AzureData\CustomDataSetupScript.log
v0.0.39 veya daha yeni olup olmadığını doğrulayın.
1. Adım: Dağıtımınıza ek açıklamalar meta verileri ekleme
Kapsayıcıya bir konak klasörü bağlayın ve Windows kapsayıcısının döküm dosyasını belirlenen bir klasörde depolamasını istemek için ek açıklamalar meta verilerini ekleyin:
metadata:
...
annotations:
"io.microsoft.container.processdumplocation": "C:\\CrashDumps\\{container_id}"
"io.microsoft.wcow.processdumptype": "mini"
"io.microsoft.wcow.processdumpcount": "10"
spec:
...
containers:
- name: containername
image: ...
...
volumeMounts:
- mountPath: C:\CrashDumps
name: local-dumps
volumes:
- name: local-dumps
hostPath:
path: C:\k\containerdumps
type: DirectoryOrCreate
2. Adım: Sorunu yeniden oluşturma
Dağıtımınızı yeniden dağıtın ve Windows kapsayıcısının başarısız olmasını bekleyin. Podu barındıran AKS Windows düğümünü öğrenmek için kullanabilirsiniz kubectl describe pod -n [POD-NAMESPACE] [POD-NAME]
.
3. Adım: Windows düğümüne bağlanma
AKS kümesi düğümüne bağlantı kurun. Bir Uzak Masaüstü Protokolü (RDP) bağlantısında Secure Shell (SSH) anahtarı veya Windows yönetici parolası kullanarak kimlik doğrulaması yaparsınız. Her iki yöntem de ara bağlantı oluşturmanızı gerektirir. Bunun nedeni şu anda AKS Windows düğümüne doğrudan bağlanamamanızdır. İster SSH ister RDP aracılığıyla bir düğüme bağlanın, AKS düğümleri için kullanıcı adını belirtmeniz gerekir. Varsayılan olarak, bu kullanıcı adı şeklindedir azureuser
.
SSH anahtarınız varsa Windows düğümüne bir SSH bağlantısı oluşturun. SSH anahtarı AKS düğümlerinizde kalıcı olmaz. SSH anahtarı, aşağıdaki eylemlerden herhangi biri sırasında başlangıçta kümeye yüklenene geri döner:
- Yeniden başlatma
- Sürüm yükseltme
- Düğüm görüntüsü yükseltme
4. Adım: Döküm dosyasını yerel olarak aktarma
Kapsayıcı başarısız olduktan sonra, döküm dosyasını yerel olarak kopyalayabilmeniz için yardımcı podu tanımlayın. İkinci bir konsol açın ve komutunu aşağıdaki gibi çalıştırarak kubectl get pods
podların listesini alın:
kubectl get pods
NAME READY STATUS RESTARTS AGE
azure-vote-back-6c4dd64bdf-m4nk7 1/1 Running 2 3d21h
azure-vote-front-85b4df594d-jhpzw 1/1 Running 2 3d21h
node-debugger-aks-nodepool1-38878740-vmss000000-6ztp6 1/1 Running 0 3m58s
Yardımcı podunun, üçüncü satırda gösterildiği gibi ön eki node-debugger-aks
vardır. Pod adını değiştirin ve kapsayıcı başarısız olduğunda kaydedilen döküm dosyalarını (.dmp) almak için aşağıdaki Güvenli Kopya (scp) komutlarını çalıştırın:
scp -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.240.0.97:/C:/k/containerdumps/{container_id}/{application}.dmp .
Windows düğümüne C:\k\containerdumps
bağlantı yapıldıktan sonra döküm dosyalarının tam yolunu bulmak için klasörü listeleyebilirsiniz.
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.