Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Configure a Pod to Use a Projected Volume for Storage
파드의 스토리지에 프로젝티드 볼륨(Projected Volume)을 사용하도록 구성
이 페이지는 프로젝티드
볼륨을 사용하여 여러 기존 볼륨 소스들을
동일한 디렉터리에 마운트하는 방법을 보여준다. 현재 시크릿(secret)
, 컨피그맵(configMap)
, downwardAPI
,
그리고 서비스어카운트토큰(serviceAccountToken)
볼륨이 프로젝티드(projected)될 수 있다.
서비스어카운트토큰(serviceAccountToken)
은 볼륨 타입이 아니다.
시작하기 전에
쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어 있어야 한다. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 적어도 2개 포함된 클러스터에서 실행하는 것을 추천한다. 만약, 아직 클러스터를 가지고 있지 않다면, minikube를 사용해서 생성하거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있다.
버전 확인을 위해서, 다음 커맨드를 실행kubectl version
.
파드에 프로젝티드 볼륨을 구성
이 연습에서는 로컬 파일에 유저네임과 패스워드를 시크릿으로 생성한다. 이후 하나의 컨테이너를 포함한 파드를 생성하는 데, 이 때 시크릿을 동일한 공유 디렉터리에 마운트하기 위해 프로젝티드
볼륨을 사용한다.
다음은 파드의 구성 파일이다.
apiVersion: v1
kind: Pod
metadata:
name: test-projected-volume
spec:
containers:
- name: test-projected-volume
image: busybox:1.28
args:
- sleep
- "86400"
volumeMounts:
- name: all-in-one
mountPath: "/projected-volume"
readOnly: true
volumes:
- name: all-in-one
projected:
sources:
- secret:
name: user
- secret:
name: pass
-
시크릿을 생성한다.
# 유저네임과 패스워드를 포함한 파일들을 생성한다. echo -n "admin" > ./username.txt echo -n "1f2d1e2e67df" > ./password.txt # 생성한 파일들을 시크릿으로 패키징한다. kubectl create secret generic user --from-file=./username.txt kubectl create secret generic pass --from-file=./password.txt
-
파드를 생성한다.
kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
-
파드의 컨테이너가 정상적으로 실행되는지 확인한 다음, 파드에 대한 변경 사항을 확인한다.
kubectl get --watch pod test-projected-volume
The output looks like this:
NAME READY STATUS RESTARTS AGE test-projected-volume 1/1 Running 0 14s
-
다른 터미널을 이용해, 실행 중인 컨테이너에 대한 셸을 가져온다.
kubectl exec -it test-projected-volume -- /bin/sh
-
셸에서
projected-volume
디렉터리에 프로젝티드 소스들이 포함되어 있는지 확인한다.ls /projected-volume/
정리하기
파드와 시크릿을 제거한다.
kubectl delete pod test-projected-volume
kubectl delete secret user pass
다음 내용
프로젝티드
볼륨에 대해 더 알아보기.- all-in-one 볼륨 디자인 문서를 읽기.