DevOps/AWS Architecture
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Service
이번 시간에는 서비스가 무엇인지에 대해서 알아보고, 서비스의 종류에 대해서 알아보도록 하겠습니다. 서비스란? 서비스 API Resource는 쿠버네티스에서 가장 중요한 리소스 중 하나입니다. 저희가 외부로부터 요청을 받고, 외부 트래픽을 분산시키기 위해서 서비스라는 API Resource가 필요합니다. 저번시간에는 Deployment를 통해 파드를 수평확장하는 방법을 배웠었습니다. 수평확장도 중요하지만, 외부로 부터 들어오는 트레픽을 받고, 이 여러 파드들에다가 트레픽을 분산하는 역할도 매우 중요합니다. 이러한 서비스는 여러 파드에 대한 요청을 분산하는 로드 밸런서 기능을 수행하게 됩니다. 이 서비스에서 사용하는 로드 밸런서는 L4로 IP/PORT로 로드벨런서 기능을 수행합니다. 그리고 추후에 알아볼 I..
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Deployment
이번시간에는 디플로이먼트가 무엇인지 알아보고 디플로이먼트의 배포전략에 대해서 간단히 살펴보도록 하겠습니다. 디플로이먼트란? 이전에는 REPLICA SET ===> NODE까지의 부분을 살펴보았습니다. 디플로이먼트는 REPLICA SET을 래핑하는 API 리소스 입니다. 사용자는 특수한 목적이 아니라면 파드와 레플리카셋이 아닌 디플로이먼트로 워크로드를 관리하게 됩니다. 디플로이먼트를 오브젝트를 생성하면 이에 대응되는 ReplicaSet과 Pod가 자동 생성되게 됩니다. 그리고 만약에 서비스 버전이 업데이트 되어 파드를 새로운 버전의 이미지 파드로 교체해야 한다거나, 새 버전의 이슈 ( ex Bug )가 발견되어 롤백을 진행해야 한다면?? 어떻게 해야 할까요.. 이 때 파드의 이미지 버전이 갱신될 때 배포전..
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: ReplicaSet
레플리카셋이란? 레플리카셋이란, 쿠버네티스에서 파드를 운영한다 하면, 이전에 도커 컴포즈를 사용했을 때, 동일 서비스에서 scale-out을 통해서 많은 컨테이너를 그 안에서 실행할 수 있었습니다. 우리가 쿠버네티스를 사용해서 웹 어플리케이션을 운용할 때에 파드의 수를 동적으로 늘릴 수도 있습니다. 가장 간단한 방법은 동일한 역할을 하는 파드를 여러개 찍어내면 될 것입니다. 그런데 yaml파일로 매번 다른 이름으로 파드를 찍어내는 것은 비효율적입니다. 그래서 쿠버네티스 상에는 이를 가능하게 하는 API 리소스가 존재합니다. 이게 바로 레플리카셋입니다. 레플리카셋은 정해진 수의 파드가 항상 실행할 수 있도록 관리해줍니다. 이 뿐만 아니라 만약 4개의 파드가 수행되어라! 라고 레플리카셋을 만들게 되었는데,..
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스 - Pod
파드란? 파드는 쿠버네티스가 컨테이너를 다루는 기본 단위라고 할 수 있습니다. 그리고 쿠버네티스 상에서 어플리케이션을 다양한 형태로 구성하고 운영할 수 있습니다. 그 떄 가장 기본이되는 단위입니다. 다양한 API Resource들이 있습니다. 예를 들면 Statefulset, Deployset, Daemonset, Job, CronJob, Replicaset,... 하지만 이들은 모두 Pod를 띄우게 됩니다. Pod는 1개 이상의 컨테이너로 구성된 컨테이너 집합이라고 할 수 있습니다. 도커랑 도커 컴포즈를 다룰 때, 가장 기본적인 단위가 컨테이너라고 했다면, 쿠버네티스에서는 이 컨테이너를 직접적으로 생산할 수 있는 방법은 없습니다. 어떻게든 컨테이너를 컨트롤 할 수 있는 방법은 Pod입니다. 또한 동일 ..