본문 바로가기

MSA

(6)
Kubernetes 기본개념 - 구조 오늘은 쿠버네티스 클러스터의 기본 구조에대해서 정리해보려고한다. Master(Control Plane) & Node(Worker Machines) - 쿠버네티스에는 마스터, 노드가 존재한다. - 노드에서는 실제 어플리케이션의 레벨의 서비스들이 동작하고 있는 공간이며 마스터는 이러한 워커 노드들의 상태를 관리하기 위한 공간이라고 생각하면 된다. - 쿠버네티스는 3개(마스터 1개, 워커 2개) 의 노드로 구성을 권장하는데 고가용성 클러스터를 구성하는 경우 여러개의 마스터 노드를 두기도 한다. Master (Control Plane) 전체 클러스터를 관리하는 역할을 하며 kube-api-server, kube-controller-manager, kube-scheduler, cloud-controller-man..
Container란?? Docker의 가장 기본적인 요소인 Container의 개념에 대해서 정리해보려고한다. Container Host OS상에 가상으로 논리적인 구역을 만들어 어플리케이션을 작동시키기 위해 라이브러리 등을 하나로 모아 별도의 서버인것처럼 사용할 수 있게 만든 것 리눅스에서 프로세스 격리를 위해 사용하던 기술들을 조합하여 발전한 것으로 chroot, namespaces, cgroup을 조합하여 만들어진 LXC(Linux Container)에서 발전되었다.
Virtual Machine vs Container Container와 VM을 비교할때 설명하는 부분이 정리가 필요하여 이곳에 정리하려한다. VM(Virtual Machine) 컴퓨터 환경을 가상화하여 소프트웨어화 한것으로 Hypervisor위에 OS, Memory, Driver 등과 같은 컴퓨터환경이 구성되기위해 필요한 요소들이 갖춰진다. 서버 한대에서 여러개의 OS를 사용할 수 있는 장점과 서버공간을 효율적으로 사용할 수 있다. Container VM과 비교하였을때 어플리케이션 중심으로 설계되었다고 볼 수 있다. Container는 별도의 OS나 Driver없이 Host OS를 공유한다. 개별 어플리케이션을 위한 가상공간을 할당해준다. 컨테이너 기술은 리눅스에서 프로세스 격리를 위해 사용하던 기술들을 조합하여 발전한 것으로 chroot, namespa..
Kubernetes 개념 - Object 먼저 Kubernetes란??? Kubernetes : 구글에서 개발한 컨테이너 오케스트레이션 다음은 Kubernetes가 구성되는 개념인 Object와 Controller에 대해서 정리해보려고한다. Object란 "하나의 의도를 담은 레코드" 라고 쿠버네티스 공식문서에 나와있다. - 여기서 의도를 담은 레코드란 무엇일까?? 레코드마다 음악이 다르듯이 Kuberntes에서도 각 object들이 어떤 의미를 가지고 행하는것인지 하는게 아닐까?? 라고 추측해본다 (주관적인 생각) Kubernets에서 기본적인 구성단위가 되는건 크게 Basic Object와 Basic Object를 추가관리하는 Controller로 나뉜다고한다. Basic Object - Pod 쿠버네티스에서 가장 기본적인 배포단위, 컨테이..
Service Mesh란?? Service Mesh에대해서 정리해보려한다. Microservices Architecture 가 적용된 시스템의 내부 통신을 구조화 해보면 Mesh(망) 형태로 보여 Service Mesh라고 명명하였다고 한다. Service Mesh란?? - 마이크로 서비스간의 통신(네트워크)를 담당하는 역할 - 마이크로 서비스간의 통신을 추상화하고 네트워크 기능을 비즈니스 로직과 분리한 Infrastructure layer이다. - URL 경로, Header, API 버전 등을 기반으로 하는 7계층 Network layer이다. 왜 Service Mesh를 적용하는가??? - 서비스 와 인스턴스의 증가로 Microservices의 복잡성이 증가하고 동적인 인스턴스가 Up/Down 되는 상태에서 각 서비스간 수 많은..
Kubernetes 개념 - Controller Kubernetes Controller란?? -> Basic Object를 생성하고 관리하는 역할을 한다. 1. Deployment 2. ReplicaSet 3. StatefulSet 4. DaemonSet 5. Job 컨트롤러의 역할을 구분하면서 해당하는 컨트롤러들을 분류해보자. - 역할 1. Auto-Healing Pod 의 문제가 생기거나 실행되는 노드에 문제가 생기면 해당 Pod를 다시 실행하는 기능 ( Replicaset, Daemonset이 여기에 해당) 2. Software Update Pod에 대한 버전 및 자동 업데이트를 담당하며 롤백을 할수 있다.(Deployment) 3. Auto-Scaling Pod에 리소스가 부족할때 추가적으로 Pod를 생성하고 분산하여 Pod를 죽지않게한다. 4..