OpenShift3.테스트 11의 CronJob

수정 내역ConcurrencyPolicyconcurrencyPolicy대문자 "C"도 틀리지 않지만 옵션이 작동하지 않습니다.
미안해. 내가 잘못 기억했어.
개시하다
OpenShift에서 다양한 Pod을 시도해 봤습니다.
크론이 이용하고 싶은 장면도 있어요(^-)-☆
그런 번역으로 3.9 이후에 이루어진 크론잡!
Red Hat OpenShift 3.11 【 제38장 크론 작업
CronJob의 정의
레드하트의 샘플. 맞춤 제작해 보세요.
이번에는 WordPress를 호출하는 백업 Job으로 설정합니다.
Wordpress의 백업 Job 옵션은 여기에 기재되지 않았지만, Call 전용 URL 형식입니다.
샘플 변경처
이미지를 perl에서 busybox로 수정합니다.
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: wp-cron
spec:
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 3
  concurrencyPolicy: "Forbid"
  schedule: "*/30 * * * *"
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            parent: "wp-cron"
        spec:
          containers:
          - name: wp-cron
            image: busybox
            command: ["wget",  "--spider", "http://wordpress-wordpress.192.168.42.178.nip.io/wp-cron.php?_nonce=39f47013&backwpup_run=runext&jobid=1"]
          restartPolicy: OnFailure
  • successfulJobsHistoryLimit ...성공 시 유지되는 Job 수(해당 Pod는 계속 유지됨)
  • failedJobsHistoryLimit ...실패 시 유지되는 Job 수(해당 Pod는 계속 유지됨)
  • concurrencyPolicy ...동시에 정책 실행
  • Allow ...동시에 집행하다.
  • Forbid ...동시 집행을 금지하고 이전의 집행이 끝나지 않았을 때 아래의 집행을 생략합니다.
  • Replace ...동시에 수행된 작업을 취소하고 새 작업으로 대체합니다.
  • schedule ...일정에 Cron 형식으로 로그인합니다.
  • busybox최신판 수첩wget 옵션은 -s이지만 OpenShift의 busybox 버전은 --spider인 것 같다.
  • Cronjob 등록
    오버뷰 화면이든 어디든 가능하기 때문에 Import YAML/JSON부터 등록한다.
    중간에 경고가 표시되며 [Create Anyway]에서도 등록할 수 있습니다.




    Cronjob 확인
    등록된 Job을 확인하고 싶은데... okd를 못 봤어요. 어떤 화면도 등록해야 돼wp-cron...(땀
    처음 로그인할 시간이 왔습니다. 확인 후 Applications Pods에 있습니다!

    CronJob 이름에 정의된 Pod 를 클릭하면 자세한 내용이 표시됩니다.

    실행 결과가 로그 화면을 참조하면 표준 출력 결과가 나온다.

    밤(AM3:00)에 크론잡을 넣고 다음날 아침에 로고를 확인했어요
    「Logs are not available.」
    역시--spider 안 좋은데... (땀)
    여기서 갑자기 의문이...
    어떻게 하면 크론잡을 없앨 수 있을까...
    okd 관리 화면을 다시 찾으면 Recources>Other Recources에job의 문구가 있습니다



    여기서 사라질 것 같은데..
    다음 임무만 사라지는 것도 아니고.
    Cronjob의 변경 사항
    같은 이름으로 크론 시간만 변경하면 덮어쓸지 묻는다Replace를 클릭하면 Ok가 됩니다.

    Cronjob 삭제
    GUI가 못하냐!!
    $ oc delete cronjob/<cron_job_name>
    
    [tak@minishift ~]$ eval $(minishift oc-env)
    [tak@minishift ~]$ oc login
    Authentication required for https://192.168.42.178:8443 (openshift)
    Username: developer
    Password: ********
    Login successful.
    
    You have one project on this server: "wordpress"
    
    Using project "wordpress".
    [tak@minishift ~]$ oc get cronjob
    NAME       SCHEDULE    SUSPEND   ACTIVE    LAST SCHEDULE   AGE
    wp-cron    */30 * * * *   False     0         41m             2h
    wp-cron2   0 3 * * *   False     0         <none>          47m
    [tak@minishift ~]$ oc delete cronjob/wp-cron2
    cronjob.batch "wp-cron2" deleted
    [tak@minishift ~]$ oc get cronjob
    NAME      SCHEDULE    SUSPEND   ACTIVE    LAST SCHEDULE   AGE
    wp-cron   */30 * * * *   False     0         41m             2h
    [tak@minishift ~]$ 
    
    Cronjob의 전체 시스템 확인(Admin 권한 필요)
    보호의 기초 위에서 크론잡의 난립을 피해야 한다.
    그리고 어디에 무슨 크론잡을 등록했는지 파악하고 싶네요.
    이 경우 Admin 권한으로 다음 명령을 실행하면 됩니다.
    [tak@minishift ~]$ oc get --all-namespaces=true cronjob
    NAMESPACE   NAME      SCHEDULE    SUSPEND   ACTIVE    LAST SCHEDULE   AGE
    wordpress   wp-cron   */30 * * * *   False     0         1h              2h
    
    미니시프트로 admin권 한정이 뭐야!?이것부터 하세요.
    [tak@minishift ~]$ oc login
    Authentication required for https://192.168.42.178:8443 (openshift)
    Username: admin
    Password: ********
    Login successful.
    
    Using "default".  You can switch projects with:
    
     'oc project <projectname>'
    [tak@minishift ~]$ minishift addons enable admin-user
    Add-on 'admin-user' enabled
    [tak@minishift ~]$ minishift addons apply admin-user
    -- Applying addon 'admin-user':..
    
    그건 집행이 안 돼...
    기분이 좋아 실제로 AM3:00으로 설정되어 다음날 아침을 맞았다
    실행할 기미가 없다
    apiVersion: batch/v1beta1
    kind: CronJob
    metadata:
      name: wp-cron
    spec:
      successfulJobsHistoryLimit: 3
      failedJobsHistoryLimit: 3
      concurrencyPolicy: "Forbid"
      schedule: "0 3 * * *"
      jobTemplate:
        spec:
          template:
            metadata:
              labels:
                parent: "wp-cron"
            spec:
              containers:
              - name: wp-cron
                image: busybox
                command: ["wget",  "--spider", "http://wordpress-wordpress.192.168.42.178.nip.io/wp-cron.php?_nonce=39f47013&backwpup_run=runext&jobid=1"]
              restartPolicy: OnFailure
    
    많이 해봤는데...
    oc지령 확인에 분명히 나오지만 시간을 지정하면 실행되지 않습니다(^^;
    오케이의 상황.
      schedule: "*/30 * * * *"
    
      schedule: "30 * * * *"
    
    NG시
      schedule: "0 3 * * *"
    
      schedule: "0 03 * * *"
    
    여기, 내가 반짝였어!GMT입니다(웃음)
    AM3:00JST 갑니다. - 9:00.
      schedule: "0 18 * * *"
    
    정답입니다.
    [tak@minishift ~]$ date
    2019年  7月 16日 火曜日 09:55:17 JST
    [tak@minishift ~]$ oc get --all-namespaces=true cronjob
    NAMESPACE   NAME       SCHEDULE       SUSPEND   ACTIVE    LAST SCHEDULE   AGE
    wordpress   wp-cron    55 0 * * *     False     1         22s             46m
    

    좋은 웹페이지 즐겨찾기