2017-11-08 5 views
0

config/stats을 OS 파티션 (예 :/config /)의 디렉토리 중 하나에 저장하는 기존 애플리케이션이 있으며 Kubernetes 클러스터의 상태 컨테이너로 실행하려고합니다.Kubernetes의 컨테이너 바인드 마운트

컨테이너로 실행할 수 있지만 컨테이너의 본질적인 일시적인 특성으로 인해 컨테이너가 OS 파티션 디렉토리/config /에 쓰여지고있는 모든 데이터가 컨테이너가 다운/삭제 될 때 손실됩니다.

Kubernetes 배포 파일은 동일한 호스트 또는 다른 호스트에서 새 인스턴스로 존재하지만 컨테이너를 다시 사용할 수 있도록 작성되었지만이 새 컨테이너에는 다음과 같이 작성된 데이터에 액세스 할 수 없습니다. 컨테이너의 이전 인스턴스

도커 컨테이너 인 경우 바인드 마운트를 사용하여이 작업을 수행 할 수 있으므로 컨테이너가 OS 파티션 디렉토리에 쓰는 데이터가 호스트 디렉토리에 저장되므로 새 인스턴스가 데이터에 액세스 할 수 있습니다 이전 인스턴스에 의해 작성되었습니다.

그러나 Kubernetes에서이 대안을 찾을 수 없습니다.

호스트 경로 프로비저닝을 사용할 수 있지만 호스트 경로 프로비저닝은 이제 단일 노드 kubernetes 클러스터에서만 작동합니다.

다중 노드 Kubernetes 클러스터에서이 작업을 수행 할 수있는 방법이 있습니까? 호스트 경로 프로비저닝 이외의 다른 옵션은 무엇입니까? 컨테이너가 서로 이야기하고 노드간에 데이터를 동기화 할 수 있지만 호스트 디렉토리를 컨테이너에 바인드 마운트하는 방법은 무엇입니까?

미리 도움을 주셔서 감사합니다.

+0

영구 볼륨을 사용해 보았습니까? – iamnat

+0

데이터를 유지하려면 Persistent Volume (PV)에 연결될 PVC (Persistent Volume Claim)를 사용해야합니다. 이제 전개 매니페스트를 작성할 때 해당 PVC를 요구해야합니다. –

+0

예, PV에 대해 알고 있고 PV를 컨테이너에 바인딩하는 POD 정의에서 PVC를 사용하고 있지만이 점에 대해 바인더 마운트를 사용할 수 있었기 때문에 이것이 유스 케이스의 과도기라고 생각했습니다. 생각은 Kubernetes에도 간단한 해결책이 될 수 있습니다. – msbl3004

답변

0

이것은 POD 정의에서 Volumes 및 VolumeMounts가있는 것입니다. hostPath에 대한 귀하의 리드는 올바른 방향이지만 클러스터에서 데이터를 호스트 할 때는 다른 볼륨 유형이 필요합니다 (스스로 본 것처럼).

지원되는 저장소 백엔드 목록은 https://kubernetes.io/docs/concepts/storage/volumes/을 참조하십시오. 인프라에 따라 필요에 맞는 것을 찾을 수도 있고 실제로 하나의 백업 서비스 (NFS 서버, Gluster, Ceph 등)를 실제로 만들어야 할 수도 있습니다.

또 다른 추상화 레이어를 추가하여 다른 환경 (예 : 클라우드 제공 업체를 기반으로 한 스토리지 또는 특정 요구 사항에 따라 프로비저닝 한 스토리지)에서 작동 할 수있는 보편적 인 목록을 추가하려는 경우. PV와 PVC (https://kubernetes.io/docs/concepts/storage/persistent-volumes/)에 익숙해지기를 원할 것입니다. 그러나 제가 말했듯이, 그들은 기본 볼륨에 대한 추상화이므로, 첫 번째 문제는 어쨌든 해결해야합니다.

관련 문제