Kubernetes 인스턴스를 위한 에이전트 관리
Kubernetes용 에이전트 작업 시 다음 작업을 사용하세요.
에이전트 보기
설치된 agentk
버전은 Agent 탭에 표시됩니다.
Prerequisites:
- 최소한 Developer 역할이 있어야 합니다.
에이전트 목록을 보려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
에이전트 구성 파일이 포함되지 않은 프로젝트의 등록된 에이전트를 볼 수 없습니다. - Operate > Kubernetes clusters를 선택합니다.
- Agent 탭을 선택하여 에이전트를 통해 GitLab에 연결된 클러스터를 봅니다.
이 페이지에서 다음을 볼 수 있습니다:
- 현재 프로젝트의 모든 등록된 에이전트.
- 연결 상태.
- 클러스터에 설치된
agentk
버전. - 각 에이전트 구성 파일의 경로.
에이전트 구성
에이전트를 구성하려면:
- 선택적으로 설치 중에 생성된
config.yaml
파일에 내용을 추가하세요 설치하는 동안.
에이전트 목록에서 에이전트 구성 파일을 신속하게 찾을 수 있습니다.
Configuration 열은 config.yaml
파일의 위치를 나타내거나 생성 방법을 보여줍니다.
에이전트 구성 파일은 다양한 에이전트 기능을 관리합니다:
- GitLab CI/CD 워크플로우의 경우, 에이전트가 귀하의 프로젝트에 접근하도록 인증한 후,
.gitlab-ci.yml
파일에kubectl
명령을 추가해야 합니다. - GitLab UI 또는 로컬 터미널에서 클러스터에 대한 사용자 접근 설정.
- 운영 컨테이너 스캔 설정.
- 원격 작업 공간 설정.
공유 에이전트 보기
- GitLab 16.1에서 도입됨.
프로젝트 소유의 에이전트 외에도, ci_access
및 user_access
키워드로 공유된 에이전트도 볼 수 있습니다.
에이전트가 프로젝트에 공유되면 자동으로 프로젝트 에이전트 탭에 나타납니다.
공유 에이전트 목록을 보려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- Operate > Kubernetes clusters를 선택합니다.
- Agent 탭을 선택합니다.
공유 에이전트 및 해당 클러스터 목록이 표시됩니다.
에이전트의 활동 정보 보기
활동 로그는 문제를 식별하고 문제 해결에 필요한 정보를 얻는 데 도움이 됩니다.
현재 날짜로부터 일주일 전의 이벤트를 볼 수 있습니다. 에이전트의 활동을 보려면:
- 왼쪽 사이드바에서 Search or go to를 선택하고 에이전트 구성 파일이 포함된 프로젝트를 찾습니다.
- Operate > Kubernetes clusters를 선택합니다.
- 활동을 보고 싶은 에이전트를 선택합니다.
활동 목록에는 다음이 포함됩니다:
- 에이전트 등록 이벤트: 새 토큰이 생성될 때.
- 연결 이벤트: 에이전트가 클러스터에 성공적으로 연결될 때.
연결 상태는 에이전트를 처음 연결할 때 또는 한 시간 이상 비활동 후에 기록됩니다.
UI에 대한 피드백을 이 에픽에서 보고하고 제공하세요.
에이전트 디버그
grpc_level
은 도입되었습니다 GitLab 15.1에서.
에이전트의 클러스터 측 구성 요소(agentk
)를 디버그하려면 사용 가능한 옵션에 따라 로그 레벨을 설정하세요:
error
info
debug
에이전트에는 두 개의 로거가 있습니다:
- 일반 용도 로거로, 기본값은
info
입니다. - gRPC 로거로, 기본값은
error
입니다.
에이전트 구성 파일 내 상위 observability
섹션을 사용하여 로그 레벨을 변경할 수 있습니다. 예를 들어 레벨을 debug
및 warn
으로 설정합니다:
observability:
logging:
level: debug
grpc_level: warn
grpc_level
이 info
이하로 설정되면 많은 gRPC 로그가 생성됩니다.
구성 변경 내용을 커밋하고 에이전트 서비스 로그를 확인하세요:
kubectl logs -f -l=app=gitlab-agent -n gitlab-agent
디버깅에 대한 더 많은 정보는 문제 해결 문서를 참조하세요.
에이전트 토큰 재설정
- 두 개의 토큰 한도는 도입되었습니다 GitLab 16.1에서
cluster_agents_limit_tokens_created
라는 플래그와 함께.- 두 개의 토큰 한도는 일반적으로 사용 가능합니다. GitLab 16.2에서 기능 플래그
cluster_agents_limit_tokens_created
가 제거되었습니다.
에이전트는 한 번에 두 개의 활성 토큰만 가질 수 있습니다.
다운타임 없이 에이전트 토큰을 재설정하려면:
- 새 토큰을 생성합니다:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 작업 > Kubernetes 클러스터를 선택합니다.
- 토큰을 생성할 에이전트를 선택합니다.
- 접속 토큰 탭에서 토큰 생성을 선택합니다.
- 토큰의 이름과 설명(선택 사항)을 입력하고 토큰 생성을 선택합니다.
- 생성된 토큰을 안전하게 저장합니다.
- 토큰을 사용하여 클러스터에 에이전트를 설치하고 에이전트를 다른 버전으로 업데이트합니다.
- 더 이상 사용하지 않는 토큰을 삭제하려면, 토큰 목록으로 돌아가서 사용 중지()를 선택합니다.
에이전트 제거
에이전트를 GitLab UI 또는 GraphQL API를 사용하여 제거할 수 있습니다. 에이전트와 관련된 토큰은 GitLab에서 제거되지만, Kubernetes 클러스터에는 변경 사항이 없습니다. 자원을 수동으로 정리해야 합니다.
GitLab UI를 통해 에이전트 제거
UI에서 에이전트를 제거하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 에이전트 구성 파일을 포함하는 프로젝트를 찾습니다.
- 작업 > Kubernetes 클러스터를 선택합니다.
- 테이블에서 에이전트 행의 옵션 열에서 수직적인 점 3개()를 선택합니다.
- 에이전트 삭제를 선택합니다.
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: "<full-path-to-agent-configuration-project>") { clusterAgent(name: "<agent-name>") { id tokens { edges { node { id } } } } } }
-
clusterAgentToken
을 삭제하여 GraphQL로 에이전트 레코드를 제거합니다.mutation deleteAgent { clusterAgentDelete(input: { id: "<cluster-agent-id>" } ) { errors } } mutation deleteToken { clusterAgentTokenDelete(input: { id: "<cluster-agent-token-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