Secret 관리

Print

Cloud Z CP의 기반이 되는 Kubernetes는 동일한 물리적 클러스터에 의해 지원되는 여러 개의 가상 클러스터를 지원합니다. 이러한 가상 클러스터를 네임스페이스라고 합니다.

좀 더 상세한 내용은 Namespaces를 참고하세요.

네임스페이스 보기

기존에 생성되어 있는 네임스페이스는 카드형이나 목록형으로 볼 수 있습니다.

네임스페이스 별로 CPU Request, Memory Request, CPU Limit, Memory Limit 등의 Resource 사용률을 볼 수 있습니다.

네임스페이스의 현재 상태와 네임스페이스에 대한 좀 더 상세한 정보를 볼 수 있는 대시보드로 이동할 수 있습니다.

카드형으로 보기

네임스페이스들을 직관적으로 보기를 원한다면 카드형으로 볼 수 있습니다.

네임스페이스들을 카드형으로 보려면:

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2.  버튼을 클릭합니다.

카드형에서는 네임스페이스 별로 다음의 정보를 볼 수 있습니다.

  • Namespace 명: Namespace를 구분하기 위한 고유의 값입니다. 링크를 클릭하면 Namespace의 상세 정보를 변경할 수 있습니다.
  • 생성일시: Namespace가 생성된 일시입니다.
  • 사용자 수: Namespace에 권한이 있는 사용자 수입니다.
  • 상태
    • 녹색(Active): 네임스페이스가 사용 중입니다.
    • 회색(Terminating): 네임스페이스가 삭제되고 있으며 새 Object에 사용할 수 없습니다.
  • Resource 사용률
    • (실제 사용하고 있는 값 / Resource Quotas 에 설정된 값) 으로 표시됩니다.
    • 50% 이하인 경우에는 녹색, 50% 이상인 경우에는 파란색80% 이상인 경우에는 빨간색으로 표시됩니다.
    • 다음 4가지 Resource가 표시됩니다.
      • CPU Request: Resource Quotas 로 설정된 Namespace 의 비율 중 어쩌고 저쩌고
      • CPU Limit: 
      • Memory Request: 
      • Memory Limit: 
  • Namespace 관리
    • 대시보드 화면으로 이동: 해당 Namespace 의 좀 더 상세한 정보를 볼 수 있는 대시보드 화면으로 이동합니다.
    • Namespace 삭제: Namespace 를 삭제합니다.

리스트형으로 보기

네임스페이스에 대한 좀 더 많은 정보를 한번에 보기를 원한다면 리스트형으로 볼 수 있습니다.

네임스페이스들을 리스트형으로 보려면:

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2.  버튼을 클릭합니다.

리스트형에서는 다음의 정보를 볼 수 있습니다.

  • Namespace 명: 링크를 클릭하면 상세 정보를 볼 수 있습니다.
  • Resource 사용률
    • (실제 사용하고 있는 값 / Resource Quotas 에 설정된 값) 으로 표시됩니다.
    • 50% 이하인 경우에는 녹색, 50% 이상인 경우에는 파란색, 80% 이상인 경우에는 빨간색으로 표시됩니다.
    • 다음 4가지 Resource가 표시됩니다.
      • CPU Request: Resource Quotas 로 설정된 CPU Request 값을 기준으로 합니다.
      • CPU Limit: Resource Quotas 로 설정된 CPU Limit 값을 기준으로 합니다.
      • Memory Request: Resource Quotas 로 설정된 Memory Request 값을 기준으로 합니다.
      • Memory Limit: Resource Quotas 로 설정된 Memory Limit 값을 기준으로 합니다.
  • 사용자 수: Namespace 에 권한이 있는 사용자 수입니다.
  • 상태 : Namespace 의 현재 상태입니다.
    • Active: 네임스페이스가 사용 중입니다.
    • Terminating: 네임스페이스가 삭제되고 있으며 새 Object에 사용할 수 없습니다.
  • 생성일시: Namespace 가 생성된 일시입니다.
  • 관리
    • 삭제: Namespace 를 삭제합니다.


네임스페이스 Secret 관리

Secret 은 비밀번호, OAuth 토큰 및 ssh 키와 같은 중요한 정보를 유지하기 위한 것입니다. 이 정보를 Secret 에 두는 것은 Pod 정의 또는 Docker Image에 그대로 넣는 것보다 안전하고 유연합니다.

Cloud Z CP 콘솔에서는 네임스페이스의 여러 어플리케이션에서 공통적으로 사용되는 아래 타입의 Secret을 관리 할 수 있습니다.

