티스토리 뷰
반응형
kubernetes pod 를 구성하다보면 복잡한 쉘스크립트를 실행하는 컨테이너를 만들고 싶은 경우가 있다.
하지만, 실행명령을 여러줄로 쪼개서 선언하는 패턴만 보여서 기냥 쉘스크립트를 configMap 에 넣고 볼륨마운트 하거나, 쉘스크립트를 볼륨에 넣어서 실행할까? 고민을 하는데 그렇게 하지 않고 바로 선언하는것도 가능하다.
구성예시
가장 심플하게 alpine 이미지로 카운트 다운하는 쉘스크립트를 표현하고 싶다고 가정하겠다.
apiVersion: v1
kind: Pod
metadata:
name: sample-multiline-shellscript
spec:
restartPolicy: OnFailure
containers:
- name: run
image: alpine:latest
command:
- sh
- "-c"
- |
sh <<'EOF'
### 사용자 명령어 시작
COUNT_DOWN=10
while [ $COUNT_DOWN -gt 0 ]; do
echo "HELLO! COUNT DOWN = ${COUNT_DOWN}"
COUNT_DOWN=$(expr ${COUNT_DOWN} - 1)
sleep 1
done
### 사용자 명령어 끝
EOF
실제 실행 예시
위와 같은 POD 를 구성하고 실행한다면 아래와 같이 실행되었음을 알 수 있다.
(base) tost@AL02025409 chart % kubectl apply -f count_down.yaml
pod/sample-multiline-shellscript created
(base) tost@AL02025409 chart % kubectl get pods sample-multiline-shellscript
NAME READY STATUS RESTARTS AGE
sample-multiline-shellscript 0/1 Completed 0 19s
(base) tost@AL02025409 chart % kubectl logs sample-multiline-shellscript
HELLO! COUNT DOWN = 10
HELLO! COUNT DOWN = 9
HELLO! COUNT DOWN = 8
HELLO! COUNT DOWN = 7
HELLO! COUNT DOWN = 6
HELLO! COUNT DOWN = 5
HELLO! COUNT DOWN = 4
HELLO! COUNT DOWN = 3
HELLO! COUNT DOWN = 2
HELLO! COUNT DOWN = 1
반응형
'docker & k8s > kubernetes' 카테고리의 다른 글
pvc 가 Terminating 상태로 삭제가 안되는 문제 해결방법 (0) | 2024.11.07 |
---|---|
[K8s] Completed 된 POD 재실행 하는 방법 - 팁 (0) | 2024.05.24 |
[K8s] kerberos 인증 기반의 beeline 연결 실패 - LOOKING_UP_SERVER 오류 (0) | 2024.04.30 |
[K8s] POD 의 상태별 로그 확인 방법 - ContainerCreating / Running (0) | 2024.04.24 |
[k8s] kubectl 로 docker login 정보 등록 하는 방법 - ImagePullBackOff 로그인 문제 (0) | 2024.04.19 |
댓글