티스토리 뷰

Kubernetes

[Kubernetes] Kubernetes Secrets 실습

SchoolDevops 2022. 4. 11. 11:26

Secret 실습

Secret 조회하기.

kubectl get secrets

NAME                  TYPE                                  DATA   AGE
default-token-8k111   kubernetes.io/service-account-token   3      35m

Secret 상세 조회하기.

kubectl describe secrets default-token-8kx8z
Name:         default-token-8kx8z
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: default
              kubernetes.io/service-account.uid: 637836b0-5738-491f-9886-04e4ce00b2b4

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1066 bytes
namespace:  7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjJxQVhXVW4zODl2R2xBZWtZYnRZWjBBNHZRN2JOZDU1X19XMDdIczF6aVEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tOGt4OHoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjYzNzgzNmIwLTU3MzgtNDkxZi05ODg2LTA0ZTRjZTAwYjJiNCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.EWpjoUXkKTOLcbv4f4GYvHZ8IALvOZmUwS3GTl94WgZY0AVeTAWIaCc2RGSsmN1yon0SnNMpVmEoLS6hArILnzVl_0uaNNObvuPmQzHRWwOVlqZr7hdMqdMz-onuQMKfhFU4FzN9Rr9r2x3tn5VK0KL7G_ohIjNEVFcwTfqVjtZhmoyWTV1f_leuI8F7EIDv19jSQgAPyA1JKjS39qA9VNdyrKh0cga4mtkc7kIrrC99GiTRwy_SfD8XvLbBm6wme8binuGtapg9PlyDS-R_0iXTezo03iFHJCsvLLdx6DrTaD6T6L8dH5FHcRxcjC9gSj_Ro8BOnwwqGRgXArMXLQ

위 내용은 ca.crt, namespace, token 으로 3개의 secret 정보가 존재한다.

Secret 생성하기. (명령적 방법)

kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password

secret/db-secret created

생성 시크릿 확인하기.

kubectl get secrets

NAME                  TYPE                                  DATA   AGE
db-secret             Opaque                                3      19s
default-token-8kx8z   kubernetes.io/service-account-token   3      45m

Secret Type 알아보기.

  • Opaque: 임의의 사용자 정의 데이터 (kubectl create secret generic … 으로 이용)
  • kubernetes.io/service-account-token: 서비스 어카운트 확인용 토큰
  • kubernetes.io/dockercfg: 직렬화 된(serialized) ~/.dockercfg 파일
  • kubernetes.io/dockerconfigjson: 직렬화 된 ~/.docker/config.json 파일
  • kubernetes.io/basic-auth: 기본 인증을 위한 자격 증명(credential)
  • kubernetes.io/ssh-auth: SSH를 위한 자격 증명
  • kubernetes.io/tls: TLS 클라이언트나 서버를 위한 데이터
  • bootstrap.kubernetes.io/token: 부트스트랩 토큰 데이터

SecretType 참조

Pod 에서 Secret 사용하기.

apiVersion: v1
kind: Pod
metadata:
  labels:
    name: webapp-pod
  name: webapp-pod
  namespace: default
spec:
  containers:
  - image: kodekloud/simple-webapp-mysql
    imagePullPolicy: Always
    name: webapp
    envFrom:
    - secretRef:
        name: db-secret

envFrom 을 이용하여 secret 을 참조한다.

Secret 수정하기.

kubectl edit secrets db-secret

secret 을 수정하기 위해서는 base64 로 인코딩 된 값을 이용해야한다.

Encoding

echo "hello" | base64

aGVsbG8K

Decoding

echo "aGVsbG8K" | base64 --decode

hello

Secret 내용 조회하기.

kubectl get secrets/default-token-vdb9m --template= | base64 --decode

default
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함