2017-02-22 4 views
0

minikube/Kubernetes를 실행 중이며 배포시 volumeMount에서 볼륨에 액세스하는 데 문제가 있습니다.Minikube/Kubernetes mountPath에 액세스 할 수 없습니다.

마이크로 서비스가 시작되면/config 디렉토리 (예 : "volumeMounts"의 "mountPath")에 액세스 할 수 없음을 확인할 수 있습니다. 호스트 경로/경로가 유효한지 확인했습니다.

여러 가지 기술을 실험했으며 배포 파일이 올바른지 확인했습니다. 또한 경로 사양 주위에 따옴표/큰 따옴표/따옴표를 사용하여 시도했지만이 문제를 해결하지 못합니다.

간단한 테스트 목적으로 "hostPath"를 사용하고 있습니다. 그러나이 문제는 해결해야 할 시나리오입니다.

내 minikube 구성은 아래에 설명되어있다 : 나는 맥 OS/시에라 버전 10.12.3 (16D32)에 minikube를 실행하고

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T07:30:54Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"darwin/amd64"} 
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"} 

.

내 배포 파일 (deployment.yaml) : 어떤 도움에 감사드립니다

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: atmp1000-deployment 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: atmp1000 
    spec: 
     containers: 
     - name: atmp1000 
     image: atmp1000 
     ports: 
     - containerPort: 7010 
     volumeMounts: 
      - name: atmp1000-volume 
      mountPath: '/config' 
     volumes: 
     - name: atmp1000-volume 
     hostPath: 
      path: '/Users/<username>/<some-path>/config' 

.

답변

1

내가 찾은 해결책은 다음과 같습니다. hostPath를 가져 와서 몇 단계를 거쳐 minikube (Mac의 경우)에서 작업하지만 몇 가지 "minikube delete"명령이 가장 필요합니다 현재 버전을 확인하고 환경을 재설정하십시오. 다음은이 기능을 활용하는 방법에 대한 몇 가지 추가 참고 사항은 다음과 같습니다

  • 내가 제대로 모든 작업을 만들기 위해 xhyve 드라이버를 사용했다 - 아마 다른 드라이버를 사용하여 작동하지만 내가 그들을 시도하지 않았다.

  • 나는 minikube 내가이 사용을 포함했다 다양한 방법을 발견 "/ 사용자"

  • 에서 시작해야한다 "볼륨/hostPath/경로"를 의미한다 "/ 사용자"에서 호스트 경로를 마운트 발견 클레임은 있지만 원래 질문의 파일은 이제 정확하고 간단한 구성을 반영합니다.

0

호스트 마운트 디렉토리는 아직 minikube에서 지원되지 않습니다. 확인하십시오 https://github.com/kubernetes/minikube/issues/2

내부적으로 minikube는 Kubernetes를 호스팅하는 가상 컴퓨터를 사용합니다. POD 사양에 hostPath을 지정하면 Kubernetes는 실제 호스트의 디렉토리가 아니라 VM 내부에 지정된 디렉토리를 마운트합니다.

호스트 시스템에서 실제로 액세스해야하는 경우 NFS 또는 다른 네트워크 기반 볼륨 유형을 사용해야합니다.

+0

확인. 나는 nfs를 시도 할 수있다. 그러나 minikube 문서는 hostPath가 minikube를 위해 사용될 수 있다고 명시하고있다. https://github.com/kubernetes/minikube를 보시오. http://blog.kubernetes.io/2016/07/ minikube-easy-run-kubernetes-locally.html). 어떤 차이가 있는지 모르겠지만 VirtualBox 버전을 사용하는 대신 Mac에서 xhyve 하이퍼 바이저를 사용하고 있습니다. –

+0

언급 한 첫 번째 링크부터 : "Minikube는 hostPath 유형의 PersistentVolumes를 지원합니다.이 PersistentVolumes는 미니 큐브 VM 내부의 디렉토리에 매핑됩니다." 마지막 문장에주의하십시오. 호스트 마운트가 VM 내부의 디렉토리를 기반으로한다고합니다. –

+0

hostPath에 대한 빠른 질문은 설명서에서 구체적으로 설명되어 있습니다. 호스트 파일의 내부에서 호스트 파일에 액세스하려는 경우 minikube VM과 포드 (pods)에서 호스트가 mounthPath에서 볼 수있는 파일을 놓아야하는 minikube 루트 디렉토리입니다 (이 방법은 모범 사례는 아니지만 특정 문제를 해결하려고합니다). –

관련 문제