네임스페이스 관리

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 를 삭제합니다.


네임스페이스 생성

새로운 네임스페이스를 생성하려면:

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2. 오른쪽 상단에 있는(Namespace 추가) 을 클릭하거나 카드형으로 보기일 때는 마지막 카드 다음에 있는 을 클릭합니다.
  3. Namespace 추가 화면이 나타나면 다음 정보를 입력합니다.

    • Namespace 명: Namespace를 구분하기 위한 고유의 값입니다. 알파벳으로 시작하여 알파벳과 숫자로 구성된 3~30자리로 입력하세요.
    • ZDB 네임스페이스 : ZDB 네임스페이스 여부를 설정합니다. ON 으로 설정한 경우, ZDB Console 에서 조회 가능합니다. ((info) ZCP v1.1 업데이트 기능)

    • Resource Quotas: 각 항목에 대한 상세 정보는 Resource Quotas를 참고하세요.
    • Pod Default Limit Range: 각 항목에 대한 상세 정보는 Pod Default Limit Range를 참고하세요.
  4. 정보를 모두 입력하면 확인 을 클릭합니다.

Namespace 를 생성하면 Namespace 명으로 빌드 및 배포(Jenkins) 의 Folder 가 함께 생성됩니다.

네임스페이스 검색

Namespace를 Namespace 명으로 검색할 수 있습니다.

  1. Namespace 목록 위에 있는 검색어 입력 필드에 검색어를 입력합니다. 검색어는 Namespace 명을 입력하세요.
  2. 을 클릭하거나 Enter 키를 입력합니다.

네임스페이스 Resource 구성

네임스페이스의 라벨, Resource Quotas, Pod Default Limit Range 를 설정합니다.

Resource 구성 화면으로 이동

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

라벨 추가

라벨은 사용자에게 의미있는 Object의 식별 속성을 지정하기 위해 부여하는 key/value 쌍입니다.

  1. 라벨 아래에 있는 텍스트 필드에 key=value 형식으로 값을 입력합니다.
    예를 들어 key 가 enviroment 이고 value 가 production 이면 environment=production 으로 입력합니다.
  2. 추가 버튼을 클릭합니다.
  3. 팝업 화면이 뜨면 확인을 클릭합니다.

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

Resource Quotas 변경

  1. Namespace 관리 화면에서 Resource 구성 탭을 클릭합니다.
  2. Resource Quotas의 각 항목에 대한 텍스트 필드에 값을 입력합니다.
  3. 저장 버튼을 클릭합니다.

각 항목에 대한 상세 정보는 Resource Quotas를 참고하세요.

Pod Default Limit Range 변경

  1. Namespace 관리 화면에서 Resource 구성 탭을 클릭합니다.
  2. Pod Default Limit Range의 각 항목에 대한 텍스트 필드에 값을 입력합니다.
  3. 저장 버튼을 클릭합니다.

각 항목에 대한 상세 정보는 Pod Default Limit Range를 참고하세요.

Resource Quotas

여러 사용자 또는 팀이 고정된 수의 노드로 클러스터를 공유할 때 한 팀이 공정한 리소스를 사용할 수 있을 것이라는 우려가 있습니다. Resource Quotas는 관리자가 이 문제를 해결할 수 있는 도구입니다.

ZCP에서 설정할 수 있는 Resource Quotas는 다음과 같습니다:

CPU Requestsnon-terminal 상태의 모든 pod에서 CPU 요청 합은 이 값을 초과 할 수 없습니다.
CPU Limitsnon-terminal 상태 모든 pod에서 CPU 제한 합은 이 값을 초과 할 수 없습니다.
Memory Requestsnon-terminal 상태의 모든 pod에서 Memory 요청 합은 이 값을 초과 할 수 없습니다.
Memory Limitsnon-terminal 상태 모든 pod에서 Memory 제한 합은 이 값을 초과 할 수 없습니다.
Pods

네임스페이스에 존재할 수 있는 non-terminal 상태의 pod의 총 수입니다. .status.phase in (Failed, Succeeded)이 true이면 pod는 terminal 상태입니다.

Services

네임스페이스에 존재할 수 있는 총 서비스 수입니다.

Secrets

네임스페이스에 존재할 수 있는 총 Secret 수입니다.

Config Maps

네임스페이스에 존재할 수 있는 총 Config Map의 수입니다.

