Aracılığıyla paylaş


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üme 20240316 yükseltilen bir düğüm görüntüsü. Alternatif olarak, WindowsCSEScriptsPackage sürümünün windows düğümlerinde bulunabilen C:\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-aksvardı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.