허쉬탱의 workspace

[쿠버네티스 초급] 09. Secret 본문

쿠버네티스/쿠버네티스 초급

[쿠버네티스 초급] 09. Secret

허쉬탱 2022. 8. 1. 09:59

[쿠버네티스 초급] 09

이 포스팅은 Udemy의 Certified Kubernetes Administrator with Practice Tests 강의를 정리한 내용입니다.

Secret 에 대해 알아봅시다.

  • Secret
  • 생성
    • Imperative
    • Declarative
  • 조회
  • 디코드
  • 활용
    • 볼륨으로 마운트

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

 

Comments