Argo Workflows, iş akışı durumlarını ve ilgili kaynakları düzenli olarak siler. Bir kalıcılık ilkesi yapılandırarak iş akışlarını bir MySQL veritabanına arşivleyin; böylece iş akışları veya bunların pod'ları silindikten sonra bile iş akışı günlüklerini görüntüleyebilirsiniz.
Bu konuda veritabanı arka ucu olarak ApsaraDB RDS for MySQL kullanılır.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Argo Workflows yüklü bir Alibaba Cloud Container Service kümesi
Kümedeki
argoad alanına erişimKümede Secret'lar oluşturma ve ConfigMap'leri değiştirme izinleri
1. Adım: ApsaraDB RDS for MySQL'i ayarlayın
Bir ApsaraDB RDS for MySQL örneği oluşturun, bu örnek üzerinde bir veritabanı oluşturun ve bir veritabanı hesabı yapılandırın. RDS örneği, kümeyle aynı Virtual Private Cloud (VPC) içinde bulunmalıdır. VPC'nin CIDR bloğundan gelen bağlantılara izin vermek için örnek üzerinde bir IP izin listesi yapılandırın.
Ayrıntılı adımlar için bkz. ApsaraDB RDS for MySQL örneği oluşturma ve veritabanı yapılandırma.
Kurulum tamamlandıktan sonra veritabanı hesabının kullanıcı adını ve parolasını kaydedin.
ApsaraDB RDS for MySQL fiyatlandırması hakkında bilgi için Faturalandırılan öğeler konusuna bakın.
2. Adım: Kalıcılık ayarlarını ekleyin
Argo Workflows ConfigMap'e kalıcılık ayarlarını ekleyin. Varsayılan olarak, ayarların etkili olması için Argo Workflows denetleyicisini ve Argo Server'ı manuel olarak yeniden başlatmanız gerekir.
1. Veritabanı kimlik bilgileri için bir Secret oluşturun
Veritabanı kullanıcı adını ve parolasını depolamak amacıyla argo ad alanında argo-mysql-config adlı bir Secret oluşturun.
Seçenek A: kubectl kullanma (önerilen)
kubectl create secret generic argo-mysql-config -n argo \
--from-literal=username=<database-username> \
--from-literal=password=<database-password>
Seçenek B: YAML bildirim dosyası kullanma
apiVersion: v1
kind: Secret
metadata:
name: argo-mysql-config
namespace: argo
type: Opaque
stringData:
username: <database-username> # Replace with the actual username.
password: <database-password> # Replace with the actual password.
Bildirimi uygulayın:
kubectl apply -f secret.yaml
2. ConfigMap'i güncelleyin
argo ad alanındaki workflow-controller-configmap öğesini düzenleyerek data altına persistence bloğunu ekleyin:
data:
persistence: |
connectionPool:
maxIdleConns: 100
maxOpenConns: 0
connMaxLifetime: 0s # 0 means connections don't have a max lifetime.
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: password
Temel parametreler:
| Parametre | Açıklama |
|---|---|
archive |
İş akışı kalıcılığını etkinleştirmek için true olarak ayarlayın. |
archiveTTL |
Arşivlenen iş akışlarının saklama süresi. Bu örnekte 30d olarak ayarlanmıştır; bu, iş akışlarının 30 gün boyunca saklandığı anlamına gelir. Saklama süresinin üst sınırı yoktur. |
mysql.host |
ApsaraDB RDS for MySQL örneğinin uç noktası. |
mysql.port |
Veritabanı bağlantı noktası. Varsayılan değer 3306 değeridir. |
mysql.database |
İş akışı verilerinin yazılacağı veritabanının adı. |
mysql.tableName |
Birincil iş akışı tablosunun adı. |
connectionPool.maxIdleConns |
Havuzdaki maksimum boşta bekleyen bağlantı sayısı. |
connectionPool.maxOpenConns |
Maksimum açık bağlantı sayısı. 0 değeri sınırsız olduğunu gösterir. |
connectionPool.connMaxLifetime |
Maksimum bağlantı ömrü. 0s değeri, bağlantıların maksimum ömür sınırına sahip olmadığını gösterir. |
userNameSecret |
Veritabanı kullanıcı adını tutan Secret anahtarına referans. |
passwordSecret |
Veritabanı parolasını tutan Secret anahtarına referans. |
3. Argo Workflows denetleyicisini ve Argo Server'ı yeniden başlatın
Kalıcılık ayarlarının etkili olması için Argo Workflows denetleyicisini ve Argo Server'ı yeniden başlatın.
Sonraki adımlar
Kalıcılığı devre dışı bırakmak için
persistencebloğundaarchive: falseayarını yapın ve Argo Workflows denetleyicisi ile Argo Server'ı yeniden başlatın.Arşivlenen iş akışlarını görüntülemek için Argo Server UI'ını açın ve Archived Workflows bölümüne gidin.