Kubernetes/05. 컨트롤러 종류 및 설명 9

[쿠버네티스] EKS 에서 크론잡으로 스케줄 동작

들어가며: 잡이란? 크론잡이란? 크론잡 정의 크론잡 실행 내용 크론잡 고유의 설정과 유의점 크론잡으로 동작시키는 컨테이너를 개발할 때 주의점 들어가며: 잡(Job)이란? 잡(Job) 컨트롤러는 파드(컨테이너)의 애플리케이션(잡)의 실행이 완료/종료되는 것에 초점을 맞춘 컨트롤러입니다. 레플리케이션 컨트롤러, 레플리카셋, 데몬셋은 파드의 애플리케이션이 계속적으로 잘 동작하는 것을 초점으로 맞춘 것에 대비됩니다. 즉, 애플리케이션이 실행되고 실행이 완료되면 파드의 할 일이 끝난 것으로 간주하고 파드를 종료시킵니다. 잡 컨트롤러는 임시(Ad-hoc) 작업 및 배치(Batch) 작업에 유용하게 사용될 수 있습니다. 만약 애플리케이션이 실행되고 있는 중에 노드가 죽거나 파드의 실행이 완료되지 않았다면, 파드를 다..

[쿠버네티스] EKS를 활용한 디플로이먼트와 하위에 생성되는 레플리카셋

들어가며: 디플로이먼트란? 디플로이먼트 구성파일 디플로이먼트 생성 디플로이먼트 목록 표시 레플리카셋이란? 디플로이먼트 하위에 생성되는 레플리카셋 파드란? 레플리카셋으로 생성되는 파드 kubectl describe 명령으로 상세 정보 수집 들어가며: 해당 포스팅은 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트를 참고하여 작성했습니다. 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 - YES24 애플리케이션 엔지니어도 쉽게 배우는 실전 쿠버네티스 프로젝트를 만난다!클라우드 컴퓨팅, 컨테이너, 쿠버네티스라는 세 가지 인프라 관련 기술이 등장하면서 최신 서비스 개발 환경은 클라 www.yes24.com 디플로이먼트 업데이트 전략 대한 설명 추가적인 설명을 원한다면 이전 포스팅을 참고하시기 바랍니다. 디플..

[쿠버네티스] k8s 잡(Job) 컨트롤러란? 단일잡, 다중잡, 병렬잡

들어가며: 잡소개 잡 컨트롤러의 레이블 셀렉터 잡 컨트롤러 잡 컨트롤러 생성 잡 컨트롤러 확인 잡 컨트롤러 삭제 다중 잡 컨트롤러 다중 잡 컨트롤러 생성 다중 잡 컨트롤러 확인 다중 잡 컨트롤러 삭제 병렬 다중 잡 컨트롤러 병렬 다중 잡 컨트롤러 생성 병렬 다중 잡 컨트롤러 확인 병렬 다중 잡 컨트롤러 삭제 잡의 종료 파드 백오프(backoff) 유효 데드라인 들어가며: 잡 소개 잡(Job) 컨트롤러는 파드(컨테이너)의 애플리케이션(잡)의 실행이 완료/종료되는 것에 초점을 맞춘 컨트롤러입니다. 레플리케이션 컨트롤러, 레플리카셋, 데몬셋은 파드의 애플리케이션이 계속적으로 잘 동작하는 것을 초점으로 맞춘 것에 대비됩니다. 즉, 애플리케이션이 실행되고 실행이 완료되면 파드의 할 일이 끝난 것으로 간주하고 파드..

[쿠버네티스] k8s 레플리카셋(ReplicaSet) 이란? & 레플리케이션 컨트롤러와의 비교

들어가며: 레플리카셋를 왜 쓰는걸까요? 레플리카셋과 레플리케이션 컨트롤러의 비교 레플리카셋 생성 레플리카셋 확인 레플리카셋의 레이블 셀렉터 사용 matchLabels 레이블 셀럭터 matchExpressions 레이블 셀럭터 matchExpressions를 사용한 레플리카셋 생성 파드의 수평 스케일링 레플리케이션 컨트롤러 및 파드 삭제 들어가며 : 레플리카셋(replicaSet)를 왜 쓰는걸까요? 쿠버네티스의 기본 단위인 Pod는 여러 개의 컨테이너를 추상화해 하나의 애플리케이션으로 동작하도록 만드는 훌륭한 컨테이너 묶음입니다. 그러나 YAML에 포드만 정의해 생성하게 되면 이 Pod의 생애 주기(Lifecycle)은 컨테이너 삭제 시 영원히 사라지게 됩니다. 이처럼 yaml 파일에 포드만 정의해 생성할..

[쿠버네티스] k8s 스테이트풀셋을 이용한 MySQL 백업 복제본 구성

