• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

empty-dir pod 생성 오류

21.06.29 11:37 작성 조회수 564

2

강의에 나와있는데로 empty-dir pod를 생성하려고 하면 아래와 같이 오류가 생깁니다. 오탈자도없고...

$pod logs pod-volume-1

error: a container name must be specified for pod pod-volume-1, choose one of: [container1 container2]

이유가 무엇일까요?

재 pod 생성 yaml 파일입니다.

 

apiVersion: v1

kind: Pod

metadata:

  name: pod-volume-1

spec:

  containers:

  - name: container1

    image: hglee0126/p8000

    volumeMounts:

    - name: empty-dir

      mountPath: /mount1

  - name: container2

    image: hglee0126/p8000

    volumeMounts:

    - name: empty-dir

      mountPath: /mount2

  volumes:

  - name : empty-dir

    emptyDir: {}

답변 1

답변을 작성해보세요.

0

안녕하세요.

동일 컨테이너를 생성하면 port 가 충돌이 나는 에러가 발생합니다.

그리고 컨테이너가 두개 있으면 로그 조회시 -c 옵션으로 컨테이너 이름까지 주면됩니다.

$pod logs pod-volume-1 -c container1

감사합니다.

hglee0126님의 프로필

hglee0126

질문자

2021.06.29

음.. container1과 container2로 나눠놓았는데 다른 컨테이너 아닌가요??

강의영상과 똑같은 코드입니다. 이미지 이름만 다를뿐...강의 영상에선 잘 생성이 되는걸로 보이는데 ㅜㅜ

혹시 pod 강의 실습을 해보셨을지요?

아래 자료실 기준으로 보면 1.container에서 컨테이너에 동일 Port가 생성시 충돌 에러가 납니다.

https://kubetm.github.io/practice/beginner/object-pod/ 

hglee0126님의 프로필

hglee0126

질문자

2021.06.29

같은 pod안에 container port가 충돌나서 에러가 난다는것 이해했습니다. 실제로 로그에서도 그렇게 보입니다. 제가 궁금한점은,

강사님의 tmkube/init 이미지를 사용하여 pod를 만들면 container port는 별도로 지정하지 않았는데도 불구하고 describe를 확인해보면 host port는 none인 상태로 두개의 컨테이너가 정상적으로 생성됩니다.

하지만 동일하게 컨테이너 포트 옵션은 아예 기입해주지 않은 상태에서 제 이미지로 시도를 하면

'Error: listen EADDRINUSE: address already in use :::8000' 에러가 발생합니다.

제 이미지는 강사님이 실습때 사용했던 이미지 파일과 동일하게 제가 따로 만든건데, node.js파일에 expose 8000하는 이미지입니다. 이미지에 expose 8000이라는 내용이 있어서 다른 결과가 나오는걸까요?

네 맞습니다.

init 이미지는 포트를 지정하지 않았기 때문에 여러개를 만들어도 포트 충돌이 나지 않습니다.

근데 p8000은 질문하신 내용처럼. expose로 8000 포트를 오픈시켰고

한 Pod에 같은 두 컨테이너를 생성했기 때문에 에러가 발생합니다.