Persistent Volume Claims네임스페이스에 존재할 수 있는 총 Persistent Volume Claim의 수입니다.
Services Load Balancers네임스페이스에 존재할 수 있는 Load Balancer 의 총 서비스 수입니다.

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

Pod Default Limit Range

LimitRange Object를 사용하여 하나의 Pod를 생성할 때 Resource 제한의 기본값을 설정할 수 있습니다.

ZCP 에서 설정할 수 있는 Limit Range는 다음과 같습니다:

CPU RequestsPod을 생성할 때 CPU 요청 제한 기본값입니다.
CPU LimitsPod을 생성할 때 CPU 제한 기본값입니다.
Memory RequestsPod을 생성할 때 Memory 요청 제한 기본값입니다.
Memory Limits Pod을 생성할 때 Memory 제한 기본값입니다.

좀 더 상세한 내용은 Configure Default Memory Requests and Limits for a Namespace과 Configure Default CPU Requests and Limits for a Namespace 을 참고하세요.

네임스페이스 멤버 관리

네임스페이스의 멤버를 관리합니다.

멤버관리 화면으로 이동

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

멤버 생성

멤버관리 탭에서 직접 멤버생성을 할 수 있습니다.

  1. 멤버 목록 아래에 있는 멤버생성 버튼을 클릭합니다.
  2. 멤버 생성 팝업이 뜨면 사용자 정보를 입력하고 등록 버튼을 클릭합니다.

멤버 추가

  1. 멤버 추가 목록 위의 검색어에 추가하려는 멤버를 입력하고 을 클릭합니다.
  2. Namespace 권한을 변경하고 추가 열에 있는을 클릭합니다.

멤버 삭제

  1. 멤버 목록의 관리 열에서 삭제하려는 멤버의 을 클릭합니다.
  2. 팝업 화면이 뜨면 확인을 클릭합니다.

멤버 권한 변경

  1. 멤버 목록에서 Namespace 권한 열에 있는 선택박스에서 변경하려는 멤버의 권한을 선택합니다.
  2. 멤버 목록의 관리 열에서 권한을 변경하려는 멤버의 을 클릭합니다.

각 권한에 대한 설명은 다음과 같습니다:

권한명ClusterRoleZCP에서는?
admin

namespace 내부의 모든 resource 에 대해 읽고 쓰기 가능

다음 메뉴에 접근이 가능합니다.

  • 모니터링
  • 로깅
  • 알림
  • DevOps
    • 빌드 및 배포(Jenkins)
    • 소스 저장소(Gitea)
  • Image Registry
  • Catalog
  • 네임스페이스
  • 안내 및 도움말
cicd-manager

namespace 내부의 role, rolebinding 을 제외한 대부분 resource 에 대해 읽고 쓰기 가능한 edit ClusterRole 을 복사

다음 메뉴에 접근이 가능합니다.

  • 모니터링
  • 로깅
  • DevOps
    • 빌드 및 배포(Jenkins)
    • 소스 저장소(Gitea)
  • Image Registry
  • 안내 및 도움말
developer

namespace 내부의 role, rolebinding 을 제외한 대부분 resource 에 대해 읽기만 가능view ClusterRole 을 복사

다음 메뉴에 접근이 가능합니다.

  • 로깅
  • DevOps
    • 빌드 및 배포(Jenkins)
    • 소스 저장소(Gitea)
  • Image Registry
  • 안내 및 도움말

좀 더 상세한 내용은 Using RBAC AuthorizationUser-facing Roles 를 참고하세요.

멤버 검색

멤버를 사용자 ID, 이메일, 이름 등으로 검색할 수 있습니다.

  1. 멤버 목록 위에 있는 검색어 입력 필드에 검색어를 입력합니다. 검색어는 사용자 ID 또는 이메일 또는 이름을 입력하세요.
  2. 을 클릭하거나 Enter 키를 입력합니다.

네임스페이스 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 을 참고하세요.

네임스페이스 삭제

카드형 보기에서 삭제하려면:

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2. 삭제할 네임스페이스가 있는 카드에서 을 클릭합니다.

리스트형 보기에서 삭제:

  1. 사이드 메뉴에서 네임스페이스 를 선택합니다.
  2. 삭제할 네임스페이스가 있는 행에서 을 클릭합니다.


네임스페이스를 삭제하더라도 빌드 및 배포(Jenkins) Folder 는 삭제되지 않습니다. Folder 삭제도 필요할 경우에는 직접 삭제합니다.


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

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.