VSO 예제

VSO 예제 (Examples)

Vault Secrets Operator 프로젝트가 제공하는 예제와 사용 사례를 소개합니다.

출처: 문서

본문

오퍼레이터 프로젝트는 다음과 같은 예제를 제공해요.

  • 샘플 사용 사례는 여기에 문서화되어 있어요.
  • Terraform 기반 데모는 여기에 있어요.

프라이빗 네트워크의 쿠버네티스 클러스터를 위한 JWT 인증

Vault Secrets Operator는 JWT 인증 방식을 지원해요. JWT 인증은 발급자(issuer)의 공개 서명 키로 토큰을 검증합니다. Vault는 이 공개 키를 쿠버네티스 API에서 가져올 수 있는데, 쿠버네티스 API를 Vault에 노출할 수 없는 환경이라면 jwt_validation_pubkeys로 공개 키를 직접 제공할 수 있어요. 설정 방법은 JWT 검증 공개 키 사용 문서의 절차를 따라 주세요.

imagePullSecrets를 위한 VaultStaticSecrets 사용

Vault Secrets Operator는 VaultStaticSecretDestination.Type 필드를 설정해서, 시크릿 Type에 따라 쿠버네티스가 시크릿을 템플릿화하는 것을 지원해요. 프라이빗 컨테이너 레지스트리를 사용하고 있다면 kubernetes.io/dockerconfigjson 또는 kubernetes.io/dockerconfig 타입으로 Vault KV 시크릿의 내용을 쿠버네티스 시크릿에 적절히 포맷해서 쓸 수 있습니다.

# 시크릿을 Vault에 작성:
$ vault kv put kvv2/docker/config .dockerconfigjson=`cat ~/.docker/config.json`
# 애플리케이션 네임스페이스에 'myregistryKey'라는 k8s 시크릿을 채우는 VaultStaticSecret 적용
# 참고: 이 시크릿은 `default` VaultAuthMethod를 사용해요.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
  namespace: awesomeapps
  name: vault-kv-app
spec:
  type: kv-v2
  mount: kvv2
  path: docker/config
  # 대상 k8s 시크릿
  destination:
    name: myregistryKey
    create: true
    type: "kubernetes.io/dockerconfigjson"
---
# 예제 파드 (출처: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod)
apiVersion: v1
kind: Pod
metadata:
  name: foo
  namespace: awesomeapps
spec:
  containers:
    - name: foo
      image: janedoe/awesomeapp:v1
  imagePullSecrets:
   - name: myregistrykey

더 알아보기 (Learn more)