본문으로 건너뛰기
버전: 1.0.4

7.7. 시크릿 저장소

어떨 때 보는가

  • 비밀번호나 인증 정보를 애플리케이션에 전달할 때
  • 여러 네임스페이스에서 같은 값을 쓸 때
  • 시크릿 동기화가 실패했을 때

시크릿 저장소란

비밀번호와 인증 정보를 클러스터 밖의 저장소에 두고, 필요한 네임스페이스가 그것을 받아 쓰는 방식입니다.

Kubernetes 의 일반 Secret 은 값이 클러스터 안에 그대로 들어 있습니다. 같은 값을 세 네임스페이스 에서 쓰려면 세 벌을 만들어야 하고, 값이 바뀌면 세 곳을 모두 고쳐야 합니다. 어느 하나를 빠뜨려도 아무 오류가 나지 않습니다.

시크릿 저장소를 쓰면 값은 저장소에 한 벌만 있고, 각 네임스페이스는 그것을 받아 옵니다. 저장소의 값이 바뀌면 정해진 주기마다 다시 읽어 갱신합니다.

메뉴: 클러스터 > 시크릿 저장소

일반 Secret 과 무엇이 다른가

일반 Secret시크릿 저장소
값이 있는 곳클러스터 안클러스터 밖 저장소
같은 값을 여러 곳에서네임스페이스마다 한 벌씩 만든다저장소에 한 벌, 각자 받아 온다
값이 바뀌면쓰는 곳을 모두 찾아 고친다저장소만 고치면 주기마다 반영된다
누가 언제 읽었는지남지 않는다모든 읽기·쓰기가 기록된다

애플리케이션 쪽에서는 차이가 없습니다. 시크릿 저장소가 만들어 주는 것도 결국 Kubernetes Secret 이라, 파드는 평소처럼 그것을 참조합니다.

화면 구성

탭 두 개로 나뉩니다.

시크릿 저장소 시크릿 탭
보는 것
시크릿이 네임스페이스가 저장소에서 받아 오는 값의 목록
관리저장소 자체의 상태. 클러스터 전체를 볼 권한이 있을 때만 나타납니다

시크릿 탭은 화면 위쪽의 네임스페이스 필터를 따릅니다.

시크릿 탭

이 네임스페이스가 저장소에서 받아 오는 값의 목록입니다.

네임스페이스를 하나만 골라야 버튼이 나옵니다. 화면 오른쪽 위 네임스페이스 필터에서 하나를 고르면 목록 위에 그 네임스페이스 상자가 열리고, 거기에 연결 상태와 [시크릿 가져오기] 가 있습니다. 여러 개를 고르거나 아무것도 고르지 않으면 어디에 만들지 정할 수 없어 목록만 나옵니다.

내용
이름가져오기 이름. 누르면 상세가 열립니다
네임스페이스그 값을 받는 네임스페이스
저장소 경로저장소의 어느 경로에서 읽어 오는지
동기화동기화됨 · 실패 · 대기 중
마지막 동기화마지막으로 값을 읽어 온 시각
Kubernetes Secret그 결과로 만들어진 Secret 의 이름

네임스페이스 연결

네임스페이스는 처음에 저장소와 연결되어 있지 않습니다. 네임스페이스를 하나 고르면 그 상자에 연결되지 않음 과 함께 [이 네임스페이스 연결하기] 가 나옵니다.

연결은 한 단계면 되고 관리자 도움이 필요 없습니다. 콘솔이 이 네임스페이스 안에 필요한 오브젝트 두 개를 만들 뿐이고, 저장소 쪽에는 아무것도 만들지 않습니다.

읽을 수 있는 경로는 자기 네임스페이스 아래로 제한됩니다. 경로 규칙이 그대로 접근 경계라, 다른 네임스페이스의 값은 연결해도 읽을 수 없습니다.

시크릿 가져오기

[시크릿 가져오기] 로 저장소의 값을 이 네임스페이스의 Kubernetes Secret 으로 가져옵니다.

항목설명
값을 지금 입력켜면 값을 함께 저장소에 넣고, 끄면 이미 저장소에 있는 값을 가져오기만 합니다
이름만들어질 Kubernetes Secret 의 이름
저장소 경로값이 있는(또는 저장될) 경로. 앞부분은 화면이 고정하며 고칠 수 없습니다
저장소의 어떤 값이 Secret 의 어떤 키가 되는지. 여러 개 넣을 수 있습니다
동기화 주기얼마마다 저장소를 다시 읽을지. 기본값은 1시간입니다

경로 앞부분이 고정된 것은 그 규칙이 곧 보안 경계이기 때문입니다. 다른 네임스페이스의 경로를 넣을 방법이 없어야 격리가 유지됩니다.

