[쿠버네티스 기초 17] Secret
in Kubernetes
이 포스팅은 Udemy
의 Certified Kubernetes Administrator with Practice Tests
강의를 정리한 내용입니다.
Secret 에 대해 알아봅시다.
Secret
- 비밀번호와 같은 민감한 정보를 암호화하여 관리하기 위한 오브젝트
- ConfigMap 과 유사하지만 데이터를 인코딩 혹은 해쉬화 하여 저장함
생성
Imperative
kubectl create secret generic <secret-name> \
--from-literal=<key>=<value> \
--from-literal=<key2>=<value2>
혹은 파일로부터
kubectl create secret generic <secret-name> \
--from-file=<path-to-file>
Declarative
configmap 과 다르게 반드시 value 부분을 해시화 값으로 넣어야 함
echo -n "mysql" | base64
apiVersion: v1
kind: Secret
metadata:
name: app-secret
data:
DB_Host: JKqw-na=12
DB_User: alknajk1
DB_Password: abk=123A
조회
kubectl get secrets
디코드
echo -n "bx1zc=qw" | base64 --decode
활용
...
spec:
containers:
- name: simple
...
envFrom:
- secretRef:
name: app-secret
혹은
...
spec:
containers:
- name: simple
...
env:
- name: DB_Password
valueFrom:
secretKeyRef:
name: app-secret
key: DB_Password
볼륨으로 마운트
각 attribute가 컨테이너 내에 파일로 생성됨
volumes:
- name: app-secret-volume
secret:
secretName: app-secret