Cloud Z CP의 기반이 되는 Kubernetes는 동일한 물리적 클러스터에 의해 지원되는 여러 개의 가상 클러스터를 지원합니다. 이러한 가상 클러스터를 네임스페이스라고 합니다.
좀 더 상세한 내용은 Namespaces를 참고하세요.
네임스페이스 조회
기존에 생성되어 있는 네임스페이스는 카드형이나 목록형으로 볼 수 있습니다.
네임스페이스 별로 CPU Request, Memory Request, CPU Limit, Memory Limit 등의 Resource 사용률을 볼 수 있습니다.
네임스페이스의 현재 상태와 네임스페이스에 대한 좀 더 상세한 정보를 볼 수 있는 대시보드로 이동할 수 있습니다.
카드형으로 보기
네임스페이스들을 직관적으로 보기를 원한다면 카드형으로 볼 수 있습니다.
네임스페이스들을 카드형으로 보려면:
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- 버튼을 클릭합니다.
카드형에서는 네임스페이스 별로 다음의 정보를 볼 수 있습니다.
- 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 를 삭제합니다.
리스트형으로 보기
네임스페이스에 대한 좀 더 많은 정보를 한번에 보기를 원한다면 리스트형으로 볼 수 있습니다.
네임스페이스들을 리스트형으로 보려면:
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- 버튼을 클릭합니다.
리스트형에서는 다음의 정보를 볼 수 있습니다.
- 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 를 삭제합니다.
네임스페이스 생성
새로운 네임스페이스를 생성하려면:
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- 오른쪽 상단에 있는(Namespace 추가) 을 클릭하거나 카드형으로 보기일 때는 마지막 카드 다음에 있는 을 클릭합니다.
- Namespace 추가 화면이 나타나면 다음 정보를 입력합니다.
- Namespace 명: Namespace를 구분하기 위한 고유의 값입니다. 알파벳으로 시작하여 알파벳과 숫자로 구성된 3~30자리로 입력하세요.
ZDB 네임스페이스 : ZDB 네임스페이스 여부를 설정합니다. ON 으로 설정한 경우, ZDB Console 에서 조회 가능합니다. ( ZCP v1.1 업데이트 기능)
- Resource Quotas: 각 항목에 대한 상세 정보는 Resource Quotas를 참고하세요.
- Pod Default Limit Range: 각 항목에 대한 상세 정보는 Pod Default Limit Range를 참고하세요.
- 정보를 모두 입력하면 확인 을 클릭합니다.
Namespace 를 생성하면 Namespace 명으로 빌드 및 배포(Jenkins) 의 Folder 가 함께 생성됩니다.
네임스페이스 검색
Namespace를 Namespace 명으로 검색할 수 있습니다.
- Namespace 목록 위에 있는 검색어 입력 필드에 검색어를 입력합니다. 검색어는 Namespace 명을 입력하세요.
- 을 클릭하거나 Enter 키를 입력합니다.
네임스페이스 Resource 구성
네임스페이스의 라벨, Resource Quotas, Pod Default Limit Range 를 설정합니다.
Resource 구성 화면으로 이동
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- Namespace 명에 연결되어 있는 링크를 클릭합니다.
- Namespace 관리 화면의 Resource 구성 탭이 바로 나타납니다.
라벨 추가
라벨은 사용자에게 의미있는 Object의 식별 속성을 지정하기 위해 부여하는 key/value 쌍입니다.
- 라벨 아래에 있는 텍스트 필드에 key=value 형식으로 값을 입력합니다.
예를 들어 key 가 enviroment 이고 value 가 production 이면 environment=production 으로 입력합니다. - 추가 버튼을 클릭합니다.
- 팝업 화면이 뜨면 확인을 클릭합니다.
좀 더 상세한 내용은 Labels를 참고하세요.
Resource Quotas 변경
- Namespace 관리 화면에서 Resource 구성 탭을 클릭합니다.
- Resource Quotas의 각 항목에 대한 텍스트 필드에 값을 입력합니다.
- 저장 버튼을 클릭합니다.
각 항목에 대한 상세 정보는 Resource Quotas를 참고하세요.
Pod Default Limit Range 변경
- Namespace 관리 화면에서 Resource 구성 탭을 클릭합니다.
- Pod Default Limit Range의 각 항목에 대한 텍스트 필드에 값을 입력합니다.
- 저장 버튼을 클릭합니다.
각 항목에 대한 상세 정보는 Pod Default Limit Range를 참고하세요.
Resource Quotas
여러 사용자 또는 팀이 고정된 수의 노드로 클러스터를 공유할 때 한 팀이 공정한 리소스를 사용할 수 있을 것이라는 우려가 있습니다. Resource Quotas는 관리자가 이 문제를 해결할 수 있는 도구입니다.
ZCP에서 설정할 수 있는 Resource Quotas는 다음과 같습니다:
CPU Requests | non-terminal 상태의 모든 pod에서 CPU 요청 합은 이 값을 초과 할 수 없습니다. |
---|---|
CPU Limits | non-terminal 상태의 모든 pod에서 CPU 제한 합은 이 값을 초과 할 수 없습니다. |
Memory Requests | non-terminal 상태의 모든 pod에서 Memory 요청 합은 이 값을 초과 할 수 없습니다. |
Memory Limits | non-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 Requests | Pod을 생성할 때 CPU 요청 제한 기본값입니다. |
---|---|
CPU Limits | Pod을 생성할 때 CPU 제한 기본값입니다. |
Memory Requests | Pod을 생성할 때 Memory 요청 제한 기본값입니다. |
Memory Limits | Pod을 생성할 때 Memory 제한 기본값입니다. |
좀 더 상세한 내용은 Configure Default Memory Requests and Limits for a Namespace과 Configure Default CPU Requests and Limits for a Namespace 을 참고하세요.
네임스페이스 멤버 관리
네임스페이스의 멤버를 관리합니다.
멤버관리 화면으로 이동
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- Namespace 명에 연결되어 있는 링크를 클릭합니다.
- Namespace 관리 화면이 나타나면 멤버관리 탭을 클릭합니다.
멤버 생성
멤버관리 탭에서 직접 멤버생성을 할 수 있습니다.
- 멤버 목록 아래에 있는 멤버생성 버튼을 클릭합니다.
- 멤버 생성 팝업이 뜨면 사용자 정보를 입력하고 등록 버튼을 클릭합니다.
멤버 추가
- 멤버 추가 목록 위의 검색어에 추가하려는 멤버를 입력하고 을 클릭합니다.
- Namespace 권한을 변경하고 추가 열에 있는을 클릭합니다.
멤버 삭제
- 멤버 목록의 관리 열에서 삭제하려는 멤버의 을 클릭합니다.
- 팝업 화면이 뜨면 확인을 클릭합니다.
멤버 권한 변경
- 멤버 목록에서 Namespace 권한 열에 있는 선택박스에서 변경하려는 멤버의 권한을 선택합니다.
- 멤버 목록의 관리 열에서 권한을 변경하려는 멤버의 을 클릭합니다.
각 권한에 대한 설명은 다음과 같습니다:
권한명 | ClusterRole | ZCP에서는? |
---|---|---|
admin | namespace 내부의 모든 resource 에 대해 읽고 쓰기 가능 | 다음 메뉴에 접근이 가능합니다.
|
cicd-manager | namespace 내부의 role, rolebinding 을 제외한 대부분 resource 에 대해 읽고 쓰기 가능한 edit ClusterRole 을 복사 | 다음 메뉴에 접근이 가능합니다.
|
developer | namespace 내부의 role, rolebinding 을 제외한 대부분 resource 에 대해 읽기만 가능한 view ClusterRole 을 복사 | 다음 메뉴에 접근이 가능합니다.
|
좀 더 상세한 내용은 Using RBAC Authorization의 User-facing Roles 를 참고하세요.
멤버 검색
멤버를 사용자 ID, 이메일, 이름 등으로 검색할 수 있습니다.
- 멤버 목록 위에 있는 검색어 입력 필드에 검색어를 입력합니다. 검색어는 사용자 ID 또는 이메일 또는 이름을 입력하세요.
- 을 클릭하거나 Enter 키를 입력합니다.
네임스페이스 Secret 관리
Secret 은 비밀번호, OAuth 토큰 및 ssh 키와 같은 중요한 정보를 유지하기 위한 것입니다. 이 정보를 Secret 에 두는 것은 Pod 정의 또는 Docker Image에 그대로 넣는 것보다 안전하고 유연합니다.
Cloud Z CP 콘솔에서는 네임스페이스의 여러 어플리케이션에서 공통적으로 사용되는 아래 타입의 Secret을 관리 할 수 있습니다.
(각 어플리케이션을 위한 Secret은 해당 프로젝트에서 별도로 관리합니다.)
- Docker Registry : 특정 Docker Registry에서 이미지를 가져오기 위한 서버 및 인증 정보를 포함합니다.
- TLS : HTTPS 설정에 사용되는 인증서와 키 파일을 관리합니다.
좀 더 상세한 내용은 Secrets 를 참고하세요.
Secret 관리 화면으로 이동
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- Namespace 명에 연결되어 있는 링크를 클릭합니다.
- Namespace 관리 화면이 나타나면 Secret 탭을 클릭합니다.
Secret 추가
- Secert 목록의 오른쪽 위에 있는 (Secret추가) 버튼을 클릭합니다.
- Secret 추가 팝업이 뜨면 타입에 맞는 정보를 입력하고 등록 버튼을 클릭합니다.
필드설명
- Docker Registry
- docker-server(필수) : Docker Registry 서버정보. 예) registry.cloudzcp.io
- docker-username(필수) : Docker 로그인 사용자 아이디
- docker-password(필수) : Docker 로그인 사용자 비밀번호
- docker-email : Docker 로그인 사용자 이메일
- TLS
- certificate :
- key :
Secret 조회
- 네임스페이스의 Secret 탭을 클릭하면 등록된 Secret 목록을 확인합니다.
- Secret Name을 클릭하면 Secret의 상세 정보를 포함한 팝업이 표시됩니다.
- TLS 타입의 경우, 클릭하여 파일을 다운로드 할 수 있습니다.
Secret 삭제
- Secret 목록에서 삭제하려는 Secret의 관리 열에 있는 을 클릭합니다.
- 확인을 위해 삭제하려는 Secret Name을 입력하고, 삭제 버튼을 클릭합니다.
Secret 검색
등록된 Secret 목록을 Secret Name으로 검색할 수 있습니다.
- Secret 목록 오른쪽 위에 있는 검색어 입력 필드에 검색어를 입력합니다.
을 클릭하거나 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 을 참고하세요.
네임스페이스 삭제
카드형 보기에서 삭제하려면:
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- 삭제할 네임스페이스가 있는 카드에서 을 클릭합니다.
리스트형 보기에서 삭제:
- 사이드 메뉴에서 네임스페이스 를 선택합니다.
- 삭제할 네임스페이스가 있는 행에서 을 클릭합니다.
네임스페이스를 삭제하더라도 빌드 및 배포(Jenkins) Folder 는 삭제되지 않습니다. Folder 삭제도 필요할 경우에는 직접 삭제합니다.
온라인상담
문의하기