Helm Flow Control로 여러 Cron 관리

애플리케이션에서 Cron을 설정하려는 경우 Kubernetes에서 cron을 사용하는 것은 간단합니다. CronJob template을 복사하기만 하면 됩니다.

하나의 cronjob이 있으면 별로 중요하지 않지만 cronjob이 많으면 cron당 각 파일을 만드는 것이 때때로 재미가 없을 수 있습니다.

Helm에는 템플릿에서 동적 값을 조작하는 데 사용할 수 있는 Flow Control 이 있습니다.

이 기사에서는 단일 cron을 생성한 다음 cronjob 명령 모음을 반복하여 여러 cronjob 리소스를 생성합니다.

단일 CronJob 만들기:



다음 코드를 복사하여 cronjob을 만듭니다.




위의 파일은 매분 실행되고 일부 텍스트를 인쇄하는 크론을 생성합니다.



여러 Cronjob 명령 만들기:



이제 모든 고유 자리 표시자를 보유할 여러 cronjob 명령을 만들어 보겠습니다. 이제 cron의 name , frequency , command 등의 값을 저장할 별도의 cronjob 파일을 생성합니다. cronjobs.yaml 안에 .helm/values/cronjobs.yaml.를 생성하자



우리는 고유한 ID, 이름, 명령 및 일정을 갖는 4개의 cronjob을 만들 것입니다. 하지만 원하는 경우 더 많은 동적 값을 추가할 수 있습니다.




<script id="gist-ltag"src="https://gist.github.com/ujwaldhakal/099ace9401ed99054199f670db9d857b.js"/>


helm 템플릿에 동적 값을 전달합니다.



지금까지 단일 cronjob 작업을 수행한 다음 여러 cronjob 명령을 생성했습니다. 이제 여러 파일을 수동으로 생성할 필요가 없도록 단일 cronjob 내에서 이러한 cronjobs 명령을 반복하려고 합니다.



Helm Flow Control에서 사용할 수 있는 여러 명령이 있습니다. 이를 위해 *{{- range $cronjob := $.Values.cronjobs }}*를 사용하여 값을 반복하고 {{$cronjob.id}},{{$cronjob.name}},{{$cronjob.schedule}}와 같은 동적 값에 액세스합니다. 아래 코드와 같이:




<script id="gist-ltag"src="https://gist.github.com/ujwaldhakal/ff97414c73fb52d8d72d96b97282c2bf.js"/>


마지막 퍼즐 조각은 Helm을 설치/업그레이드하는 동안 이러한 동적 값을 전달하는 것입니다. 이를 위해 해당 cronjobs 명령 파일의 전체 경로(예:*.`*helm/values/cronjobs.yaml)와 함께 — values ​​키워드를 사용하여 해당 값을 전달할 수 있습니다. `The final command 다음과 같이 표시됩니다.




helm upgrade — install — values “.helm/values/cronjobs.yaml” multiple-cronjobs .helm


결론:



두 개의 파일을 사용하여 여러 cronjob을 설정했습니다. 하나는 전체 Kubernetes cronjob의 사양을 정의하기 위한 것이고 다음은 명령, 빈도, 이름 등과 같은 동적 값을 정의하기 위한 것입니다. Helm Flow Control을 사용하여 복잡한 구성을 빌드/관리할 수 있습니다. .



Github 링크: https://github.com/ujwaldhakal/multiple-cronjob-helm

좋은 웹페이지 즐겨찾기