Kubernetes용 대시보드
Kubernetes용 대시보드 (Dashboard for Kubernetes)
쿠버네티스 클러스터의 상태를 직관적인 시각 인터페이스로 파악하고 싶다면, Kubernetes용 대시보드를 사용해요. 이 대시보드는 CI/CD로 배포했든 GitOps로 배포했든, 연결된 모든 Kubernetes 클러스터에서 동작합니다.
출처: 문서
본문
- 티어(Tier): Free, Premium, Ultimate
- 제공 방식(Offering): GitLab.com, GitLab Self-Managed, GitLab Dedicated
- 상태(Status): Beta
대시보드 구성하기
특정 환경에서 사용할 대시보드를 구성해요. 이미 존재하는 환경에 대시보드를 구성하거나, 환경을 만들 때 추가할 수 있습니다.
전제 조건:
- Kubernetes용 GitLab 에이전트가 설치되어 있고, 환경의 프로젝트나 그 상위 그룹에 대해
user_access가 구성되어 있어야 해요.
환경이 이미 존재하는 경우
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
- 왼쪽 사이드바에서 Operate > Environments를 선택해요.
- Kubernetes용 에이전트와 연결할 환경을 선택해요.
- Edit을 선택해요.
- Kubernetes용 GitLab 에이전트를 선택해요.
- 선택 사항. Kubernetes namespace 드롭다운 목록에서 네임스페이스를 선택해요.
- 선택 사항. Flux resource 드롭다운 목록에서 Flux 리소스를 선택해요.
- Save를 선택해요.
환경이 존재하지 않는 경우
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
- 왼쪽 사이드바에서 Operate > Environments를 선택해요.
- New environment를 선택해요.
- Name 필드를 채워요.
- Kubernetes용 GitLab 에이전트를 선택해요.
- 선택 사항. Kubernetes namespace 드롭다운 목록에서 네임스페이스를 선택해요.
- 선택 사항. Flux resource 드롭다운 목록에서 Flux 리소스를 선택해요.
- Save를 선택해요.
동적 환경용 대시보드 구성하기
변경 이력
- GitLab 17.6에서 도입.
동적 환경용 대시보드를 구성하려면:
.gitlab-ci.yml파일에서 에이전트를 지정해요. 에이전트 구성 프로젝트의 전체 경로 뒤에 콜론과 에이전트 이름을 지정해야 해요.
예를 들어:
deploy_review_app:
stage: deploy
script: make deploy
environment:
name: review/$CI_COMMIT_REF_SLUG
kubernetes:
agent: path/to/agent/project:agent-name
자세한 내용은 CI/CD YAML 문법 참조를 참고하세요.
대시보드 보기
변경 이력
- Kubernetes watch API 통합이 GitLab 16.6에서 도입, 기능 플래그 이름은
k8s_watch_api. 기본적으로 비활성화. - Kubernetes watch API 통합이 GitLab 16.7에서 기본 활성화.
- GitLab 17.1에서 일반 공개(GA). 기능 플래그
k8s_watch_api제거.
연결된 클러스터의 상태를 보려면 대시보드를 확인해요. Kubernetes 리소스와 Flux 조정(reconciliation)의 상태가 실시간으로 업데이트됩니다.
구성된 대시보드를 보는 방법:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
- 왼쪽 사이드바에서 Operate > Environments를 선택해요.
- Kubernetes용 에이전트와 연결된 환경을 선택해요.
- Kubernetes overview 탭을 선택해요.
파드 목록이 표시돼요. 파드를 선택하면 세부 정보를 볼 수 있습니다.
Flux 동기화 상태
대시보드에서 Flux 배포의 동기화 상태를 검토할 수 있어요. 배포 상태를 표시하려면 대시보드가 Kustomization과 HelmRelease 리소스를 가져와야 하는데, 그러려면 환경에 네임스페이스가 구성되어 있어야 해요.
GitLab은 환경 설정의 Flux resource 드롭다운 목록에서 지정한 Kustomization과 HelmRelease 리소스를 검색해요.
대시보드는 다음 상태 배지 중 하나를 표시합니다:
| 상태 | 설명 |
|---|---|
| Reconciled | 배포가 환경과 성공적으로 조정됨. |
| Reconciling | 조정이 진행 중. |
| Stalled | 인간의 개입 없이는 해결할 수 없는 오류 때문에 조정이 멈춤. |
| Failed | 복구할 수 없는 오류로 배포가 조정되지 못함. |
| Unknown | 배포의 동기화 상태를 가져올 수 없음. |
| Unavailable | Kustomization 또는 HelmRelease 리소스를 가져올 수 없음. |
Flux 조정 트리거하기
변경 이력
- GitLab 17.3에서 도입.
배포를 그 Flux 리소스와 수동으로 조정할 수 있어요.
조정을 트리거하려면:
- 대시보드에서 Flux 배포의 동기화 상태 배지를 선택해요.
- Actions(ellipsis_v) > Trigger reconciliation(retry)을 선택해요.
Flux 조정 일시 중지 또는 재개
변경 이력
- GitLab 17.5에서 도입.
UI에서 Flux 조정을 수동으로 일시 중지하거나 재개할 수 있어요.
조정을 일시 중지하거나 재개하려면:
- 대시보드에서 Flux 배포의 동기화 상태 배지를 선택해요.
- Actions(ellipsis_v)를 선택한 뒤 다음 중 하나를 선택해요: - Suspend reconciliation(stop): Flux 조정을 일시 중지. - Resume reconciliation(play): Flux 조정을 재개.
파드 로그 보기
변경 이력
- GitLab 17.2에서 도입.
구성된 대시보드에서 여러 환경에 걸친 문제를 빠르게 이해하고 해결하려면 파드 로그를 확인해요. 파드의 각 컨테이너에 대한 로그를 볼 수 있습니다.
- View logs를 선택한 뒤 로그를 볼 컨테이너를 선택해요.
파드 세부 정보에서도 파드 로그를 볼 수 있어요.
파드 삭제하기
변경 이력
- GitLab 17.3에서 도입.
실패한 파드를 다시 시작하려면 Kubernetes 대시보드에서 삭제하세요.
파드를 삭제하려면:
- Kubernetes overview 탭에서 삭제할 파드를 찾아요.
- Actions(ellipsis_v) > Delete pod(remove)를 선택해요.
파드 세부 정보에서도 파드를 삭제할 수 있어요.
상세 대시보드
변경 이력
- GitLab 16.4에서 도입, 기능 플래그 이름은
k8s_dashboard. 기본적으로 비활성화. - GitLab 16.7에서 일부 사용자에게 GitLab.com에서 활성화.
이 기능의 가용성은 기능 플래그로 제어돼요. 자세한 내용은 변경 이력을 참고하세요. 이 기능은 테스트용으로 제공되며 프로덕션 사용에는 준비되지 않았어요.
상세 대시보드는 다음 Kubernetes 리소스에 대한 정보를 제공해요:
- Pods
- Services
- Deployments
- ReplicaSets
- StatefulSets
- DaemonSets
- Jobs
- CronJobs
각 대시보드는 상태, 네임스페이스, age와 함께 리소스 목록을 표시해요. 리소스를 선택하면 라벨, YAML 형식의 상태, 어노테이션, spec을 포함한 더 많은 정보가 담긴 서랍(drawer)이 열립니다.
이 이슈에 설명된 초점 이동 때문에 상세 대시보드 작업은 중단된 상태예요.
상세 대시보드에 대한 피드백을 제공하려면 issue 460279를 참고하세요.
상세 대시보드 보기
전제 조건:
- Kubernetes용 GitLab 에이전트가 구성되어 있고,
user_access키워드로 환경의 프로젝트나 그 상위 그룹과 공유되어 있어야 해요.
상세 대시보드는 사이드바 탐색에 연결되어 있지 않아요. 상세 대시보드를 보는 방법:
- Kubernetes용 에이전트 ID를 찾아요: 1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요. 1. Operate > Kubernetes clusters를 선택해요. 1. 접근하려는 에이전트의 숫자 ID를 복사해요.
- 다음 URL 중 하나로 이동하되,
<agent_id>를 에이전트 ID로 바꿔요: | 리소스 유형 | URL | | --- | --- | | Pods |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/pods| | Services |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/services| | Deployments |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/deployments| | ReplicaSets |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/replicaSets| | StatefulSets |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/statefulSets| | DaemonSets |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/daemonSets| | Jobs |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/jobs| | CronJobs |https://myinstance.gitlab.com/-/kubernetes/<agent_id>/cronJobs|
문제 해결 (Troubleshooting)
Kubernetes용 대시보드를 다룰 때 다음 문제가 생길 수 있어요.
API 그룹에서 리소스를 나열할 수 없어요
Error: services is forbidden: User "gitlab:user:<user-name>" cannot list resource "<resource-name>" in API group "" at the cluster scope 같은 오류가 발생할 수 있어요.
이 오류는 사용자가 Kubernetes RBAC에서 지정된 작업을 하도록 허용되지 않았을 때 발생해요.
해결하려면 RBAC 구성을 확인하세요. RBAC가 올바르게 구성되어 있다면 Kubernetes 관리자에게 문의하세요.
GitLab 에이전트 드롭다운 목록이 비어 있어요
새 환경을 구성할 때 Kubernetes 클러스터를 구성했더라도 GitLab agent 드롭다운 목록이 비어 있을 수 있어요.
GitLab agent 드롭다운 목록을 채우려면 user_access 키워드로 에이전트에 Kubernetes 접근 권한을 부여하세요.