2016-12-01 5 views
0

Docker는 명명 된 볼륨을 지원하며 마운트 된 경우 해당 볼륨은 기본 이미지 컨텐츠로 채워집니다.Kubernetes가 기본 이미지로 채 웁니다.

K8에 대해서도 동일한 설정이 필요합니다. 즉, 포드가 기본 이미지의 내용으로 볼륨을 채울 필요가 있습니다.

K8과 PVC로 가능합니까?

답변

0

Docker 이미지에 로컬 볼륨을 마운트하려고한다고 생각합니다. 즉, 로컬 폴더는 Docker 이미지 내부에 볼륨으로 마운트됩니다.

당신은 당신의 용기가 모든 노드에 배포 할 수 있기 때문에, 즉 hostPath 어떤에서 사용할 수 있어야 의미 볼륨을 hostPath

http://kubernetes.io/docs/user-guide/volumes/#hostpath

apiVersion: v1 
kind: Pod 
metadata: 
    name: test-pd 
spec: 
    containers: 
    - image: gcr.io/google_containers/test-webserver 
    name: test-container 
    volumeMounts: 
    - mountPath: /test-pd 
     name: test-volume 
    volumes: 
    - name: test-volume 
    hostPath: 
     # directory location on host 
     path: /data 

주를 사용하여 부두 노동자 컨테이너에서 로컬 디렉토리를 마운트 할 수 있습니다 노드를 같은 내용으로 재현 할 수 있습니다.

간단히 말해서, 이것은 상호 작용하는 로컬 데이터를 마운트하는 것이 아니라 라이브러리, 인증서 또는 이와 유사한 것들을 마운트하는 것을 의미합니다.

을 사용하여 포드에 소량의 데이터를 마운트하는 것이 좋습니다.

+0

고맙습니다. 하지만 마운트는 기본 이미지의 내용으로 채워 집니까? 내 질문의 배경은 Zimbra를 Docker 컨테이너로 배포하려고 시도한 것이고 Zimbra 설치는/var 및/etc,/opt/zimbra의 파일을 수정해야합니다. 구성 파일은 A 테이너간에 공유되어야합니다. 가장 쉬운 방법은 일반 Docker에서 명명 된 마운트를 사용하는 것입니다. – Erwin

+0

'hostPath' 폴더를 마운트하면 내용에 액세스 할 수 있지만 thedoc에는 다음과 같이 언급되어 있습니다. "기본 호스트에서 작성된 디렉토리는 root 만 쓸 수 있습니다. 권한있는 컨테이너에서 루트로 프로세스를 실행해야하거나 hostPath 볼륨에 쓸 수 있도록 호스트에서 파일 권한을 수정하십시오. " – MrE

+0

어쨌든 이것은 Kubernetes에서해야하는 것이 아닙니다. 귀하의 포드가 모두 동일한 호스트에 위치한다는 보장이 없기 때문입니다 (DaemonSets 또는 특정 선택자를 강제로 실행할 수는 있지만 Kubernetes 사용 목적을 상실 할 수 있습니다) – MrE