값을 지금 입력 을 끄는 경우는 값이 이미 저장소에 있을 때입니다. 다른 사람이 넣었거나 명령줄로 넣은 값을 가져올 때는 덮어쓸 이유가 없습니다.

동기화 주기를 짧게 잡지 않는 이유

주기를 짧게 잡으면 저장소 값의 변경이 빨리 반영됩니다. 그 대신 주기마다 저장소를 읽고, 그 읽기가 모두 감사 기록에 남습니다. 5분 주기는 1시간 주기보다 기록을 12배 만듭니다.

값이 자주 바뀌지 않는다면 기본값 1시간을 그대로 쓰십시오. 배포 직후처럼 즉시 반영이 필요하면 그때만 짧게 잡았다가 되돌립니다.

값을 여기서 볼 수 없는 이유

이 화면은 값을 읽지 않습니다. 목록과 상태만 보여 줍니다.

값을 화면에 띄우면 그 순간 화면을 보는 모든 사람이 값을 갖게 되고, 그 조회가 저장소 기록에는 남지 않습니다. 값이 필요한 것은 사람이 아니라 애플리케이션이므로, 값은 Kubernetes Secret 으로 전달되고 화면은 그 전달이 되고 있는지만 보여 줍니다.

상세 화면은 저장소의 어떤 값이 Secret 의 어떤 키가 되는지 를 보여 줍니다. 값 자체는 여기에 나오지 않습니다.

시크릿 제거

[시크릿 제거] 는 가져오기를 되돌립니다. 그에 딸려 만들어진 Kubernetes Secret 도 함께 사라집니다.

쓰고 있는 애플리케이션이 있으면 값을 잃습니다. 제거하기 전에 그 Secret 을 참조하는 파드가 있는지 확인하십시오.

저장소의 값은 그대로 남습니다. 언제든 다시 가져올 수 있습니다. 잘못 만든 가져오기는 지우고 다시 만들면 됩니다.

동기화가 실패했을 때

동기화 열이 실패 인 항목은 이유를 함께 보여 줍니다. 자주 나오는 것은 아래 셋입니다.

안내조치
저장소에서 경로를 찾지 못했습니다값이 아직 없거나 경로가 다릅니다경로를 다시 확인하거나 값을 먼저 저장소에 넣습니다
참조하는 SecretStore 가 없습니다네임스페이스 연결이 안 되어 있습니다[이 네임스페이스 연결하기] 를 먼저 실행합니다
저장소가 응답하지 않습니다저장소 자체가 동작하지 않습니다관리 탭에서 구성요소 상태를 봅니다. 권한이 없으면 운영자에게 문의합니다

원문 메시지를 보려면 [자세히 보기] 를 누릅니다.

관리 탭

저장소 자체가 정상인지 보는 화면입니다. 클러스터 전체를 볼 권한이 있을 때만 탭이 나타납니다.

시크릿 저장소 관리 탭

맨 위에 한 문장으로 상태를 말하고 그 옆에 수치 넷(저장소 · 동기화 오퍼레이터 · 연결된 네임스페이스 · 실패)을 둡니다. 그 아래는 그 문장을 뒷받침하는 근거입니다.

부분내용
구성요소저장소와 동기화 오퍼레이터의 파드 상태 (준비 여부 · 노드 · 재시작 횟수)
연결된 네임스페이스네임스페이스마다 연결 여부 · 시크릿 수 · 실패 수
고정 설정경로 규칙격리. 화면에서 바꿀 수 없습니다
감사 로그모니터링 콘솔의 감사 기록으로 이동합니다

고정 설정에 편집 수단을 두지 않은 것은 그 경계가 구조적으로 지켜지게 하기 위해서입니다. 화면에서 바꿀 수 없으면 잘못 바꿀 일도 없습니다.

감사 기록

저장소의 모든 읽기와 쓰기가 기록됩니다. 기록은 다른 감사 로그와 함께 수집되어 모니터링 콘솔에서 볼 수 있습니다.

애플리케이션이 값을 받아 가는 것도 읽기이므로, 동기화 주기가 짧으면 그만큼 기록이 늘어납니다.

자주 하는 일

하려는 것방법
저장소의 값을 애플리케이션에 전달시크릿 탭에서 [시크릿 가져오기]
처음 쓰는 네임스페이스 준비그 네임스페이스를 고른 뒤 [이 네임스페이스 연결하기] 를 한 번 실행
값이 반영되지 않는 이유 찾기동기화 열의 상태와 마지막 동기화 시각을 봅니다
값을 즉시 반영동기화 주기를 짧게 바꿨다가 반영 후 되돌립니다
잘못 만든 가져오기 정리[시크릿 제거]. 저장소의 값은 남습니다
저장소 자체가 정상인지 확인관리 탭의 구성요소 상태