Jenkins 시리즈 ④ Controller와 Agent — 빌드는 어디서 도는가
Controller·Node·Agent·Executor의 관계, Jenkinsfile에서 무엇이 어디서 실행되는지, SSH와 Inbound(TCP·WebSocket) 연결 방식, agent 지시어와 Docker·Kubernetes 임시 Agent, 그리고 Controller 하나에서 Agent로 넘어가는 순서를 정리했다.
// 가독성과 탐색성을 우선으로, 구현 메모와 기술 문서를 차곡차곡 쌓아가는 프론트엔드 블로그.
Tag
17개의 글이 연결되어 있습니다.
Controller·Node·Agent·Executor의 관계, Jenkinsfile에서 무엇이 어디서 실행되는지, SSH와 Inbound(TCP·WebSocket) 연결 방식, agent 지시어와 Docker·Kubernetes 임시 Agent, 그리고 Controller 하나에서 Agent로 넘어가는 순서를 정리했다.
CI/CD 개념부터 Jenkins 내부 구조, GitLab CI와 헷갈리는 Job·Pipeline 용어, 저장소 연동과 설치 위치 전략까지 Jenkins를 도입하기 전에 잡아야 할 그림을 정리했다.
push 한 번으로 배포가 끝나지 않는 이유를 파헤친다. GitLab CI가 이미지를 Harbor에 올리는 자동 단계와, docker service update --force로 Swarm replica를 롤링 교체하는 수동 단계가 왜 분리돼 있는지, :latest 태그의 함정과 함께 실제 클러스터 출력으로 정리했다.
Docker Swarm의 핵심 개념(Service, Task, Stack)을 정리하고, 왜 결국 Kubernetes로 넘어가게 되는지 실제 프로젝트 경험을 바탕으로 정리했다.
컨테이너 보안의 기초 — non-root 실행, 시크릿 관리, .dockerignore, 이미지 스캔, 리소스 제한까지 초보자도 챙겨야 할 핵심을 정리했다.
여러 컨테이너를 단일 명령으로 관리하는 docker compose의 구조, 핵심 옵션, 그리고 실무 활용 패턴을 초보자 눈높이로 정리했다.
Dockerfile 명령어 전체 정리 — CMD vs ENTRYPOINT, COPY vs ADD, ARG vs ENV의 차이와 레이어 캐시 최적화 패턴까지 초보자 눈높이로 다룬다.
컨테이너가 삭제돼도 데이터를 살리는 방법 — bind mount, named volume, tmpfs의 차이와 실무 활용을 초보자 눈높이로 정리했다.
Docker의 네트워크 모드(bridge, host, none), 컨테이너 간 통신, 포트 매핑 동작 원리를 초보자 눈높이로 정리했다.
컨테이너가 이미지와 어떻게 다른지, docker run 옵션의 의미, 컨테이너 생명주기와 실무에서 자주 쓰는 명령어를 초보자 눈높이로 정리했다.
Docker 이미지의 레이어 구조, ID·태그·다이제스트 차이, 그리고 이미지가 어떻게 만들어지고 공유되는지를 초보자 눈높이로 정리했다.
Docker Engine, Daemon, CLI의 관계와 macOS/Windows에서 가상머신이 도는 이유를 초보자 눈높이로 정리했다.
VM과 컨테이너의 차이, 이미지·컨테이너·레지스트리 구조, Dockerfile 작성 방법까지 Docker 핵심 개념을 정리했다.
GitLab CI/CD와 Jenkins의 구조, 파이프라인 작성 방식, 운영 부담을 실제 예시로 비교하고 팀 상황에 맞는 선택 기준을 정리했다.
컨테이너 오케스트레이션이 왜 필요한지, Kubernetes의 핵심 오브젝트(Pod, Deployment, Service, Ingress)를 실제 예시와 함께 정리했다.
PM2의 핵심 개념과 ecosystem.config.js 작성법, 무중단 배포·자동 재시작·로그 관리까지 실제 운영 환경에서 바로 쓸 수 있게 정리했다.