개발/DevOps
[k8s tutorials] Projected Volume 사용하기 Configure a Pod to Use a Projected Volume for Storage
moonong
2022. 2. 13. 15:53
반응형
Configure a Pod to Use a Projected Volume for Storage
https://kubernetes.io/docs/tasks/configure-pod-container/configure-projected-volume-storage/
what is Projected volume ?
Projected Volume 은 여러 기존 볼륨 소스를 동일한 디렉토리에 매핑한다.
모든 볼륨 소스는 파드와 동일한 네임스페이스에 존재하여야 하며, 아래 유형의 볼륨을 projected 할 수 있다.
- secret
- configMap
- downwardAPI
- serviceAccountToken volumes
Hands-on
목표:
- Projected Volume 에 Secret 을 마운트 하여 사용
실습
1. Secret 생성
username.txt, password.txt 파일을 각각 생성하고, 해당 파일로 Secret 을 생성한다.
# Create files containing the username and password:
echo -n "admin" > ./username.txt
echo -n "1f2d1e2e67df" > ./password.txt
# Package these files into secrets:
kubectl create secret generic user --from-file=./username.txt
kubectl create secret generic pass --from-file=./password.txt
k get secrets
user, pass 라는 이름으로 Secret 이 생성된 것을 확인할 수 있다.
2. Projected Volume 생성
1 에서 생성한 Secret 을 사용하는 projected volume 을 생성한다.
apiVersion: v1
kind: Pod
metadata:
name: test-projected-volume
spec:
containers:
- name: test-projected-volume
image: busybox
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
kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
pod/test-projected-volume created
파드가 정상적으로 생성되고, running 되고 있는지 아래 커맨드를 통해 지켜본다.
kubectl get --watch pod test-projected-volume
3. 생성된 Projected Volume 의 내용 확인
다른 터미널을 열어, 생성한 파드 내부로 들어가 secret 볼륨이 정상적으로 마운트 되어 사용되고 있는지 확인한다.
kubectl exec -it test-projected-volume -- /bin/sh
ls /projected-volume/
password.txt username.txt
References.
반응형