• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

PV만 생성되면 hostPath 더라도 영속적으로 사용할 수 있다는거죠?

21.08.27 17:32 작성 조회수 131

1

hostPath의 경로가 /node-v1 이었고,

PV로 해당 hostPath를 지정하니까...

만약 Pod가 Node1이 아닌 Node2에 생성되어도 /node-v1로 mount 된 mount3 디렉터리에서 file.txt 을 접근할 수 있다는 말씀이신가요?

실습하면 쉽게 알 수 있을 거 같은데. 지금 제가 실습이 힘든 상황이라서 여쭤봐요.

답변 3

·

답변을 작성해보세요.

1

LEE님의 프로필

LEE

질문자

2021.08.27

답변 감사합니다.

네 맞습니다. 3-1 보고 말씀드린 거구요.

답변주셨듯이 hostpath 만 쓰게 된 경우에는 pod가 node2에서 실행 안 되는 건 알고 있습니다.

다만 해당 hostpath로 생성한 볼륨을 PV로 감싸면, pod가 node2에서 실행돼도 접근 가능한 지 여쭤봤습니다.

그럼 PV/PVC를 통해 node 관계 없이 pod의 볼륨 접근에 대한 proxy 역할을 한다고 이해하면 될까요?

감사합니다.

질문이 상세해서 이해가 잘되네요^^

전혀 그렇지 않습니다 ㅎ

pv는 단지 pod와 pod가 올라간 node의 path에 마운팅을 해주는 역할을 하고요.

hostpath pv를 생성하고 pod와 연결해서 그 파드가 node1위에 생기면 node1위에 /mount1이라는 path가 생기고. 다른 pod나 이 pod가 이 pv와 다시 붙어서 node2위에 생기면 node2위에 /mount1이 또 생깁니다

결국 hostpath로 pod간에 파일공유가 될려면 모두 같은 node위에 있어야하고요.

hostpath는 pod간에 파일 공유 목적으로 쓰이진 않습니더. pod와 해당 node의 os 파일을 공유하기 위해쓰이고 pod같 데이터를 공유하려면 nfs타입에 pv를 써야합니다

1

질문 주실때 어떤 내용을 보셨고. 실습한 예제를 질문에 넣어주시면 제가 질문을 좀더 빠르게 이해할 수 있어서 참고 부탁드릴께요.

저도 강의만든지 2년이 되가다보니까 내용이 좀 가물가물 하거든요 ㅠ

3-1) 예제 실습을 보신거라면 해당 설정은 pod가 무조건 node1에 생기도록 하는 방법입니다.

아래 룰이 그렇게 되도록 설정한거고

nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - {key: kubernetes.io/hostname, operator: In, values: [k8s-node1]}

이걸 안쓰고 기본적으로 hostpath를 쓰게 될경우 node1에서 pod가 만들어졌으면. 해당 pod가 node2로 올라갔을때는 공유될수 없어요

0

LEE님의 프로필

LEE

질문자

2021.08.27

아 이론이랑 실습편 다시 보고 이해했습니다.

죄송합니다. 업무 중에 틈틈히 보느라 제대로 못 봤습니다.

PV 핵심은 볼륨 영속성과 Dev/Admin 구분이군요.

그럼 PV의 아래 옵션으로 인해서 강제로 Pod를 Node2에 만들어도 Node1에 생성되겠군여.

matchExpressions: - {key: kubernetes.io/hostname, operator: In, values: [k8s-node1]}