Memecahkan masalah node pool Windows Server

Saat menjalankan node pool Windows Server di Google Kubernetes Engine (GKE), Anda mungkin mengalami masalah seperti Pod yang gagal dimulai, error saat menarik image container Windows, masalah konektivitas jaringan, atau node yang gagal dimulai.

Gunakan dokumen ini untuk mendiagnosis dan menyelesaikan masalah umum ini serta memastikan aplikasi berbasis Windows Anda berjalan dengan andal.

Informasi ini penting bagi admin dan operator Platform yang mengelola cluster GKE dengan node pool Windows, dan bagi Developer aplikasi yang men-deploy dan menjalankan aplikasi berbasis Windows di GKE. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE umum.

Untuk panduan yang lebih umum, lihat dokumentasi Kubernetes tentang men-debug Pod dan Layanan.

Masalah node container

Untuk mengetahui informasi tentang cara mengatasi masalah jika Anda menggunakan image node containerd, lihat Masalah pada node pool Windows Server.

Windows Pod gagal dimulai

Inkompatibilitas antara image dasar dan versi OS host Windows Server dapat mencegah Pod dimulai.

Gejala

  • Windows Pod gagal dimulai.
  • Node melaporkan status NotReady.

Penyebab

Image container dibangun pada image Windows dasar yang lebih lama dan tidak kompatibel dengan versi Windows Server node host.

Resolusi

Bangun image container Anda dengan menggunakan image Windows dasar yang menyertakan Windows Update dari Maret 2020 atau yang lebih baru. Untuk mengetahui informasi selengkapnya tentang kompatibilitas container Microsoft, lihat dokumentasi Microsoft untuk masalah inkompatibilitas container Windows Server Februari 2020.

Error saat menarik image

Image container Windows Server sering kali jauh lebih besar daripada image Linux, yang dapat menyebabkan waktu tunggu habis.

Gejala

  • Pesan error seperti Failed to pull image atau context cancelled.
  • Pod menampilkan status ErrImagePull.

Penyebab

Image container Windows Server, dan setiap lapisan yang terdiri darinya, bisa berukuran besar. Ukurannya dapat menyebabkan agen kubelet habis waktu tunggunya dan gagal saat mendownload dan mengekstrak lapisan container.

Resolusi

Untuk mengatasi kegagalan penarikan image ini, coba solusi berikut:

  • Tingkatkan CPU node: ekstraksi container dijalankan secara paralel di seluruh core, sehingga jenis mesin dengan lebih banyak core akan mengurangi waktu pull secara keseluruhan.
  • Mengoptimalkan lapisan image: untuk meningkatkan cache lapisan Docker dan membuat percobaan ulang pull image lebih mungkin berhasil, bagi lapisan aplikasi Anda menjadi lapisan yang lebih kecil. Untuk mengetahui informasi selengkapnya, lihat Image dan lapisan dalam dokumentasi driver penyimpanan Docker.
  • Gunakan penarikan manual: hubungkan ke node Windows Server dan jalankan perintah docker pull secara manual pada image container sebelum membuat Pod.

Untuk saran yang lebih umum, lihat Memecahkan masalah penarikan image.

Kelompok image mencapai akhir siklus proses

GKE secara berkala menghentikan penggunaan family image Windows Server yang lebih lama saat dukungan vendor berakhir. Penghentian penggunaan ini memblokir pembuatan node pool dengan image tersebut.

Gejala

Saat membuat node pool dengan image Windows, Anda akan menerima error yang serupa dengan berikut:

WINDOWS_SAC image family for 1.18.20-gke.501 has reached end of life, newer
versions are still available.

Penyebab

Kelompok image Windows Server yang dipilih tidak lagi didukung di GKE.

Resolusi

Pilih image Windows yang tersedia dan didukung. Anda dapat menemukan tanggal akhir dukungan untuk image node Windows GKE menggunakan perintah gcloud container get-server-config seperti yang dijelaskan di bagian Memetakan versi GKE dan Windows.

Waktu tunggu selama pembuatan node pool

Menginisialisasi sejumlah besar node Windows Server secara bersamaan dapat menyebabkan waktu tunggu habis.

Gejala

Operasi pembuatan node pool kehabisan waktu sebelum selesai.

Penyebab

Waktu pembuatan node pool dapat habis jika Anda membuat node dalam jumlah besar (misalnya, 500) dan ini adalah node pool pertama di cluster yang menggunakan image Windows Server.

Resolusi

