728x90
컨테이너 환경이 확산되면서, 애플리케이션 배포 방식도 이미지 기반으로 변화하고 있다. 특히 클라우드 환경에서는 개발(dev), 테스트(test), 운영(prd) 환경을 명확히 구분하고, CICD 파이프라인을 통해 소스 커밋 부터 배포까지 전 과정을 자동화하는 것이 일반적이다. 컨테이너 환경에서는 애플리케이션의 배포 단위가 컨테이너 이미지가 된다. (Legacy 환경은 war 파일 또는 소스 코드 자체가 될 수 있다) 컨테이너 이미지는 여러 개의 레이어(Layer)로 구성되어 패키징되며, 이를 이미지 레지스트리에 저장한다. 이미지 레지스트리는 퍼블릭 레지스트리(DockerHub, AWS ECR, Azure ACR 등)일 수도 있고, 프라이빗 레지스트리(Nexus, Harbor, Quay 등)일 수도 있다...
컨테이너 생태계가 성숙해지면서 Docker를 대체하는 여러 도구들이 등장하고 있다. 특히 보안, 성능, 효율성 측면에서 Docker의 한계점을 극복하는 툴들이 많은데, 오늘은 그 중 대표적인 Podman에 대해 알아보려 한다. Docker CLI의 한계점은 이전 Buildah 포스팅에서 자세히 다루었기 때문에 해당 글을 참고하면 좋을 것 같다. Docker를 대체하는 컨테이너 빌드 도구 : Buildah 활용하기컨테이너 이미지를 만들고 관리하는 방법에는 여러 가지가 있다. Docker는 컨테이너 이미지를 만들고 기동하는 표준으로써 오랜기간 자리잡아 왔다. 이전에는 Docker를 떠올리는 사람이 많았지만,nayoungs.tistory.com# Podman이란?Podman은 Red Hat에서 개발한 컨테이너..
컨테이너 이미지를 만들고 관리하는 방법에는 여러 가지가 있다. Docker는 컨테이너 이미지를 만들고 기동하는 표준으로써 오랜기간 자리잡아 왔다. 이전에는 Docker를 떠올리는 사람이 많았지만, 최근에는 Docker를 대체하는 툴들이 많이 사용되고 있다. 오늘은 Buildah라는 이미지 빌드 툴에 대해 알아보려 한다. # 기존 Docker의 한계점 1) 데몬 의존성: Docker는 항상 백그라운드에서 실행되는 데몬이 필요하다.Docker는 Docker Daemon(Docker Server)과 Docker CLI(Client) 간의 통신으로 구성되어 있어, 둘 중 하나의 기능만을 원하는 경우 또는 Client의 특정 기능(컨테이너 기동, 도커 이미지 빌드, 이미지 Pull & push 등)만을 사용하..
Github를 Helm Chart Repository로 사용하는 방법을 설명하기에 앞서, Helm의 기본적인 개념에 대한 설명이 필요하다면 여기를 참조하면 된다. [Kubernetes] Helm이란? Helm의 개요와 사용법📌Index Helm이란? Helm 설치하기 Helm 사용법 Helm 실습 ✔️ Helm이란? Helm이란, Kubernetes 패키지 관리를 도와주는 것(패키지매니저)으로, yaml 파일의 모음이라고 할 수 있다. Helm에 대한 많은 문서나 책nayoungs.tistory.comHelm Chart Repository(저장소)를 서비스(호스팅)하는 방법에는 클라우드 스토리지, JFrog 아티팩토리, 일반 웹 서버 등 여러가지가 있지만, 본 글에서는 Github를 차트 저장소로 사..
Singleton Service Pattern이란?SW 개발에 사용되는 생성 패턴 중 하나로, 한 번에 하나의 애플리케이션 인스턴스만 실행한다.예시) 메세지 대기열의 메세지를 순차적으로 소비해야하는 웹 애플리케이션은 한 번에 둘 이상의 인스턴스를 실행하지 않아야한다. 쿠버네티스에서는 외부 잠금과 내부 잠금을 통해 2가지 레벨로 구현할 수 있다.문제점쿠버네티스의 주요 기능은 다중 인스턴스를 실행해서 시스템의 처리량과 가용성을 높이는 것Deployment, ReplicaSet과 같은 리소스로는 싱글톤 서비스를 사용하는 데 어려움이 있음동시에 하나의 서비스 인스턴스만 실행되어야하는 경우가 있음애플리케이션 외부 잠금(비 인식)애플리케이션 외부의 관리 프로세스를 사용하여, 오직 애플리케이션 하나의 인스턴스만 실행..
📌Index Kubernetes의 HA Vagrant로 VM 생성하기 로드밸런서 구성하기 호스트 파일 수정 및 Swap off Docker 및 Kubernetes 설치하기 shell script로 간편화하기 Kubernetes 초기화 및 노드 조인 CNI(Container Network Interface) 설치 ✔️ Kubernetes의 HA 고가용성(High Availability)이란, 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. 고가용성(HA) 쿠버네티스의 토플로지를 구성하는 데는 두 가지 방법이 있다. stacked etcd : etcd 노드와 컨트롤 플레인 노드를 함께 위치 시키는 중첩된(stacked) 컨트롤 플레인 노드 ..