본문 바로가기

Cloud/K8S

[K8S-Study-1-2] NFS 설정과 Minikube 연결 확인

목적

  • PV, PVC 사용에 있어서 문제가 없는지 선 확인 (minikube - host docker 연동에 대해서)
  • PV, PVC 대략적인 이해

환경

  • Mac M1 Monteray
  • Rancher Desktop 1.14.1
  • Minikube v1.33.1

진행 사항

  • NFS Docker 생성 (로컬 디렉토리와 마운트 하는 방식으로 진행)
    docker run -itd --privileged \
     --restart unless-stopped \ 
     -e SHARED_DIRECTORY=/data \ 
     -v $HOME/k8s-study/nfs:/data \ 
     -p 2049:2049 \ 
    itsthenetwork/nfs-server-alpine:12
  • minikube 동작
    HOMEBREW=$(which brew) && sudo ${HOMEBREW} services restart socket_vmnet
    
    minikube start --driver=qemu --network=socket_vmnet \ 
    --cpus=2 --memory=8192mb --nodes 1 -p minikube
  • K8S Storage Class 및 연동 확인
    • 192.168.105.1 은 host.minikube.internal로 설정되어 있는 값
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: nfs-pv
    spec:
      capacity:
        storage: 1Gi
      accessModes:
        - ReadWriteMany
      nfs:
        path: /
        server: 192.168.105.1
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: nfs-pvc
    spec:
    	storageClassName: ""
      volumeName: nfs-pv
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 1Gi
    
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: nfs-test-pod
    spec:
      containers:
      - name: test-container
        image: busybox
        command: [ "sleep", "3600" ]
        volumeMounts:
        - name: nfs-storage
          mountPath: /mnt/nfs
      volumes:
      - name: nfs-storage
        persistentVolumeClaim:
          claimName: nfs-pvc
  • 확인하는 방법
    kubectl exec -it nfs-test-pod -- /bin/sh
    
    # Pod Shell에서 
    ls /mnt/nfs 
    
    # 추가하면 Docker NFS /data와 /mnt/nfs가 동일하게 바뀐다.

추가 확인 사항

  • host.minikube.internal은 Minikube Node의 DNS에는 추가가 되어 있지만, Pod 내의 컨테이너에서는 별도 지정이 없는 경우 해당 값을 찾을 수 없음
    • K8S내부에서 DNS 같은 것 설정을 변경하면 동일하게 볼 수 있을 것 같긴 한데 찾아봐야 할 듯
728x90
반응형