CKA 공부 28일차
in Devops on Kubernetes
Volume Driver Plugins in Docker
볼륨 드라이버에 대해 알아보자.
Default 볼륨 플러그인은 로컬이다. (도커 볼륨 디렉토리)
도커 컨테이너를 구동할 때 우리는 특정 볼륨 드라이버를 설정할 수 있다.
가령 AWS에서 제공하는 볼륨드라이버를 사용하면 클라우드 저장공간을 볼륨으로써 사용할 수 있게 된다.
Container Storage Interface
CLI, 컨테이너 런타임 인터페이스는 k8s와 컨테이너가 어떻게 통신할 수 있는지에 대한 인터페이스를 제공한다.
마찬가지로 CNI, 컨테이너 네트워크 인터페이스는 다른 네트워크 벤더들이 쿠버네티스와 어떻게 서로 통신할 수 있는지에 대한 인터페이스를 제공한다.
그리고 이번에 살펴볼 CSI, 컨테아너 저장소 인터페이스는 k8s와 통신할 수 있는 저장소들간의 인터페이스이다.
Volumes
컨테이너와 데이터는 수명을 함께한다.
이를 위해 Volume을 사용하면 컨테이너에 저장된 데이터를 영속화 가능하다.
파드 역시 마찬가지이며, 이러한 데이터를 보존하기 위해 Volume이 필요하다.
Persistent Volume
Persistent Volume은 쿠버네티스에서 관리하는 대용량 저장소 풀이다.
k8s의 파드들이 데이터를 보존하기 위해 Persistent Volume을 사용할 수 있다.
Persistent Volume Claims
PVC가 생기면 쿠버네티스는 PV와 PVC를 바인딩한다.
또한 PVC와 PV의 정의 파일에 노드셀렉터, 라벨을 통해 특정 PVC와 PV를 바인딩하는 것도 가능하다.
Storage Class
가령 퍼블릭 클라우드의 저장소를 사용한다고 해보자.
그러면 매번 애플리케이션이 저장소가 필요할 때 마다 구글 클라우드에 저장 공간을 만드는 명령어를 입력해야하고, 그에 대한 PVC를 또한 작성해주어야한다. 귀찮다.
위와 같은 과정을 정적 프로비저닝이라고 한다.
스토리지 클래스는 구글 스토리지를 자동으로 프로비저닝하고 PVC를 생성해준다.
이러한 과정을 동적 프로비저닝이라고 부른다.
StorageClass는 관리자가 사용자 요청으로부터 PV를 생성해주는 것과 달리, StorageClass를 통해 자동으로 수행할 수 있다.
가령 StorageClass를 사용하면 실버, 골드, 플래티넘과 같이 유저 등급에 따른 저장공간을 나눠놓고 해당 저장소의 옵션을 다르게 주는 것 또한 가능하다.