26.4. 로컬 프로비저너 배포
프로비저너를 시작하기 전에 모든 로컬 장치를 마운트하고 스토리지 클래스 및 디렉터리를 사용하여 ConfigMap을 생성합니다.
로컬 프로비저너를 배포하려면 다음을 수행합니다.
- local-storage-provisioner-template.yaml 파일에서 로컬 프로비저너를 설치합니다.
hostPath 볼륨을 사용하고 SELinux 컨텍스트를 사용하여 로컬 볼륨을 모니터링, 관리 및 정리할 수 있는 root 사용자로 포드를 실행할 수 있는 서비스 계정을 생성합니다.
$ oc create serviceaccount local-storage-admin $ oc adm policy add-scc-to-user privileged -z local-storage-admin
프로비저너 포드가 모든 Pod에서 생성한 로컬 볼륨의 콘텐츠를 삭제하도록 하려면 root 권한 및 SELinux 컨텍스트가 필요합니다. hostPath는 호스트의 /mnt/local-storage 경로에 액세스해야 합니다.
템플릿을 설치합니다.
$ oc create -f https://raw.githubusercontent.com/openshift/origin/release-3.11/examples/storage-examples/local-examples/local-storage-provisioner-template.yaml
CONFIGMAP
,SERVICE_ACCOUNT,
매개변수 값을 지정하여 템플릿 인스턴스화.NAMESPACE
및PROVISIONER_
IMAGE$ oc new-app -p CONFIGMAP=local-volume-config \ -p SERVICE_ACCOUNT=local-storage-admin \ -p NAMESPACE=local-storage \ -p PROVISIONER_IMAGE=registry.redhat.io/openshift3/local-storage-provisioner:v3.11 \ 1 local-storage-provisioner
- 1
- OpenShift Container Platform 버전 번호(예:
v3.11
)를 입력합니다.
필요한 스토리지 클래스를 추가합니다.
$ oc create -f ./storage-class-ssd.yaml $ oc create -f ./storage-class-hdd.yaml
예를 들면 다음과 같습니다.
storage-class-ssd.yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-ssd provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer
storage-class-hdd.yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-hdd provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer
기타 구성 가능한 옵션은 로컬 스토리지 프로비저너 템플릿을 참조하십시오. 이 템플릿은 모든 노드에서 Pod를 실행하는 DaemonSet을 생성합니다. Pod는 ConfigMap에 지정된 디렉터리를 감시하고 PV를 자동으로 생성합니다.
프로비저너는 PV가 릴리스될 때 수정된 디렉터리에서 모든 데이터를 제거하므로 루트 권한으로 실행됩니다.