Kurangi jumlah node awal saat membuat node pool. Setelah node pool dibuat, Anda dapat menambah jumlah node.

Node Windows menjadi NotReady dengan error: PLEG is not healthy

Penjadwalan beberapa container Windows dengan cepat pada satu node dapat membebani Pod Lifecycle Event Generator (PLEG).

Gejala

  • Node Windows akan memasuki status NotReady.
  • Peristiwa atau log menampilkan pesan error PLEG is not healthy.

Penyebab

Masalah Kubernetes umum terjadi saat beberapa Pod dimulai dengan sangat cepat pada satu node Windows.

Resolusi

Untuk memulihkan dari kegagalan PLEG dan mencegahnya terjadi lagi:

  • Mulai ulang node Windows Server yang terpengaruh.
  • Batasi pembuatan Windows Pod menjadi tidak lebih dari satu Pod setiap 30 detik.

Tidak konsisten TerminationGracePeriod

Perbedaan antara timer penonaktifan container Windows dan setelan masa tenggang Kubernetes dapat menyebabkan container dihentikan secara tidak terduga.

Gejala

Container dihentikan secara paksa oleh Windows sebelum durasi yang dikonfigurasi di kolom TerminationGracePeriodSeconds berakhir.

Penyebab

Waktu tunggu sistem Windows internal untuk container berbeda dengan masa tenggang yang ditentukan dalam manifes Pod Kubernetes.

Resolusi

Ubah waktu tunggu container Windows dengan mengedit kunci registry lokal container pada waktu membangun image. Sesuaikan kolom TerminationGracePeriodSeconds dalam manifes Pod Anda.

Masalah konektivitas jaringan

Ketidakcocokan ukuran Unit Transmisi Maksimum (MTU) antara jaringan container Windows Server dan jaringan Google Cloud dapat menyebabkan paket dihapus.

Gejala

Aplikasi yang berjalan di dalam container Windows Server mengalami kegagalan konektivitas jaringan atau paket yang terputus.

Penyebab

Jaringan container Windows Server sering mengasumsikan MTU jaringan sebesar 1500, yang tidak kompatibel dengan MTU Google Cloudsebesar 1460.

Resolusi

Konfigurasi nilai MTU antarmuka jaringan container dan nilai MTU antarmuka jaringan node Windows Server ke 1460 atau lebih rendah. Untuk mengetahui informasi selengkapnya, lihat masalah umum untuk container Windows dalam dokumentasi Compute Engine.

Masalah startup node

Instance Windows Server baru dapat gagal menyelesaikan skrip inisialisasi atau mendaftar dengan bidang kontrol.

Gejala

Node Windows Server gagal diinisialisasi atau gagal bergabung dengan cluster.

Penyebab

Error selama inisialisasi node mencegah node dimulai atau bergabung dengan cluster.

Resolusi

Untuk mengidentifikasi error startup mana yang dapat menyebabkan masalah, tinjau output port serial node:

gcloud compute instances get-serial-port-output NODE_NAME \
    --zone=COMPUTE_ZONE

Ganti kode berikut:

Layanan yang sesekali tidak dapat dijangkau di node Windows dengan cluster yang menjalankan versi 1.24 atau yang lebih lama

Pada cluster yang menjalankan versi 1.24 atau yang lebih lama, memulai ulang komponen kube-proxy akan menyebabkan penundaan perutean jaringan sementara saat aturan Load Balancer (HNS) Layanan Jaringan Host diproses ulang.

Gejala

Layanan sesekali tidak dapat dijangkau dari Pod yang berjalan di node Windows.

Penyebab

Untuk cluster GKE yang menjalankan versi 1.24 atau yang lebih lama, jika peristiwa memulai ulang komponen kube-proxy pada node Windows—misalnya, startup node, upgrade node, atau mulai ulang manual—komponen harus menyinkronkan dan membuat ulang semua aturan Load Balancer HNS. Jika cluster memiliki banyak aturan ini, pemrosesannya dapat tertunda secara signifikan, hingga sekitar 30 detik per aturan. Selama penundaan sinkronisasi ini, Layanan sesekali tidak dapat dijangkau dari Pod yang berjalan di node tersebut. Untuk mengetahui informasi selengkapnya, lihat masalah asli di GitHub.

Resolusi

Upgrade bidang kontrol cluster Anda ke versi 1.25 atau yang lebih baru. Perilaku ini ditingkatkan secara signifikan di versi yang lebih baru, seperti yang dijelaskan dalam permintaan pull di GitHub.

Langkah berikutnya