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가 구성되어 있어야 해요.

환경이 이미 존재하는 경우

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
  2. 왼쪽 사이드바에서 Operate > Environments를 선택해요.
  3. Kubernetes용 에이전트와 연결할 환경을 선택해요.
  4. Edit을 선택해요.
  5. Kubernetes용 GitLab 에이전트를 선택해요.
  6. 선택 사항. Kubernetes namespace 드롭다운 목록에서 네임스페이스를 선택해요.
  7. 선택 사항. Flux resource 드롭다운 목록에서 Flux 리소스를 선택해요.
  8. Save를 선택해요.

환경이 존재하지 않는 경우

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
  2. 왼쪽 사이드바에서 Operate > Environments를 선택해요.
  3. New environment를 선택해요.
  4. Name 필드를 채워요.
  5. Kubernetes용 GitLab 에이전트를 선택해요.
  6. 선택 사항. Kubernetes namespace 드롭다운 목록에서 네임스페이스를 선택해요.
  7. 선택 사항. Flux resource 드롭다운 목록에서 Flux 리소스를 선택해요.
  8. Save를 선택해요.

동적 환경용 대시보드 구성하기

변경 이력

동적 환경용 대시보드를 구성하려면:

  • .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)의 상태가 실시간으로 업데이트됩니다.

구성된 대시보드를 보는 방법:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요.
  2. 왼쪽 사이드바에서 Operate > Environments를 선택해요.
  3. Kubernetes용 에이전트와 연결된 환경을 선택해요.
  4. Kubernetes overview 탭을 선택해요.

파드 목록이 표시돼요. 파드를 선택하면 세부 정보를 볼 수 있습니다.

Flux 동기화 상태

대시보드에서 Flux 배포의 동기화 상태를 검토할 수 있어요. 배포 상태를 표시하려면 대시보드가 KustomizationHelmRelease 리소스를 가져와야 하는데, 그러려면 환경에 네임스페이스가 구성되어 있어야 해요.

GitLab은 환경 설정의 Flux resource 드롭다운 목록에서 지정한 KustomizationHelmRelease 리소스를 검색해요.

대시보드는 다음 상태 배지 중 하나를 표시합니다:

상태 설명
Reconciled 배포가 환경과 성공적으로 조정됨.
Reconciling 조정이 진행 중.
Stalled 인간의 개입 없이는 해결할 수 없는 오류 때문에 조정이 멈춤.
Failed 복구할 수 없는 오류로 배포가 조정되지 못함.
Unknown 배포의 동기화 상태를 가져올 수 없음.
Unavailable Kustomization 또는 HelmRelease 리소스를 가져올 수 없음.

Flux 조정 트리거하기

변경 이력

배포를 그 Flux 리소스와 수동으로 조정할 수 있어요.

조정을 트리거하려면:

  1. 대시보드에서 Flux 배포의 동기화 상태 배지를 선택해요.
  2. Actions(ellipsis_v) > Trigger reconciliation(retry)을 선택해요.

Flux 조정 일시 중지 또는 재개

변경 이력

UI에서 Flux 조정을 수동으로 일시 중지하거나 재개할 수 있어요.

조정을 일시 중지하거나 재개하려면:

  1. 대시보드에서 Flux 배포의 동기화 상태 배지를 선택해요.
  2. Actions(ellipsis_v)를 선택한 뒤 다음 중 하나를 선택해요: - Suspend reconciliation(stop): Flux 조정을 일시 중지. - Resume reconciliation(play): Flux 조정을 재개.

파드 로그 보기

변경 이력

구성된 대시보드에서 여러 환경에 걸친 문제를 빠르게 이해하고 해결하려면 파드 로그를 확인해요. 파드의 각 컨테이너에 대한 로그를 볼 수 있습니다.

  • View logs를 선택한 뒤 로그를 볼 컨테이너를 선택해요.

파드 세부 정보에서도 파드 로그를 볼 수 있어요.

파드 삭제하기

변경 이력

실패한 파드를 다시 시작하려면 Kubernetes 대시보드에서 삭제하세요.

파드를 삭제하려면:

  1. Kubernetes overview 탭에서 삭제할 파드를 찾아요.
  2. 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 키워드로 환경의 프로젝트나 그 상위 그룹과 공유되어 있어야 해요.

상세 대시보드는 사이드바 탐색에 연결되어 있지 않아요. 상세 대시보드를 보는 방법:

  1. Kubernetes용 에이전트 ID를 찾아요: 1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾아요. 1. Operate > Kubernetes clusters를 선택해요. 1. 접근하려는 에이전트의 숫자 ID를 복사해요.
  2. 다음 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 접근 권한을 부여하세요.

더 알아보기 (Learn more)