내 잡다한 노트

Jenkins 에이전트 본문

DevOps/Jenkins

Jenkins 에이전트

peanutwalnut 2024. 11. 21. 21:31

젠킨스의 Master-Agent 아키텍처는 작업(빌드, 테스트, 배포 등)을 분산해서 실행하도록 설계되었습니다. 이를 통해 젠킨스는 확장성과 성능을 극대화할 수 있습니다.

 

젠킨스 에이전트란?

  • **에이전트(Agent)**는 젠킨스 마스터의 지시에 따라 실제 빌드나 작업을 실행하는 서버 또는 프로세스입니다.
  • 이를 통해 젠킨스는 여러 서버에서 병렬로 작업을 실행할 수 있어 대규모 프로젝트에서도 효율적으로 운영됩니다.

 

Master-Agent 아키텍처

  1. Master (컨트롤러)
    • 젠킨스의 중심 역할을 담당하며 다음과 같은 기능을 수행합니다:
      • 작업(빌드, 테스트, 배포) 스케줄링.
      • 작업 로그 수집 및 표시.
      • 에이전트 관리.
      • 플러그인 및 사용자 인터페이스 제공.
  2. Agent (노드)
    • 실제로 작업을 실행하는 노드로, CPU, 메모리 등의 자원을 사용해 빌드를 수행합니다.
    • 에이전트는 반드시 젠킨스 마스터와 통신할 수 있어야 합니다.

 

에이전트 구성 방식

젠킨스 에이전트는 다양한 방식으로 설정할 수 있습니다:

  1. 스태틱 에이전트
    • 특정 서버를 에이전트로 설정하여 항상 사용.
    • 장점: 설정이 간단하고 안정적.
    • 단점: 리소스 확장에 한계.
  2. 다이내믹 에이전트
    • 필요할 때만 생성되는 에이전트.
    • Docker, Kubernetes 등을 통해 에이전트를 동적으로 생성.
    • 장점: 리소스를 효율적으로 사용 가능.
    • 단점: 설정이 다소 복잡.

 

에이전트를 사용하면 좋은 경우

  1. 병렬 빌드
    여러 에이전트를 통해 작업을 병렬로 실행하여 빌드 시간을 단축.
  2. 리소스 분산
    CPU/메모리가 부족한 마스터 노드 대신 에이전트에서 빌드를 실행.
  3. 특화된 환경 요구
    • 특정 에이전트에서만 필요한 빌드 도구나 라이브러리를 설치.
    • 예: Windows에서만 실행해야 하는 작업.
  4. 클라우드 활용
    • AWS, Azure, GCP 같은 클라우드에서 에이전트를 실행해 확장성 제공.

'DevOps > Jenkins' 카테고리의 다른 글

Jenkinsfile 이란?  (0) 2024.11.27
Jenkins New item 페이지  (0) 2024.11.24
Jenkins agent  (0) 2024.11.24
Groovy 란?  (0) 2024.11.24
젠킨스 Jenkins  (1) 2024.11.21