[쿠버네티스 기초 17] Secret

이 포스팅은 UdemyCertified 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

© 2021. All rights reserved.

Powered by Hydejack v9.1.4