쿠버네티스 인스턴스용 에이전트 관리
쿠버네티스용 에이전트를 다룰 때 다음 작업을 사용하세요.
에이전트 보기
- GitLab 14.8에서 소개되었으며, 설치된
agentk
버전은 에이전트 탭에 표시됩니다.
필수 조건: - 최소한의 개발자 역할이 있어야 합니다.
에이전트 디렉터리을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다. 에이전트 구성 파일이 포함되지 않은 프로젝트로부터 등록된 에이전트를 볼 수 없습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 에이전트 탭을 선택하여 GitLab을 통해 연결된 클러스터를 확인합니다.
이 페이지에서 다음을 볼 수 있습니다:
- 현재 프로젝트에 등록된 모든 에이전트
- 연결 상태
- 클러스터에 설치된
agentk
의 버전 - 각 에이전트 구성 파일의 경로
공유된 에이전트 보기
- GitLab 16.1에서 소개되었습니다.
프로젝트가 소유한 에이전트 외에도 ci_access
및 user_access
키워드로 공유된 에이전트를 볼 수 있습니다. 에이전트가 프로젝트와 공유되면 자동으로 프로젝트 에이전트 탭에 표시됩니다.
공유된 에이전트 디렉터리을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 에이전트 탭을 선택합니다.
공유된 에이전트 및 그들의 클러스터가 표시됩니다.
에이전트의 활동 정보 보기
- GitLab 14.6에서 소개되었습니다.
활동 로그는 문제를 식별하고 문제 해결에 필요한 정보를 얻는 데 도움이 됩니다. 현재 날짜로부터 일주일 전의 이벤트를 확인할 수 있습니다. 에이전트의 활동을 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 활동을 보려는 에이전트를 선택합니다.
활동 디렉터리에는 다음이 포함됩니다:
- 에이전트 등록 이벤트: 새 토큰이 생성된 경우
- 연결 이벤트: 에이전트가 클러스터에 성공적으로 연결된 경우
연결 상태는 에이전트를 처음으로 연결하거나 1시간 이상 비활성 상태 후에 기록됩니다.
UI에 대한 뷰 및 피드백은 이 에픽에서 확인하세요.
에이전트 디버깅
grpc_level
은 GitLab 15.1에 소개되었습니다.
에이전트의 클러스터 측 컴포넌트(agentk
)를 디버그하려면 다음과 같이 로그 수준을 설정합니다:
error
info
debug
에이전트에는 두 개의 로거가 있습니다:
- 기본 용도 로거로 기본값은
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