Dalam kebanyakan kasus, Anda perlu mengonfigurasi kebijakan pengambilan kembali untuk alur kerja dan pod. Ini mencegah peningkatan linear sumber daya yang digunakan oleh bidang kontrol dan pengontrol alur kerja di kluster setelah alur kerja selesai. Akses ke log alur kerja diperlukan untuk analisis proses dan pemecahan masalah alur kerja. Setelah pod dihapus, Kubernetes open source tidak menyimpan log pod atau log alur kerja tempat pod tersebut dibuat. Untuk menyimpan log, Anda dapat menggunakan kluster alur kerja. Kluster alur kerja terintegrasi dengan Layanan Log Sederhana, yang memungkinkan Anda mengumpulkan log dan menyimpannya di Layanan Log Sederhana. Anda dapat menggunakan CLI Argo atau UI Argo untuk melihat log yang dikumpulkan.
Catatan Penggunaan
Setelah mengaktifkan pengumpulan log untuk alur kerja, Anda dapat menggunakan CLI Argo atau UI Argo untuk melihat log yang dikumpulkan sebelum alur kerja dihapus, terlepas dari apakah pod alur kerja dihapus.
Jika alur kerja disimpan ke database, Anda dapat menggunakan CLI Argo untuk mengunduh file ZIP log alur kerja atau melihat log alur kerja di konsol Layanan Log Sederhana setelah alur kerja dihapus.
Untuk informasi lebih lanjut tentang cara menyimpan alur kerja ke database, lihat Simpan alur kerja.
Tindakan Pencegahan
Jika
oss-artifact-repositorydiaktifkan danarchiveLogs: trueditentukan untuk kluster alur kerja, Layanan Log Sederhana tidak akan mengumpulkan log pod dari kluster tersebut. Dalam hal ini, log pod dikumpulkan keoss-artifact-repository.Dibandingkan dengan
oss-artifact-repository, Layanan Log Sederhana menyediakan manajemen siklus hidup log otomatis dan fitur kueri log yang kuat. Layanan Log Sederhana memungkinkan Anda menentukan periode retensi log. Untuk mengaktifkan Layanan Log Sederhana dalam kasus ini, hapus pengaturanarchiveLogs: true.
Prasyarat
Jika Anda memilih untuk menggunakan CLI Argo Alibaba Cloud untuk mengaktifkan Layanan Log Sederhana untuk pengumpulan log, Anda harus terlebih dahulu melakukan operasi berikut:
Unduh dan instal CLI Argo Alibaba Cloud 3.4.12. Untuk informasi lebih lanjut, lihat CLI Argo Alibaba Cloud.
Jika Anda menggunakan Pengguna Resource Access Management (RAM), Anda harus memberikan akses baca-saja ke Layanan Log Sederhana kepada pengguna RAM dengan melampirkan kebijakan AliyunLogReadOnlyAccess kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Buat pengguna RAM dan otorisasi pengguna RAM untuk mengakses Layanan Log Sederhana.
Aktifkan Layanan Log Sederhana
Setelah membuat kluster alur kerja, proyek Layanan Log Sederhana bernama k8s-log-<clusterid> secara otomatis dibuat oleh sistem untuk mengumpulkan log alur kerja dari kluster. Jika proyek k8s-log-<clusterid> tidak dibuat, Anda dapat membuat proyek secara manual. Untuk informasi lebih lanjut tentang cara membuat proyek Layanan Log Sederhana, lihat Buat proyek Layanan Log Sederhana.
Anda dapat mengaktifkan Layanan Log Sederhana dengan menggunakan CLI Argo Alibaba Cloud atau membuat AliyunLogConfig.
Aktifkan Layanan Log Sederhana dengan menggunakan CLI Argo Alibaba Cloud
CLI Argo Alibaba Cloud sepenuhnya kompatibel dengan CLI Argo open source dan menyediakan kemampuan logging yang ditingkatkan. CLI Argo Alibaba Cloud dapat mengumpulkan log pod yang dihapus.
Jalankan perintah berikut untuk mengonfigurasi Layanan Log Sederhana:
argo config sls
Silakan masukkan jumlah hari retensi log. Default adalah 7 hari.
10Output yang diharapkan:
Mulai mengonfigurasi SLS untuk kluster Anda.
Membuat CR AliyunLogConfig workflow-sls-config di namespace default.
Membuat Logstore workflow-logstore di proyek SLS k8s-log-<clusterid>, durasi retensi log adalah 10 hariOutput menunjukkan bahwa Layanan Log Sederhana telah dikonfigurasi. Log semua alur kerja di kluster dikumpulkan ke Logstore workflow-logstore.
Masuk ke konsol Layanan Log Sederhana, temukan proyek k8s-log-<clusterid>, lalu klik workflow-logstore untuk melihat log.
Aktifkan Layanan Log Sederhana dengan membuat AliyunLogConfig
Jalankan perintah berikut untuk membuat AliyunLogConfig. Controller Log Service secara otomatis membuat proyek bernama k8s-log-<clusterid> dan Logstore bernama workflow-logstore.
cat << EOF | kubectl apply -f -
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: workflow-sls-config
namespace: default
spec:
# log akan disimpan selama 5 hari
lifeCycle: 5
logstore: workflow-logstore
logtailConfig:
inputType: plugin
configName: workflow-sls-config
inputDetail:
plugin:
inputs:
- detail:
Stderr: true
Stdout: true
type: service_docker_stdout
EOFAkses Layanan Log Sederhana dengan menggunakan CLI Argo
Lihat log alur kerja di kluster
Anda dapat menggunakan CLI Argo untuk melihat log alur kerja, termasuk log pod yang ada dan log pod yang dihapus.
Anda dapat menjalankan perintah kubectl logs <pod-name> untuk melihat log pod yang ada. Secara default, perintah ini mengembalikan hingga 2.000 baris data log. Jika Anda ingin melihat lebih banyak data log atau melihat log pod yang dihapus, Anda dapat memilih salah satu metode berikut:
Gunakan CLI Argo untuk mengakses Layanan Log Sederhana (direkomendasikan)
Jalankan perintah berikut untuk memberikan izin ke CLI Argo:
argo config init # Tentukan informasi seperti ID AccessKey dan Rahasia AccessKey berdasarkan instruksi di layar.Jalankan perintah berikut untuk menanyakan log pod:
argo logs <workflow-name> <pod-name> --sls # Tanyakan log pod yang ditentukan. argo logs <workflow-name> --sls # Unduh file ZIP log alur kerja yang ditentukan.
Gunakan Argo Server untuk mengakses Layanan Log Sederhana
Jika Anda ingin melihat log pod yang dihapus dengan menggunakan CLI Argo, Anda harus terlebih dahulu mengaktifkan Argo Server dan mengonfigurasi parameter yang diperlukan.
Untuk menanyakan log alur kerja yang dikumpulkan oleh Layanan Log Sederhana, Anda harus menentukan <pod-name>.
Untuk mengakses alur kerja atau pod di namespace lain, Anda harus mendapatkan KUBE_TOKEN untuk namespace tersebut.
Jalankan perintah berikut untuk mengaktifkan Argo Server dan mengonfigurasi parameter:
export ARGO_SERVER=argo.<cluster id>.<region>.alicontainer.com:2746 export KUBE_TOKEN=$(k create token default -n default --duration 24h) export ARGO_TOKEN="Bearer $KUBE_TOKEN" export ARGO_INSECURE_SKIP_VERIFY=trueJalankan perintah berikut untuk menanyakan log pod alur kerja:
argo logs <workflow-name> <pod-name>
Lihat log alur kerja yang disimpan ke database
Anda dapat menyimpan alur kerja ke database. Dengan cara ini, Anda dapat menggunakan CLI Argo untuk mengunduh log alur kerja setelah alur kerja dihapus.
Jalankan perintah berikut untuk memberikan izin ke CLI Argo:
argo config init # Tentukan informasi seperti ID AccessKey dan Rahasia AccessKey berdasarkan instruksi di layar.Jalankan perintah berikut untuk menanyakan ID pengguna (UID) alur kerja:
# argo archive list NAMESPACE NAME STATUS AGE DURATION PRIORITY MESSAGE P/R/C PARAMETERS UID default hello-world-l6c2r Succeeded 3d 1m 0 0/0/0 179eaef0-fde3-496f-946d-549e8f******Unduh log alur kerja:
# argo archive logs 179eaef0-fde3-496f-946d-549e8f****** # ls hello-world-l6c2r.zip
Gunakan UI Argo untuk mengakses Layanan Log Sederhana
Anda dapat melihat log pod alur kerja dengan menggunakan UI Argo, terlepas dari apakah pod dihapus. Jika Anda menanyakan log pod yang dihapus, log tersebut akan ditampilkan di UI Argo, seperti yang ditunjukkan pada gambar berikut.

Nonaktifkan Layanan Log Sederhana
Jalankan perintah berikut untuk menghapus AliyunLogConfig:
kubectl delete aliyunlogconfigs.log.alibabacloud.com workflow-sls-config -n defaultMasuk ke konsol Layanan Log Sederhana dan hapus Logstore workflow-logstore.