반응형

Secret

  • 비밀번호 같은 민감한 정보를 저장하는 용도로 사용

생성

  • 명령어
    • kubectl create generic secret명 --from-file~
    • 실제 값은 base64 로 인코딩한 값이 들어간다.
  • 템플릿
    apiVersion: v1
    kind: Secret
    metadata:
      name: user-pass-yaml
    type: Opaque
    data:
      username: 값
      password: 값
    • type
      • Opaque : 기본값
      • kubernetes.io/service-account-token : 쿠버네티스 인증토큰 저장
      • kubernetes.io/dockerconfigjson: 도커 저장소 인증정보 저장
      • kubernetes.io/tls: TLS 인증서 저장
    • data 값은 base64 로 인코딩 한 값을 넣어야 한다.
      • echo -n "username" | base64

사용

  • 환경변수로 사용

     

    spec:
      containers:
      - name:
        image:
        env:
        - name: SECRET_USERNAME
          valueFrom:
            secretKeyRef:
              name: user-pass-yaml
              key: username
  • volume 에 바인딩 하기
    spec:
      containers:
      - name:
        image:
        volumeMounts:
        - name: volume-secret
          mountPath: /etc/config
          readOnly: true
      volumes:
      - name: config-secret
        secret:
          secretName: user-pass-yaml 
  • 프라이빗 커네이너 이미지 pull
    • kubectl create secret docker-registry dockersecret --docker-username= --docker-password= --docker-email= --docker-service=https://~
    • 설정
      spec:
      containers:
      - name:
        image:
      imagePullSecrets:
      - name: dockersecret      
  • TLS 사용
    • kubectl create secret tls tlssecret --key tls.key --cert tls.crt

제한

  • secret 은 etcd 에 저장된다.
  • secret의 최대 용량은 1MB
  • 작은 용량의 secret 을 여러개 만들어도 문제가 생길수 있다.
  • etcd 는 접근 제한을 해야 한다.

출처 : 쿠버네티스 입문 - 90가지 예제로 배우는 컨테이너 관리자 자동화 표준 (동양북스)

728x90
반응형

+ Recent posts