본문 바로가기

IT Note/Cloud

(44)
Multi-Container Design Patterns 정리 원문 : 호롤리한하루/Multi-Container Design Patterns 정리 1. Overview 지난 몇년간 컨테이너기술은 코드를 패키징하고 배포하는데 대중적인 기술이 되었습니다. 이런 특징 외에도 컨테이너를 통해 분산 응용 프로그램을 구축하는 방법에 대해서 주목해볼 필요가 있습니다. 이번 글에서는 MicroService Architecture에서 컨테이너들을 다루는 디자인패턴 3개를 소개하겠습니다. 참고 : MicroService Architecture란? 참고문헌 : Kubernetes/The Distributed System ToolKit: Patterns for Composite Containers Sidecar Pattern 먼저 대전제로 생각하고 있어야 하는 것은 다음과 같습니다. "..
MicroService Architecture란? 원문 : 호롤리한 하루/MicroService Architecture란? 1. Overview 최근 클라우드, 컨테이너 시장이 급격히 성장하면서 마이크로서비스라는 단어가 많이 들리고 있습니다. 이번 포스팅에서는 마이크로서비스가 무엇인지에 대해서 알아보겠습니다. 2. MicroService Architecture? 마이크로서비스를 공부해보기전에 기존의 서비스 구조가 어떠했는지를 살펴보겠습니다. Monolithic Architecture MicroService Architecture가 각광을 받기 시작하면서 기존의 아키텍처를 지칭하는 의미로 생겨난 단어입니다. 모든 모듈은 하나의 서비스 내부에 종속되어있으며 서비스 자체에 집중할 수 있는 구조로 되어있습니다. 다시말해 각기 다른 역할을 하는 모듈들이 모여서 ..
Helm 3 설치 & 기본 사용방법 원문 : 호롤리한 하루/Helm 3 설치 & 기본 사용방법 1. Overview 이번 문서에서는 Helm의 사용법에 대해서 알아보겠습니다. 2. Prerequisites 쿠버네티스 클러스터가 깔려있어야 합니다. 호롤리한 하루/Install Kubernetes on CentOS/RHEL 참고. helm을 설치할 위치에서 kubectl 명령어를 사용할 수 있어야 합니다. 3. Helm이란? Helm은 쿠버네티스의 package managing tool입니다. 크게 세가지 컨셉을 가지고 있는데 : Chart : Helm package입니다. app을 실행시키기위한 모든 리소스가 정의되어있습니다. Homebrew formula, Apt dpkg, Yum RPM파일과 비슷하다고 생각하시면 됩니다. Reposito..
Kubernetes Service & Ingress 원문 : 호롤리한 하루/Kubernetes Service & Ingress 1. Overview 이번 문서에서는 Kubernetes(k8s)의 Service와 Ingress에 대해서 알아보겠습니다. 2. Prerequisites 본문에서 사용한 spec : OS : CentOS v7.6 Arch : x86 k8s클러스터는 1마스터 2노드로 구성했습니다. Master : 4cpu, ram16G Node : 2cpu, ram4G 3. Service pod은 Controller에 의해 관리되기 때문에 한군데에 고정되어있지 않습니다. 서비스를 사용하게 되면 pod가 클러스터 내 어디에 있던지 상관없이 고정된 주소를 사용해서 접근이 가능하게 됩니다. ClusterIP 가장 기본 타입 클러스터 내부의 노드에서 접근..
Kubernetes Controllers : StatefulSet 원문 : 호롤리한 하루/Kubernetes Controllers : StatefulSet 1. Overview 이번 문서에서는 Kubernetes(k8s)의 Controller중, StatefulSet에 대해서 알아보겠습니다. 2. Prerequisites 본문에서 사용한 spec : OS : CentOS v7.6 Arch : x86 k8s클러스터는 1마스터 2노드로 구성했습니다. Master : 4cpu, ram16G Node : 2cpu, ram4G 3. StatefulSet 이전 포스팅에서 k8s의 여러 컨트롤러에 대해 알아봤었습니다. 이 컨트롤러들은 주로 상태가 없는(stateless) pod을 관리하는 용도로 사용됩니다. 참고 : 호롤리한 하루/Kubernetes Controllers : Rep..
Kubernetes Volumes : Static & Dynamic Provisioning 원문 : 호롤리한 하루/Kubernetes Volumes : Static & Dynamic Provisioning 1. Overview 이번 문서에서는 Kubernetes(k8s)의 여러 볼륨에 대해서 알아보겠습니다. 2. Prerequisites 본문에서 사용한 spec : OS : CentOS v7.6 Arch : x86 k8s클러스터는 1마스터 2노드로 구성했습니다. Master : 4cpu, ram16G Node : 2cpu, ram4G 3. Volumes 쿠버네티스에서의 볼륨은 pod에 종속되는 디스크입니다. 다시말해, 같은 pod에 있는 컨테이너들은 해당 디스크를 공유해서 사용할 수 있습니다. EmptyDir pod과 함께 생성되고 삭제되는 임시 볼륨입니다. 아무런 volume옵션을 주지 않았..
Kubernetes Controllers : Replication, Deployment, DaemonSet 원문 : 호롤리한하루/Kubernetes Controllers : Replication, Deployment, DaemonSet 1. Overview 이번 문서에서는 Kubernetes(k8s)의 Controller에 대해서 알아보겠습니다. 2. Prerequisites 본문에서 사용한 spec : OS : CentOS v7.6 Arch : x86 k8s클러스터는 1마스터 2노드로 구성했습니다. Master : 4cpu, ram16G Node : 2cpu, ram4G 3. Controller? 쿠버네티스는 크게 객체(object)와 그것을 관리하는 컨트롤러(controller)로 구성됩니다. 객체(object)에는 pod, service, volume 등이 있습니다. 컨트롤러(Controller)에는 R..
Install Kubernetes on CentOS/RHEL 원문 : 호롤리한 하루/Install Kubernetes on CentOS/RHEL 1. Overview 이번 문서에서는 Kubernetes(k8s)를 centos위에서 구성해보도록 하겠습니다. 2. Prerequisites 본문에서 사용한 spec : OS : CentOS v7.6 Arch : x86 k8s클러스터는 1마스터 2노드로 구성하겠습니다. Master : 4cpu, ram16G Node : 2cpu, ram4G 3. Steps (M,N) : Master와 Node 전부 적용 3.1 Set Hostname on Nodes (M,N) 각 Master, Node들마다 자신의 hostname을 결정해줍니다. $ hostnamectl set-hostname {호스트이름}그 다음, 결정한 이름을 각 노..