Argo Workflows secara berkala menghapus sumber daya terkait alur kerja dari kluster alur kerja. Untuk menyimpan riwayat alur kerja guna analisis dan pelacakan, persistensikan data alur kerja ke database. Setelah konfigurasi persistensi diterapkan, log alur kerja tetap dapat diakses meskipun alur kerja atau Pod-nya telah dihapus. Topik ini menggunakan ApsaraDB RDS for MySQL sebagai contoh untuk menjelaskan cara mempertahankan data alur kerja ke database.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster alur kerja ACK Distributed Cloud Container Platform for Kubernetes
Instans ApsaraDB RDS for MySQL. Untuk informasi selengkapnya, lihat Buat instans ApsaraDB RDS for MySQL
Database dan akun untuk instans ApsaraDB RDS for MySQL. Untuk informasi selengkapnya, lihat Buat akun dan database
Instans ApsaraDB RDS for MySQL berada dalam virtual private cloud (VPC) yang sama dengan kluster alur kerja
Blok CIDR VPC ditambahkan ke daftar putih instans ApsaraDB RDS for MySQL
Buat Secret untuk kredensial database
Buat Secret bernama argo-mysql-config di kluster alur kerja untuk menyimpan username dan password database.
Jalankan perintah berikut:
kubectl create secret generic argo-mysql-config \
--namespace=default \
--from-literal=username=<database-username> \
--from-literal=password=<database-password>Ganti <database-username> dan <database-password> dengan kredensial akun database yang dibuat pada bagian prasyarat.
Perintah tersebut membuat Secret yang setara dengan manifes YAML berikut:
apiVersion: v1
kind: Secret
metadata:
name: argo-mysql-config # Nama Secret yang dirujuk oleh konfigurasi persistensi
namespace: default
type: Opaque
stringData:
username: <database-username> # Ganti dengan username database Anda
password: <database-password> # Ganti dengan password database AndaKonfigurasi pengaturan persistensi
Tambahkan blok persistence ke ConfigMap workflow-controller-configmap.
ConfigMap
workflow-controller-configmapdisimpan di namespace yang menggunakan ID kluster sebagai namanya.Atur
hostke titik akhir instans ApsaraDB RDS for MySQL.Atur
databaseke nama database yang dibuat pada bagian prasyarat.Atur
archiveketrueuntuk mengaktifkan pengarsipan alur kerja.
archiveTTLmenentukan durasi penyimpanan alur kerja yang diarsipkan. Misalnya,30dmenyimpan alur kerja selama 30 hari. Nilai yang valid tidak terbatas pada kumpulan nilai tertentu.
Tabel berikut menjelaskan parameter utama:
| Parameter | Deskripsi | Contoh nilai |
|---|---|---|
connectionPool.maxIdleConns | Jumlah maksimum koneksi idle dalam pool | 100 |
connectionPool.maxOpenConns | Jumlah maksimum koneksi terbuka. 0 berarti tidak terbatas. | 0 |
connectionPool.connMaxLifetime | Masa aktif maksimum koneksi. 0s berarti tidak ada batas. | 0s |
archiveTTL | Periode retensi untuk alur kerja yang diarsipkan | 30d |
archive | Apakah pengarsipan alur kerja diaktifkan | true |
mysql.host | Titik akhir ApsaraDB RDS for MySQL | rm-xxx.mysql.cn-beijing.rds.aliyuncs.com |
mysql.port | Port MySQL | 3306 |
mysql.database | Nama database | argo-workflow |
mysql.tableName | Nama tabel untuk data alur kerja | argo_workflows |
mysql.userNameSecret.name | Nama Secret yang menyimpan username database | argo-mysql-config |
mysql.userNameSecret.key | Masukkan Secret untuk nama pengguna | username |
mysql.passwordSecret.name | Nama Secret yang menyimpan password database | argo-mysql-config |
mysql.passwordSecret.key | Masukkan Secret untuk kata sandi | password |
persistence: |
connectionPool:
maxIdleConns: 100
maxOpenConns: 0
connMaxLifetime: 0s
archiveTTL: 30d
archive: true
mysql:
host: rm-xxx.mysql.cn-beijing.rds.aliyuncs.com
port: 3306
database: argo-workflow
tableName: argo_workflows
userNameSecret:
name: argo-mysql-config
key: username
passwordSecret:
name: argo-mysql-config
key: passwordLangkah selanjutnya
Setelah alur kerja dipertahankan, gunakan Argo CLI untuk melihat log alur kerja meskipun alur kerjanya telah dihapus. Untuk informasi selengkapnya, lihat Konfigurasi Log Service.