(각 어플리케이션을 위한 Secret은 해당 프로젝트에서 별도로 관리합니다.)

  • Docker Registry : 특정 Docker Registry에서 이미지를 가져오기 위한 서버 및 인증 정보를 포함합니다.
  • TLS : HTTPS 설정에 사용되는 인증서와 키 파일을 관리합니다.

좀 더 상세한 내용은 Secrets 를 참고하세요.

Secret 관리 화면으로 이동

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2. Namespace 명에 연결되어 있는 링크를 클릭합니다.
  3. Namespace 관리 화면이 나타나면 Secret 탭을 클릭합니다.


Secret 추가

  1. Secert 목록의 오른쪽 위에 있는 (Secret추가) 버튼을 클릭합니다.
  2. Secret 추가 팝업이 뜨면 타입에 맞는 정보를 입력하고 등록 버튼을 클릭합니다.

필드설명

  • Docker Registry
    • docker-server(필수) : Docker Registry 서버정보. 예) registry.cloudzcp.io
    • docker-username(필수) : Docker 로그인 사용자 아이디
    • docker-password(필수) : Docker 로그인 사용자 비밀번호
    • docker-email : Docker 로그인 사용자 이메일
  • TLS
    • certificate : 
    • key : 

Secret 조회

  1. 네임스페이스의 Secret 탭을 클릭하면 등록된 Secret 목록을 확인합니다.
  2. Secret Name을 클릭하면 Secret의 상세 정보를 포함한 팝업이 표시됩니다.
  3. TLS 타입의 경우, 클릭하여 파일을 다운로드 할 수 있습니다.

Secret 삭제

  1. Secret 목록에서 삭제하려는 Secret의 관리 열에 있는 을 클릭합니다.
  2. 확인을 위해 삭제하려는 Secret Name을 입력하고, 삭제 버튼을 클릭합니다.

Secret 검색

등록된 Secret 목록을 Secret Name으로 검색할 수 있습니다.

  1. Secret 목록 오른쪽 위에 있는  검색어 입력 필드에 검색어를 입력합니다.
  2. 을 클릭하거나 Enter 키를 입력합니다.


참고사항

Secret 수정 기능은 제공하지 않습니다. 삭제 후 재생성 또는 Kubernetes 명령어를 통해 직접 수정이 가능합니다.

kubectl CLI 를 활용한 Secret 관리

Secret 을 콘솔이 아닌 kubectl CLI 를 활용하여 관리할 수 있습니다. Docker Registry 유형의 Secret 은 Pod에서 ImagePullSecrets 에서 사용합니다.


Docker Registry 유형의 Secret은 다음 명령어로 생성합니다. my-docker-secret 라는 이름으로 Secret을 생성하게 됩니다.

kubectl create secret docker-registry my-docker-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
  • DOCKER_REGISTRY_SERVER : Docker Registry 서버정보. 예) registry.cloudzcp.io
  • DOCKER_USER : Docker 로그인 사용자 아이디
  • DOCKER_PASSWORD : Docker 로그인 사용자 비밀번호

  • DOCKER_EMAIL : Docker 로그인 사용자 이메일

제대로 생성되어 있는지 yaml 형식으로 확인할 수 있습니다. 

$ kubectl get secret my-docker-secret --output=yaml
apiVersion: v1
data:
  .dockerconfigjson: eyJodHRwczovL2luZGV4L ... J0QUl6RTIifX0=
kind: Secret
metadata:
  ...
  name: my-docker-secret
  ...
type: kubernetes.io/dockerconfigjson


위와 같이 data 하위에 .dockerconfigjson 필드를 확인할 수 있는데 Docker Credentials이 base64표시 되는 내용입니다.

입력한 내용이 맞는지 확인하기 위해서 다음 명령어를 실행합니다. 

$ kubectl get secret my-docker-secret --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode


{"auths":{"registry.cloudzcp.io":{"username":"billygoo","password":"xxxxxxxxxxx","email":"billy.goo@example.com","auth":"c3R...zE2"}}}


해당 결과에 auth 필드 값도 base64로 디코딩 하면 읽을 수 있습니다. 

$ echo "c3R...zE2" | base64 --decode
billygoo:xxxxxxxxxxx

좀 더 상세한 내용은 Specifying ImagePullSecrets on a Pod 을 참고하세요.

이 답변이 유용합니까? 아니오

Send feedback
도움을 드리지 못해 죄송합니다. 피드백을 주시면 이 문서의 품질을 높이겠습니다.