더북(TheBook)

이제 (분산 스토리지든 아니든) 볼륨을 포함하는 PostgreSQL 데이터베이스 파드를 배치할 준비가 끝났다. 애플리케이션 설계자는 파드와 영구볼륨클레임의 정의만 담당하면 되며, 영구볼륨은 신경 쓰지 않아도 된다. 영구볼륨은 클러스터의 인프라와 관계된 것으로 다른 이의 몫이다. 하지만 실습 환경에서는 일을 할 사람이 우리뿐이므로 한 단계가 추가된다. 노드에서 볼륨이 사용할 디렉터리 경로를 만들어야 한다.

실습 실제 클러스터에서는 노드에 로그인할 권한이 없는 경우가 많다. 그러므로 이를 우회하기 위해 호스트경로 마운트로 노드의 루트 디렉터리를 마운트한 sleep 파드를 이용하여 노드의 파일 시스템에 디렉터리를 생성한다.

# 노드의 디스크에 접근할 수 있는 sleep 파드를 실행
kubectl apply -f sleep/sleep-with-hostPath.yaml

# 파드가 준비될 때까지 대기
kubectl wait --for=condition=Ready pod -l app=sleep

# 영구볼륨에서 사용할 디렉터리를 생성
kubectl exec deploy/sleep -- mkdir -p /node-root/volumes/pv01

그림 5-15를 보면 루트 사용자 권한으로 실행된 sleep 파드를 통해 노드에 디렉터리를 만들었다. 심지어 노드에 직접적인 접근 권한이 없어도 가능하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.