들어가며: 전체적인 설명 MySQL 설정 파일 컨피그맵 생성 서비스 생성 고가용성을 위한 MySQL 데이터베이스 생성 MySQL 데이터베이스 확인 들어가며: 전체적인 설명 공식 MySQL이미지를 이용하여 스테이트풀셋이 관리할 파드를 2개를 생성합니다. 2개를 생성하는 이유는 데이터베이스의 백업 복제본을 제공하기 위함입니다. 당연하지만 각각의 파드는 각각의 PVC를 요청하고 다른 PV를 사용함에 따라 별도의 상태를 가질 수 있습니다. MySQL 데이터베이스의 백업 복제본을 위해 xtrabackup을 이용하여 복제본을 구성하고, 첫 번째 생성되는 파드는 마스터(읽기/쓰기)로, 두 번째부터 생성되는 파드는 슬레이브(읽기 전용)로 구성됩니다. 마스터와 슬레이브용 설정 파일을 컨피그맵에 등록하고, 서비스는 데이터..

[쿠버네티스] 쿠버네티스 스테이트풀셋 (StatefulSet) 소개 및 관리

들어가며: 기존 컨트롤러의 문제점 스테이트풀셋(StatefulSet) 소개 스테이트풀셋 이란? 스테이트풀셋의 주의사항 스테이트풀셋의 파드 이름 규칙 스테이트풀셋의 파드 DNS 주소 규칙 스테이트풀셋의 스토리지 볼륨 스테이트풀셋의 스케일링 스테이트풀셋 관리 스테이트풀셋 기본 살펴보기 스테이트풀셋의 볼륨 클레임 템플릿 들어가며: 기존 컨트롤러라고 하면 레플리케이션 컨트롤러나 레플리카셋과 같은 본제본을 가지고 있는 컨트롤러를 의미합니다. 이후에서는 상징적으로 레플리카셋 컨트롤러로 대표해서 이야기 해보도록 하겠습니다. 레플리카셋은 파드 템플릿(replicaset.spec.template)에서 파드의 복제본을 생성합니다. 다음은 레플리카셋의 파드 템플릿의 예 입니다. ... template: metadata: l..

[쿠버네티스] 디플로이먼트 업데이트 전략(RolliingUpdate, ReCreate, Blue/Green, Canary)

들어가며: 디플로이먼트 란? 디플로이먼트의 전략 RollingUpdate Recreate 디플로이먼트 생성 및 확인 디플로이먼트 롤아웃 상태 확인 디플로이먼트 롤링업데이트 들어가며: 디플로이먼트 란? Deployment는 쿠버네티스에서 가장 널리 사용하는 오브젝트 중 한개입니다. 레플리카셋(ReplicaSet) 컨트롤러와 지금은 거의 사용하지않는 레플리케이션(Replication) 컨트롤러는 파드를 생성하고 관리합니다. 레플리케이션 컨트롤러보다 더 상위 수준의 컨트롤러 리소스가 있습니다. 그것이 디플로이먼트(Deployment) 리소스 입니다. 디플로이먼트는 애플리케이션(컨트롤러, 파드)을 배포하고 선언적으로 업데이트를 수행하는 리소스입니다. 디플로이먼트 리소스는 하위에 레플리카셋 컨트롤러를 제어하고 그..

[쿠버네티스] 데몬셋이란?

데몬셋 소개 데몬셋 생성 데몬셋 확인 노드 레이블 지정 노드 레이블 제거 데몬셋 삭제 데몬셋 소개 데몬셋(DaemonSet)은 노드 레이블과 매칭이 되는 모든 노드 또는 노드 레이블이 없다면 모든 노드에 파드를 하나씩 배치하는 컨트롤러입니다. 일반적으로 많이 사용하지않는 컨트롤러입니다. 기능은 레플리카셋과 비슷하지만 복제본은 지정하지 않습니다. 당연하게도 (노드 레이블과 매칭이 되는) 모든 노드에 하나씩의 파드만을 배치하기 때문입니다. 노드가 추가되면 자동으로 컨트롤러는 하나의 파드를 배치하게 되고, 노드가 제거되면 삭제된 파드를 다른 노드에 배치하지 않습니다. 이는 복제본을 제공하는 컨트롤러가 아니기 때문입니다. 각각의 노드마다 배치해야되는 특성이 있는 성능 수집이나 로그 수집이나 스토리지 서비스가 필..

[쿠버네티스] k8s 레플리케이션 컨트롤러(ReplicationController) 란?

들어가며: 레플리케이션 컨트롤러 소개 레플리케이션 컨트롤러 생성 레플리케이션 컨트롤러 확인 레플리케이션 컨트롤러와 파드 레플리케이션 컨트롤러와 레이블 파드의 수평 스케일링 레플리케이션 컨트롤러 및 파드 삭제 끝마치며: 들어가며: 쿠버네티스의 컨트롤러는 파드를 올바르게 동작하기 위해 특정 상태를 보장하기 위한 컨트롤러입니다. 특정 상태는 컨트롤러에 따라 동작하는 방식 및 정의하는 상태가 조심씩 다릅니다. 쿠버네티스 초기부터 이어져온 서비스 중 1개 입니다. 레플리카셋은 레플리케이션 컨트롤러를 대체하기 위해서 만들어졌기 때문에 거의 유사합니다. 그래서, 현재는 레플리케이션 컨트롤러보다 레플리카셋 또는 레플리카셋의 상위 개념인 디플로이먼트를 권장합니다. 레플리케이션 컨트롤러를 사용할 일은 없지만 아직까지는 사..