쿠버네티스 인스턴스를 위한 에이전트 관리
에이전트를 다룰 때 다음 작업들을 사용하세요.
에이전트 보기
- GitLab 14.8에서 도입되었으며, 설치된
agentk
버전은 에이전트 탭에 표시됩니다.
전제 조건:
- 최소한 Developer 역할이 있어야 합니다.
에이전트 목록을 보려면 다음을 수행하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일을 포함하는 프로젝트를 찾습니다. 에이전트 구성 파일이 포함되지 않은 프로젝트에서는 등록된 에이전트를 볼 수 없습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 에이전트 탭을 선택하여 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에서 폐기할 수 있습니다.
- GitLab 16.1에서 두 토큰 제한이 도입되었고
cluster_agents_limit_tokens_created
라는 플래그를 사용합니다.- GitLab 16.2에서 두 토큰 제한이 일반적으로 사용할 수 있게 되었습니다.
cluster_agents_limit_tokens_created
기능 플래그가 제거되었습니다.
한 에이전트에는 한 번에 두 개의 활성 토큰만 가질 수 있습니다.
수행하려면 에이전트 토큰을 다시 설정하세요:
- 새 토큰을 생성하세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 토큰을 생성하려는 에이전트를 선택하세요.
- 액세스 토큰 탭에서 토큰 생성을 선택하세요.
- 토큰의 이름을 입력하고 설명(선택 사항)을 입력한 다음 토큰 생성을 선택하세요.
- 생성된 토큰을 안전하게 저장하세요.
- 토큰을 사용하여 귀하의 클러스터에 에이전트를 설치하고 다른 버전으로 에이전트를 업데이트하세요.
- 더 이상 사용하지 않는 토큰을 삭제하려면 토큰 목록으로 돌아가 폐기()를 선택하세요.
에이전트 제거
GitLab UI를 사용하거나 GraphQL API를 사용하여 에이전트를 제거할 수 있습니다. 에이전트 및 관련 토큰은 GitLab에서 제거되지만 Kubernetes 클러스터에는 변경 사항이 없습니다. 해당 리소스를 수동으로 정리해야 합니다.
GitLab UI를 통해 에이전트 제거
- GitLab 14.7에서 소개됨.
UI에서 에이전트를 제거하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
- 운영 > 쿠버네티스 클러스터를 선택합니다.
- 테이블에서 에이전트가 있는 행에서 옵션 열에서 수직 타원 ()을 선택합니다.
- 에이전트 삭제를 선택합니다.
GitLab GraphQL API를 사용하여 에이전트 제거
- 대화형 GraphQL 탐색기에서 쿼리를 사용하여
<cluster-agent-token-id>
를 가져옵니다.- GitLab.com의 경우 https://gitlab.com/-/graphql-explorer로 이동하여 GraphQL 탐색기를 엽니다.
- Self-Managed GitLab의 경우
https://gitlab.example.com/-/graphql-explorer
로 이동하여 인스턴스의 URL로gitlab.example.com
을(를) 바꿉니다.
query{ project(fullPath: "<에이전트-구성-프로젝트의-전체-경로>") { 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