Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengambil log node untuk node terkelola menggunakan kubectl dan S3
Pelajari cara mengambil log node untuk node terkelola Amazon EKS yang memiliki agen pemantauan node.
Prasyarat
Pastikan Anda memiliki yang berikut:
-
Cluster Amazon EKS yang ada dengan agen pemantauan node. Untuk informasi selengkapnya, lihat Aktifkan perbaikan otomatis node dan selidiki masalah kesehatan node.
-
Alat
kubectlbaris perintah diinstal dan dikonfigurasi untuk berkomunikasi dengan cluster Anda. -
AWS CLI diinstal dan masuk dengan izin yang cukup untuk membuat bucket dan objek S3.
-
Versi terbaru dari Python 3 diinstal
-
AWS SDK untuk Python 3, Boto 3, diinstal.
Langkah 1: Buat tujuan bucket S3 (opsional)
Jika Anda belum memiliki ember S3 untuk menyimpan log, buat satu. Gunakan perintah AWS CLI berikut. Bucket default ke daftar kontrol private akses. Ganti bucket-name dengan nama bucket unik pilihan Anda.
aws s3api create-bucket --bucketbucket-name
Langkah 2: Buat URL S3 yang telah ditandatangani sebelumnya untuk HTTP Put
Amazon EKS mengembalikan log node dengan melakukan operasi HTTP PUT ke URL yang Anda tentukan. Dalam tutorial ini, kita akan menghasilkan URL PUT HTTP S3 yang telah ditandatangani sebelumnya.
Log akan dikembalikan sebagai tarball gzip, dengan ekstensi. .tar.gz
catatan
Anda harus menggunakan AWS API atau SDK untuk membuat URL unggahan S3 yang telah ditandatangani sebelumnya untuk EKS untuk mengunggah file log. Anda tidak dapat membuat URL unggahan S3 yang telah ditandatangani sebelumnya menggunakan CLI AWS .
-
Tentukan di mana dalam ember Anda ingin menyimpan log. Misalnya, Anda dapat menggunakan
2024-11-12/logs1.tar.gzsebagai kunci. -
Simpan kode Python berikut ke file.
presign-upload.pyGanti<bucket-name>dan<key>. Kuncinya harus diakhiri dengan.tar.gz.import boto3; print(boto3.client('s3').generate_presigned_url( ClientMethod='put_object', Params={'Bucket': '<bucket-name>', 'Key': '<key>'}, ExpiresIn=1000 )) -
Jalankan skrip dengan
python presign-upload.py -
Perhatikan output URL. Gunakan nilai ini di langkah berikutnya sebagai
http-put-destination.
Untuk informasi selengkapnya, lihat Menghasilkan URL yang telah ditetapkan sebelumnya untuk mengunggah file
Langkah 3: Buat NodeDiagnostic sumber daya
Identifikasi nama node tempat Anda ingin mengumpulkan log dari.
Buat NodeDiagnostic manifes yang menggunakan nama node sebagai nama sumber daya, dan berikan tujuan URL PUT HTTP.
apiVersion: eks.amazonaws.com/v1alpha1 kind: NodeDiagnostic metadata: name:node-namespec: logCapture: destination:http-put-destination
Menerapkan manifes ke klaster.
kubectl apply -f nodediagnostic.yaml
Anda dapat memeriksa Status koleksi dengan menjelaskan NodeDiagnostic sumber daya:
-
Status
SuccessatauSuccessWithErrorsmenunjukkan bahwa tugas selesai dan log yang diunggah ke tujuan yang disediakan (SuccessWithErrorsmenunjukkan bahwa beberapa log mungkin hilang) -
Jika statusnya Gagal, konfirmasikan URL unggahan sudah terbentuk dengan baik dan tidak kedaluwarsa.
kubectl describe nodediagnostics.eks.amazonaws.com/node-name
Langkah 4: Unduh log dari S3
Tunggu sekitar satu menit sebelum mencoba mengunduh log. Kemudian, gunakan S3 CLI untuk mengunduh log.
# Once NodeDiagnostic shows Success status, download the logs aws s3 cp s3://bucket-name/key./node-logs.tar.gz
Langkah 5: Bersihkan NodeDiagnostic sumber daya
-
NodeDiagnosticsumber daya tidak dihapus secara otomatis. Anda harus membersihkannya sendiri setelah Anda mendapatkan artefak log Anda
# Delete the NodeDiagnostic resource kubectl delete nodediagnostics.eks.amazonaws.com/node-name