inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

대세는 쿠버네티스 (초급~중급편)

POD의 Container Command 중 copy 관련 문의드립니다.

430

CoonZaCCang

작성한 질문수 8

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']

상대경로 절대경로로 지정해도 마찬가지이네요.

감사합니다.

docker kubernetes

답변 3

1

CoonZaCCang

답변 달아주셔서 감사합니다. 늦게 확인을 하였네요. 참고해주신 사이트 뿐 아니라 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

보시고 안되시면 또 질문주시고요.

감사합니다.

yml 작성하다가 에러 발생해서 문의 드립니다.

0

37

2

설치수업중에 질문드립니다.

1

54

2

기초다지기 설치 문의드립니다.

1

104

4

HPA 부분 Auto Scaler 설치하는 링크가 없습니다!!

1

64

3

클러스터 초기화 및 팟 네트워크 세팅시 문제가 있습니다

1

100

1

환경 구성에 있어서 질문드립니다

1

92

2

configMap 파일생성

1

77

2

dashboard에서 pod 생성이 되지 않습니다.

1

77

2

nodePort 서비스 접근 Client sent an HTTP request to an HTTPS server

1

74

2

대시보드 화면이 달라요 ㅠㅠ

1

58

2

대시보드 접근이 안됩니다!

1

98

2

Ingress실습에 난관이 있습니다

1

66

2

master 노드에서 ssh 로그인 창이 안뜨는 오류

1

82

3

안녕하세요 일프로님 궁금한 거 있습니다

0

50

1

7강 마지막 대시 보드 출력에 관한 문제

1

57

2

Could not resolve host: externalname1; Unknown error

0

59

2

Failed to create pod sandbox

1

89

2

자료실을 못 찾겠습니다 ㅜ ㅡ ㅜ

0

57

2

0/3 nodes are available

1

57

2

Back-off restarting fail~~

1

99

4

쿠버네티스 대시보드 접속 문제

1

89

2

설치관련 질문입니다

1

116

2

raw.githubusercontent.com 에 대한 질문

1

137

2

worker노드 추가시에

1

68

1