Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

비밀정보를 차트와 애플리케이션에서 사용하기

Apollo가 생성한 Kubernetes Secret은 볼륨 마운트, 환경 변수 또는 애플리케이션 코드에서 사용할 수 있습니다. 차트에는 Secret의 이름과 읽을 키를 전달합니다.

Apollo 이름으로 Kubernetes 이름 참조

개체의 Config에서 설정 재정의를 편집합니다. 다음은 Apollo에서 examplesecret이라는 이름으로 만든 비밀정보의 Kubernetes 이름을 참조하는 표현식입니다.

{{ preprocess .Values.apollo.secrets.examplesecret.k8sSecretName }}

apollo.secrets 아래의 키에는 Apollo의 Secret name을 사용합니다. k8sSecretName이 실제 환경에 생성된 Kubernetes 이름을 반환합니다.

구분가상의 값
개체 이름example-entity
Apollo Secret nameexamplesecret
실제 Kubernetes Secret 이름example-entity-examplesecret
Secret 안에서 읽을 키token

개체의 설정 재정의에 연결

차트가 admin.existingSecretName과 admin.existingSecretKey를 입력으로 사용한다고 가정하겠습니다. 개체의 설정 재정의에는 다음 값을 지정합니다.

admin:
  existingSecretName: '{{ preprocess .Values.apollo.secrets.examplesecret.k8sSecretName }}'
  existingSecretKey: token

Apollo가 참조를 처리하면 차트는 실제 Kubernetes Secret 이름을 값으로 받습니다. 이 표현식은 Apollo의 설정 처리에 사용하며, 일반 Helm 템플릿에서 비밀값을 직접 읽는 기능이 아닙니다.

차트에서 볼륨으로 연결

가상의 차트에서 Pod의 볼륨을 정의하는 부분은 다음과 같이 구성할 수 있습니다. 이름이 지정되어 있으면 해당 Secret의 token 값을 secret.txt 파일로 제공합니다.

{{- if .Values.admin.existingSecretName }}
volumes:
  - name: admin-secret
    secret:
      secretName: {{ .Values.admin.existingSecretName | quote }}
      items:
        - key: {{ .Values.admin.existingSecretKey | quote }}
          path: secret.txt
{{- end }}

비밀정보를 사용할 컨테이너에는 같은 조건으로 볼륨 마운트를 연결합니다. 다음은 컨테이너 설정 안에 넣는 예시입니다.

{{- if .Values.admin.existingSecretName }}
volumeMounts:
  - name: admin-secret
    mountPath: /var/run/app-secret
    readOnly: true
{{- end }}

이 구성에서 애플리케이션은 /var/run/app-secret/secret.txt를 읽습니다. 볼륨의 Secret 참조는 Pod와 같은 네임스페이스에서 찾으므로, Apollo가 생성한 Secret과 개체의 설치 위치가 일치해야 합니다.