버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

...

빌트인 타입

사용처

Opaque

임의의 사용자 정의 데이터

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

부트스트랩 토큰 데이터

4.1 불투명(Opaque) 시크릿 사용

(1) 명령어로 시크릿 생성

코드 블럭
root@k8s-master01:~/kb# cat prod-user.txt
prod-user
root@k8s-master01:~/kb# cat prod-pass.txt
prod-pass


root@k8s-master01:~/kb# kubectl create secret generic prod-user --from-file=./prod-user.txt --from-file=./prod-pass.txt
secret/prod-user-secret created


root@k8s-master01:~/kb# kubectl get secrets
NAME               TYPE     DATA   AGE
prod-user-secret   Opaque   2      4s


root@k8s-master01:~/kb# kubectl get secrets prod-user-secret -o yaml
apiVersion: v1
data:
  prod-pass.txt: cHJvZC1wYXNzCg==
  prod-user.txt: cHJvZC11c2VyCg==
kind: Secret
metadata:
  creationTimestamp: "2023-03-13T02:35:54Z"
  name: prod-user-secret
  namespace: default
  resourceVersion: "1226226"
  uid: 41a2cb2d-97f2-41bc-824f-c0c2783ec678
type: Opaque


*원래 값 확인방
root@k8s-master01:~/kb# echo cHJvZC11c2VyCg== | base64 --decode
prod-user

(2) yaml 파일로 시크릿 생성

  • yaml 파일로 생성시 필요 값들을 base64로 인코딩된 값을 넣어야 합니다.

...

코드 블럭
root@k8s-master01:~/kb# kubectl apply -f prod-user-secret.yaml


root@k8s-master01:~/kb# kubectl get secrets
NAME        TYPE     DATA   AGE
prod-user   Opaque   2      5s


root@k8s-master01:~/kb# kubectl get secrets prod-user -o yaml
apiVersion: v1
data:
  password: cHJvZC1wYXNz
  username: cHJvZC11c2Vy
kind: Secret
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"password":"cHJvZC1wYXNz","username":"cHJvZC11c2Vy"},"kind":"Secret","metadata":{"annotations":{},"name":"prod-user","namespace":"default"},"type":"Opaque"}
  creationTimestamp: "2023-03-13T02:49:45Z"
  name: prod-user
  namespace: default
  resourceVersion: "1228228"
  uid: a5eff12c-2329-4697-92f7-f252a4f724ba
type: Opaque

(3) 시크릿 사용

코드 블럭
apiVersion: apps/v1
kind: Deployment
metadata:
  name: secretapp
  labels:
    app: secretapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: secretapp
  template:
    metadata:
      labels:
        app: secretapp
    spec:
      containers:
      - name: testapp
        image: nginx:1.19
        ports:
        - containerPort: 8080
        env:
          - name: SECRET_USERNAME
            valueFrom:
              secretKeyRef:
                name: prod-user
                key: username
          - name: SECRET_PASSWORD
            valueFrom:
              secretKeyRef:
                name: prod-user
                key: password

...