새로 개발한 애플리케이션을 쿠버네티스에서 사용하는 과정
- 깃허브 등 저장소에 저장해둔 애플리케이션 소스 코드를 내려받아 도커 컨테이너 이미지로 빌드 (docker build)
- 빌드한 컨테이너 이미지를 쿠버네티스에서 사용할 수 있도록 레지스트리에 등록 (docker push)
- 등록된 이미지를 기반으로 쿠버네티스 오브젝트 생성 (kubectl create)
- 생성한 오브젝트(파드, 디플로이먼트)를 외부에서 접속할 수 있도록 서비스 형태로 노출 (kubectl expose)
파이프라인
- 이런 과정을 파이프라인이라고 한다.
- 파이프라인을 자동화할 수 있는데, 자동화는 크게 지속적 통합 CI, 지속적 배포 CD로 나눈다.
- CI/CD는 실무적인 환경에서 변경 사항을 계속 추적해 좀 더 안정화된 애플리케이션으로 만들고, 이를 배포하는 과정을 자동화해 시스템을 안정적으로 운영하는데 쓰이는 개념
컨테이너 인프라 환경에서 CI/CD
CI - 지속적 통합
- 코드를 커밋하고 빌드했을 때 정상적으로 작동하는지 반복적으로 검증해, 애플리케이션의 신뢰성을 높이는 작업
- 이를 마친 애플리케이션은 신뢰할 수 있는 상태가됨
- 개발자가 소스를 커밋하고 푸시하면 CI단계로 들어감
- CI 단계에서는 애플리케이션이 자동 빌드되고 테스트를 거쳐 배포할 수 있는 애플리케이션인지 확인함
CD - 지속적 배포
- CI과정에서 생성된 신뢰할 수 있는 애플리케이션을 실제 상용 환경에 자동으로 배포하는 것을 의미
- 애플리케이션을 상용 환경에 배포할 때 고려해야할 사항을 CD에 미리 정의하면 실수를 줄이고, 실제 적용 시간을 최소화할 수 있습니다.
- CD 단계에서는 애플리케이션을 컨테이너 이미지로 만들어서 파드, 디플로에먼트, 스테이트풀셋 등 다양한 오브젝트 조건에 맞춰 미리 설정한 파일을 통해 배포함
젠킨스로 쿠버네티스 운영 환경 개선하기
모든 배포 환경을 컨테이너 인프라로 일원화하고, CI/CD 도구를 사용하면 애플리케이션에 맞는 환경을 적용해 자동을 배포할 수 있다.
- 개발자가 작성한 애플리케이션 소스를 푸시
- 쿠버네티스 내부에 설치된 젠킨스는 코드를 빌드하고 레지스트리에 푸시, 쿠베네티스에서 사용 가능한 형태로 배포
젠킨스는 작업 내용을 아이템 단위로 정의하고 조건에 따라 자동으로 작업을 수행함
젠킨스 주 사용 목적 : 애플리케이션을 컨테이너로 만들고 배포하는 과정을 자동화하기 위해
반응형
'서버' 카테고리의 다른 글
커버로스(Kerberos)란? 동작 이해하기 (0) | 2022.05.02 |
---|---|
[Nginx] putty에서 Nginx 설치 부터 실행, pm2 gitHub연결까지 (0) | 2021.03.31 |