halo sobat sekolahlinux, kali ini saya akan share sediki tentang bagaimana membuat sebuah cronjob pada kubernetes, pada case kali ini task yang saya buat cronjob berfungsi untuk melakukan restart pods atau restart deployment, tanpa basa-basi yuk langsung masuk kepembahasannya
pertama kita perlu membuat serviceaccount untuk cronjob nya
1 2 3 4 5 |
kind: ServiceAccount apiVersion: v1 metadata: name: deployment-restart namespace: production |
selanjutnya kita perlu membuat role, yang mana nanti role ini akan di assign ke serviceaccount yang kita buat diatas
1 2 3 4 5 6 7 8 9 10 |
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: deployment-restart namespace: production rules: - apiGroups: ["apps", "extensions"] resources: ["deployments"] resourceNames: ["elastalert"] verbs: ["get", "patch", "list", "watch"] |
jika sudah sekarang buat rolebinding nya, yang mana role binding ini berguna untuk assign role dan service account yang sudah dibuat
1 2 3 4 5 6 7 8 9 10 11 12 13 |
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: deployment-restart namespace: production roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: deployment-restart subjects: - kind: ServiceAccount name: deployment-restart namespace: production |
jika sudah sekarang kita buat cronjob nya, didalam cronjob ini kita menggunakan serviceaccount yang sudah kita buat diatas yaitu serviceaccount deployment-restart, cronjob ini akan dijalankan setiap hari tepat pada jam 1 malam
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
apiVersion: batch/v1beta1 kind: CronJob metadata: name: deployment-restart namespace: production spec: concurrencyPolicy: Forbid schedule: "0 1 * * *" jobTemplate: spec: backoffLimit: 2 activeDeadlineSeconds: 600 template: spec: serviceAccountName: deployment-restart restartPolicy: Never containers: - name: kubectl image: bitnami/kubectl command: - 'kubectl' - 'rollout' - 'restart' - 'deployment.apps/elastalert' |
nah sekian dulu sedikit tutorial singkatnya, untuk detail dari paramater-paramater diatas kamu bisa lihat pada link dibawah ini
Leave a Reply