쿠버네티스 인스턴스용 에이전트 관리
쿠버네티스용 에이전트를 다룰 때 다음 작업을 사용하세요.
에이전트 보기
- GitLab 14.8에서 소개되었으며, 설치된
 agentk버전은 에이전트 탭에 표시됩니다.
필수 조건: - 최소한의 개발자 역할이 있어야 합니다.
에이전트 디렉터리을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다. 에이전트 구성 파일이 포함되지 않은 프로젝트로부터 등록된 에이전트를 볼 수 없습니다.
 - 운영 > 쿠버네티스 클러스터를 선택합니다.
 - 에이전트 탭을 선택하여 GitLab을 통해 연결된 클러스터를 확인합니다.
 
이 페이지에서 다음을 볼 수 있습니다:
- 현재 프로젝트에 등록된 모든 에이전트
 - 연결 상태
 - 클러스터에 설치된 
agentk의 버전 - 각 에이전트 구성 파일의 경로
 
공유된 에이전트 보기
- GitLab 16.1에서 소개되었습니다.
 
프로젝트가 소유한 에이전트 외에도 ci_access 및 user_access 키워드로 공유된 에이전트를 볼 수 있습니다. 에이전트가 프로젝트와 공유되면 자동으로 프로젝트 에이전트 탭에 표시됩니다.
공유된 에이전트 디렉터리을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
 - 운영 > 쿠버네티스 클러스터를 선택합니다.
 - 에이전트 탭을 선택합니다.
 
공유된 에이전트 및 그들의 클러스터가 표시됩니다.
에이전트의 활동 정보 보기
- GitLab 14.6에서 소개되었습니다.
 
활동 로그는 문제를 식별하고 문제 해결에 필요한 정보를 얻는 데 도움이 됩니다. 현재 날짜로부터 일주일 전의 이벤트를 확인할 수 있습니다. 에이전트의 활동을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
 - 운영 > 쿠버네티스 클러스터를 선택합니다.
 - 활동을 보려는 에이전트를 선택합니다.
 
활동 디렉터리에는 다음이 포함됩니다:
- 에이전트 등록 이벤트: 새 토큰이 생성된 경우
 - 연결 이벤트: 에이전트가 클러스터에 성공적으로 연결된 경우
 
연결 상태는 에이전트를 처음으로 연결하거나 1시간 이상 비활성 상태 후에 기록됩니다.
UI에 대한 뷰 및 피드백은 이 에픽에서 확인하세요.
에이전트 디버깅
grpc_level은 GitLab 15.1에 소개되었습니다.
에이전트의 클러스터 측 컴포넌트(agentk)를 디버그하려면 다음과 같이 로그 수준을 설정합니다:
errorinfodebug
에이전트에는 두 개의 로거가 있습니다:
- 기본 용도 로거로 기본값은 
info입니다. - gRPC 로거로 기본값은 
error입니다. 
로그 수준은 예를 들어 다음과 같이 에이전트 구성 파일의 최상위 observability 섹션을 사용하여 변경할 수 있습니다:
observability:
  logging:
    level: debug
    grpc_level: warn
grpc_level을 info 또는 그 이하로 설정하면 많은 gRPC 로그가 생성됩니다.
구성 변경 사항을 커밋하고 에이전트 서비스 로그를 검사합니다:
kubectl logs -f -l=app=gitlab-agent -n gitlab-agent
디버깅에 대한 자세한 정보는 문제 해결 문서를 참조하세요.
에이전트 토큰 재설정
- GitLab 14.9에서 소개되었습니다.
 - GitLab 14.10에서 에이전트 토큰을 UI에서 취소할 수 있도록 소개되었습니다.
 - 두 개의 토큰으로 제한하는 피처 플래그인
 cluster_agents_limit_tokens_created가 포함된 GitLab 16.1에 소개되었습니다.- 두 개의 토큰으로 제한하는 피처 플래그인
 cluster_agents_limit_tokens_created가 GitLab 16.2에서 일반적으로 사용 가능해졌습니다. 피처 플래그cluster_agents_limit_tokens_created가 제거되었습니다.
에이전트는 한 번에 두 개의 활성 토큰만 가질 수 있습니다.
멈춤 없이 에이전트 토큰을 재설정하려면:
- 새 토큰을 생성하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
 - 운영 > 쿠버네티스 클러스터를 선택합니다.
 - 토큰을 생성하려는 에이전트를 선택합니다.
 - 액세스 토큰 탭에서 토큰 생성을 선택합니다.
 - 토큰 이름과 설명(선택사항)을 입력하고 토큰 생성을 선택합니다.
 
 - 생성된 토큰을 안전하게 보관하세요.
 - 토큰을 사용하여 클러스터에 에이전트 설치하고 다른 버전으로 에이전트 업데이트합니다.
 - 더 이상 사용하지 않는 토큰을 삭제하려면 토큰 디렉터리으로 돌아가 반려를 선택하세요.
 
에이전트 제거
에이전트는 GitLab UI나 GraphQL API를 사용하여 제거할 수 있습니다. 에이전트 및 관련 토큰은 GitLab에서 제거되지만 쿠버네티스 클러스터에는 변경 사항이 적용되지 않습니다. 이러한 리소스를 매뉴얼으로 정리해야 합니다.
GitLab UI를 통한 에이전트 제거
- GitLab 14.7에서 소개되었습니다.
 
UI에서 에이전트를 제거하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
 - 운영 > 쿠버네티스 클러스터를 선택합니다.
 - 테이블에서 에이전트에 대한 행에서 옵션 열에서 수직 줄기호()를 선택합니다.
 - 에이전트 제거를 선택합니다.
 
GitLab GraphQL API를 사용하여 에이전트 제거하기
- 대화형 GraphQL 탐색기에서 쿼리를 사용하여 
<cluster-agent-token-id>를 가져옵니다.- GitLab.com의 경우 https://gitlab.com/-/graphql-explorer로 이동하여 GraphQL 탐색기를 엽니다.
 - 자체 호스팅되는 GitLab의 경우 
https://gitlab.example.com/-/graphql-explorer로 이동하고gitlab.example.com을(를) 인스턴스의 URL로 바꿉니다. 
query{ project(fullPath: "<agent-구성-프로젝트의-전체-경로>") { clusterAgent(name: "<에이전트-이름>") { id tokens { edges { node { id } } } } } } - 
GraphQL을 사용하여
clusterAgentToken을 삭제함으로써 에이전트 레코드를 제거합니다.mutation deleteAgent { clusterAgentDelete(input: { id: "<클러스터-에이전트-id>" } ) { errors } } mutation deleteToken { clusterAgentTokenDelete(input: { id: "<클러스터-에이전트-토큰-id>" }) { errors } } - 
제거가 성공적으로 발생했는지 확인합니다. Pod 로그에
unauthenticated가 포함된 출력이 있는 경우, 에이전트가 성공적으로 제거된 것입니다.{ "level": "warn", "time": "2021-04-29T23:44:07.598Z", "msg": "GetConfiguration.Recv failed", "error": "rpc error: code = Unauthenticated desc = unauthenticated" } - 
클러스터에서 에이전트를 삭제합니다.
kubectl delete -n gitlab-kubernetes-agent -f ./resources.yml 
도움말