26A24a

Young-Kyoo Kim·2026년 4월 24일
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: daily-task-2am
spec:
  # 매일 새벽 2시를 의미하는 크론 표현식
  schedule: "0 2 * * *" 
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: worker-container
            image: busybox:1.28
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo "새벽 2시 작업 시작 - 특정 커맨드 실행 중"
          # 작업 완료 후 파드를 어떻게 할지 결정 (OnFailure 또는 Never)
          restartPolicy: OnFailure
          
---
kubectl create job --from=cronjob/daily-task-2am manual-test-run

kubectl create configmap mc-config --from-file=config.yaml=./local-folder/your-config.yaml


---
spec:
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: mc-client
            image: minio/mc:latest
            command:
            - /bin/sh
            - -c
            # mc alias 설정 후 원하는 명령 실행
            - |
              mc alias set myminio http://minio-service:9000 $ACCESS_KEY $SECRET_KEY;
              mc cp /data/backup.tar.gz myminio/backups/;
          restartPolicy: OnFailure
          
          
---
FROM alpine:3.18

# mc 설치 (최신 바이너리 다운로드)
RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc \
    && chmod +x mc \
    && mv mc /usr/local/bin/mc

# 필요한 추가 도구 설치 (예: curl)
RUN apk add --no-cache curl

ENTRYPOINT ["mc"]

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mc-config
data:
  config.yaml: |
    # 여기에 실제 mc가 참조할 YAML 내용을 작성하세요
    key: value
    setting: enabled
    
---

apiVersion: batch/v1
kind: CronJob
metadata:
  name: mc-task-with-yaml
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: mc-container
            image: minio/mc:latest
            command:
            - /bin/sh
            - -c
            - |
              # 1. MinIO 접속 설정 (환경변수 활용 권장)
              mc alias set myminio $ENDPOINT $ACCESS_KEY $SECRET_KEY
              
              # 2. 마운트된 YAML 파일을 매개변수로 mc 명령어 실행
              # 파일은 /config/config.yaml 경로에 생성됩니다.
              mc --config-dir /config some-command --file /config/config.yaml
            env:
            - name: ENDPOINT
              value: "http://minio-service:9000"
            # Access Key와 Secret은 Secret 리소스로 관리하는 것을 추천합니다.
            volumeMounts:
            - name: config-volume
              mountPath: /config # 컨테이너 내부에서 파일이 보일 경로
          volumes:
          - name: config-volume
            configMap:
              name: mc-config # 위에서 만든 ConfigMap 이름
          restartPolicy: OnFailure
          
---



0개의 댓글