Harbor 레지스트리 구성하기 (feat. Helm Chart 연동)
·
[DevOps] - Kubernetes
개요클라우드 혹은 퍼블릭 이미지 레지스트리로의 도커 이미지 형상 관리는 네트워크 비용(혹은 기타 이미지 저장 비용)이 청구되기 때문에 프라이빗 레지스트리를 운영하는 사례가 있다. 물론 반드시 비용뿐만 아니라 보안을 위해서라도 온프레미스 환경에서 관리하기 위한 경우도 포함이다. (필자는 저번에 구현한 라즈베리 파이 쿠버네티스 클러스터에서 운영중..) 본 포스팅에서는 OCI (Open Container Initiative) 레지스트리인 Harbor의 배포 및 도커 레지스트리로써의 사용법을 공유한다. 기본적으로 OCI 프로토콜을 따르기 때문에 Helm Chart 레지스트리로써도 활용 가능하다. Harbor Helm Chart 구성 과정# Bitnami Helm Chart Repository 등록$ helm..
Istio 톺아보기 #2 - 트래픽 관리 관련 CRD
·
[DevOps] - Kubernetes
https://dev-ryuon.tistory.com/122 Istio 톺아보기 #1 - 개요서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직dev-ryuon.tistory.comIstio나 서비스 메쉬가 처음이신 분은 이전 게시글을 읽고오시면 이해하기 쉬울거에요! 개요Istio는 트래픽 라우팅 규칙을 통해 서비스 간의 트래픽 흐름을 쉽게 제어할 수 있다. 제어할 수 있는 기능으로는 아래와 같은 것들이 있다.Circuit Breaker : 서킷브레이커(회로 차단기)는 서비스 장애 전파와 과부하를 방지하기 위한 패턴이다. DestinationRule CRD에서 설정할 ..
Istio 톺아보기 #1 - 개요
·
[DevOps] - Kubernetes
서비스 메쉬란?서비스 메쉬는 MSA(마이크로 서비스 아키텍처)환경에서 서비스 간의 통신을 제어하고 관리할 수 있는 인프라 계층을 의미한다. 즉, 서비스 내의 애플리케이션 혹은 비즈니스 로직을 수정하지 않고도 트래픽을 컨트롤할 수 있다.트래픽을 제어할 수 있는 기능으로는 Service Discovery, Load Balacning, Failure Recovery, Monitoring, Security 등을 지원한다.각 서비스마다 사이드카 컨테이너로 경량 프록시(e.g. Envoy)가 주입되어 프록시간 통신을 이루도록 메쉬 네트워크가 구성된다. 그리고, 이러한 메쉬 네트워크의 구성요소인 데이터 플레인을 관려하는 컨트롤 플레인도 존재한다. (분산 애플리케이션의 특징이다.) Istio란?Istio는 쿠버네티스..
라즈베리 파이로 홈 쿠버네티스 클러스터 구축 매뉴얼
·
[DevOps] - Kubernetes
목차1. 준비물2. 운영체제 설치3. 홈 네트워크 세팅4. 라즈베리 파이에 고정 IP 할당5. 외부 접속 세팅 (SSH + VPN)6. 쿠버네티스 클러스터 구축7. 스토리지 세팅 1. 준비물Computing : 라즈베리파이 5 Raspberry pi 5 Model 8GB * 4EASwitch : 넷기어 GS108PP 8포트 기가비트 POE 스위칭 허브 (123W)SSD : 삼성전자 870 EVO SSD, MZ-77E1T0, 1TBMicro SD : 삼성전자 MicroSD 카드 PRO PLUS 128GB MB-MD 128SA/KR * 4EASSD SATA 케이블 : 엠비에프 SATA to USB 컨버터Micro SD 리더기 : 블레이즈 마이크로 SD 카드리더기(중요) 어댑터 : 라즈베리파이5 전용 어답터 ..
쿠버네티스 환경의 서비스 디스커버리
·
[DevOps] - Kubernetes
서비스의 규모가 커질수록 모놀리식 아키텍처로 관리하는 것은 점점 한계가 존재한다. 도메인 혹은 기능간의 의존성이 생기고 이를 서버 혹은 컨테이너 단위로 분리해야 의존성을 제거할 수 있다. 이러한 형태를 MSA(Micro Service Architecture)라고 한다. 그러나, MSA는 사실 이상적인 형태로써, DDD(Domain-Driven Development)가 제대로 수행되어야 실질적으로 서비스 간의 의존성을 깨끗하게 정리할 수 있다. 그리고, 아무리 MSA라 하더라도, 다양한 요소로 인해 전반적인 아키텍처는 훨씬 복잡해질 수 있다. 예를 들면, 로드 밸런싱(Load Balancing)의 문제이다. 만약 단일 서버 혹은 컨테이너가 비동기적으로 오는 클라이언트의 무수한 요청을 받기 위해 노력하고 있..