PVC snapshot の削除をスケジュールする
FPT Cloud では、PVC 名、namespace、保持期間(時間または日数)を指定して PVC snapshot の削除をスケジュールできます。
snapshot クリーンアップ用の CronJob スケジュールを設定する
-
CronJob がクラスター内で権限を持てるように
ServiceAccountを作成します。apiVersion: v1kind: ServiceAccountmetadata:name: cleanup-snapshot-sanamespace: default #or any other namespace that you want to deploy the cronjob -
その ServiceAccount に権限を付与する
ClusterRoleBindingを apply します。subjectsには、上記で作成したすべての namespace の ServiceAccount を含めてください。apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: grant-cleanup-snapshot-sa-adminsubjects:- kind: ServiceAccountname: cleanup-snapshot-sanamespace: default #or any other namespace that you want to deploy the cronjob- kind: ServiceAccountname: cleanup-snapshot-sanamespace: namespace1 #if user wants to have multiple cronjob in multiple namespaceroleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io次のコマンドで確認します。
kubectl get clusterrolebinding grant-cleanup-snapshot-sa-admin -
PVC snapshot を自動削除する CronJob を apply します。
apiVersion: batch/v1kind: CronJobmetadata:name: cleanup-snapshotsspec:schedule: "0 2 * * *" #Adjust this (minute hour day(month) month day(week))timeZone: "Asia/Saigon"jobTemplate:spec:template:spec:serviceAccountName: cleanup-snapshot-sa #match with service account namecontainers:- name: snapshot-cleanupimage: registry.fke.fptcloud.com/xplat-fke/cleanup-snapshot-pvc:v0.1.0env:- name: NAMESPACEvalue: "your-pvc-namespace" #Replace with your PVC namespace- name: PVC_NAMEvalue: "your-pvc" #Replace with your PVC name- name: RETENTION_MAXvalue: "7" #or any int > 0- name: RETENTION_UNITSvalue: "days" #or "hours"restartPolicy: OnFailure
クリーンアップ用 CronJob を削除する
PVC のスケジュール削除を停止するには、対応する CronJob を削除します。