관련링크
https://medium.com/hootsuite-engineering/building-docker-images-inside-kubernetes-42c6af855f25
Building Docker Images inside Kubernetes
The Problem
medium.com
Docker 이미지를 DockerHub등에 Push 하기위해서 Docker Runtime을 사용해야 한다.
이때
1. Jenkins에서 Docker Plugin만을 이용해서 Build하는 방법과
2. Jenkins에서 Kubernetes 노드를 연결하여 WorkerNode에 Agent를 생성하여 Build하는 방법이 있다.
각 방법의 장단점을 이야기 하고자 한다.
1번 방법의 경우 보안이 뛰어나다. 굳이 Kubernetes를 Jenkins가 접속할 필요가 없다.
다만, 부하가 Jenkins 내부 Docker Runtime에 몰리는 성능상의 문제가 발생한다. 그래서 Jenkins에 높은 리소스를 할당할 필요가 있다.
2번 방법의 경우 컨테이너 리소스를 배포할 대상인 Kubernetes 클러스터에 부하를 전가시킴으로써 합리적인 리소스 분산을 이룰수 있다. 다만, 해당 Kubernetes 클러스터의 스케쥴 계획에 지장이 생길뿐더러, Jenkins의 Agent가 Kubernetes 클러스터의 모든 자원을 접근할 수 있는 보안상의 취약점이 발생한다. 즉 원격에서 Jenkins Agent를 통해 Kubernetes 클러스터에 자원생성부터 삭제까지 모든 권한을 가지게 되는 것이다.
위 두가지 장단점을 고려하여 진행하길 바란다.
'PaaS > CI CD' 카테고리의 다른 글
App of Apps Pattern 이란? 그리고 ArgoCD에는 어떻게 정의해야 하나 (0) | 2022.06.02 |
---|---|
(Gitlab) Gitlab yum install 방법, 관리자 비밀번호 초기화 (0) | 2022.03.29 |
(Gitlab) Gitlab 도메인 설정 (0) | 2022.02.15 |
(JAVA-Jenkins) Java SpringFrameWork Jenkins 파이프라인 With Nexacro (0) | 2022.01.24 |
CI/CD 배포 전략 설계시 고려사항 (0) | 2022.01.17 |