작성
·
329
1
POD내부에서 파일을 복사할 목적으로 Container Command에서 아래와 같이 복사 명령을 넣으면
CrashLoopBackOff이 나오고 logs에도 아무런 로그도 없고 describe에서도 오류 관련된 내용을 찾을 수 없습니다
해당 Pod에 접속하여 명령을 수행하면 정상 수행됩니다.
yaml 에서 command를 제거하면 RUNNING됩니다. kubernetes.io의 기본 템플릿인데요
혹시 copy 커맨드 정의가 잘못된 부분이 있을지요?
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod16
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: tomcat:7.0
command: ['sh','-c','cp ./RUNNING.txt ./webapps']
상대경로 절대경로로 지정해도 마찬가지이네요.
감사합니다.
답변 3
1
답변 달아주셔서 감사합니다. 늦게 확인을 하였네요. 참고해주신 사이트 뿐 아니라 k8s 사이트를 보고 여러 시도를 해도
copy 가 되지 않습니다 . copy command를 넣지 않으면 컨테이너는 정상 실행되고요 해당 컨테이너에서 copy를 시도하면
잘 수행됩니다. 테스트를 위해 tomcat7 이미지에 RUNNING.txt를 temp폴더에 copy 하는 것인데 잘 안되네요.
컨테이너 command에만 넣으면 CrashLoopBackOff 만 나옵니다. 혹시 copy 커맨드 샘플 yaml이 있을까요?
■ 테스트 yaml
------------------------------------------------------------------------------------------------
apiVersion: v1
kind: Pod
metadata:
name: myapp-test
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: tomcat:7.0
command: ['cp', '/usr/local/tomcat/RUNNING.txt', '/usr/local/tomcat/temp']
------------------------------------------------------------------------------------------
case1. - 실패
command: ["cp", "/usr/local/tomcat/RUNNING.txt", "/usr/local/tomcat/temp"]
command: ['cp', '/usr/local/tomcat/RUNNING.txt', '/usr/local/tomcat/temp']
case2. - 실패
command:
- "cp"
- "/usr/local/tomcat/RUNNING.txt"
- "/usr/local/tomcat/temp"
case3. - 실패
command: ["/bin/sh"]
args: ["-c", "cp /usr/local/tomcat/RUNNING.txt /usr/local/tomcat/temp"]
0
답변이 없어서 어떻게 진행되고 계신가 궁금했습니다.
일단 제가 참고하시라고 한 부분은 command 의 사용법이 아니라 initContainer를 사용하는 부분을 말씀드린건데요.
적어놓으신 command의 사용법에는 문제가 없습니다^^
본 컨테이너의 동작 전에 어떤 작업을 해야할 때는 initContainer를 사용해야하고요.
본 컨테이너에 cp 명령을 넣으면 그 명령이 실행되자마자 컨테이너가 종료되는 동작이 맞습니다.
---
추가: 위에 initContainer 참고 사이트에 대한 부연설명 해드리자면
initContainer에서 busybox 라는 이미지를 하나 더 띄어서 특정 명령을 실행하게 시킬수가 있고,
본 컨테이너인 nginx와 busybox 의 volumeMount는 emptyDir로 연결되어 있기 때문에 busybox에서 파일을 복사하게되면 nginx에서 한것과 같은 동작이 되는 셈입니다.
0
안녕하세요.
아래 링크 예제를 보시고, 원하는 작업을 하기 위해서 어떻게 해줘야 할지 한번 고민해보시기 바랍니다.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/#create-a-pod-that-has-an-init-container
보시고 안되시면 또 질문주시고요.
감사합니다.