Helm vs Kustomize 비교 정리공통점: 마이크로서비스 환경에서 App 종류가 많아지고, 다양한 배포 환경에 대해 중복 관리를 최소화 하기 위하여 사용한다.차이점차이점HelmKustomize배포 편의기능 갯수200개10개패키지당 활용 범위마이크로 서비스 AND 다양한 배포 환경마이크로 서비스 OR 다양한 배포 환경사용 목적프로젝트 관리 패키지용 + 기업 제품 패키지용프로젝트 관리 패키지용Usecase대형 프로젝트App 종류 - 5개 이상간단한 프로젝트App 종류 - 5개 미만 쿠버네티스를 도입하게 되면 여러 오픈소스를 도입하고, 이 오픈소스들은 대부분 Helm 형태로 배포가 된다.따라서 처음에는 어렵지만 Helm을 먼저 사용한다면 Kustomize는 사용할 필요 없다.다만 소규모 프로젝트나 빠른..
CI/CD 파이프라인을 구성할 때 고려해야 하는 요소관리 담당: 소스 빌드 → 컨테이너 빌드 → 배포 단계의 CI/CD를 구성한다고 할 때, 한 명이 jenkins pipeline으로 모두 관리하면 기능적으로 편리하다. 하지만 실무에서는 각 단계를 책임지는 담당자가 존재한다. 예를 들어 개발자가 소스 빌드를 담당하고, 나머지를 devops 엔지니어가 담당할 수 있다. 기능적인 측면 vs 관리적인 측면을 고려해야 한다.운영 정책: jenkins로 소스와 컨테이너 빌드를 수행하고 ArgoCD로 배포를 수행한다. 인프라 환경에는 개발과 운영환경이 존재하는데, 이 때 ArgoCD 배포와 인프라를 1:N 형태로 설정할 수 있고, 아니면 인프라 환경마다 ArgoCD를 두어 1:1로 구축할 수 있다. 전자는 Argo..
해당 포스팅은 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 내용을 기반으로 작성했습니다.본 포스팅에서는 쿠버네티스의 핵심 Object들인 PVC, PV, Deployment, HPA, Service가 어우러져서 어떻게 작동하는지에 대해 다룬다. 각 오브젝트들의 자세한 개념은 따로 포스팅할 예정이고, 각 object들끼리 어떻게 연계되어 사용되는지에 대해 초점을 두자.PV, PVC 쿠버네티스 클러스터 환경에서 원활하게 데이터에 접근하기 위해서는 각 노드와 파드들이 동일한 데이터를 바라보아야 하고 안전하게 데이터를 보존하기 위해서 별도의 스토리지 공간을 활용해야 한다. 이를 위해 쿠버네티스를 지원하는 다양한 스토리지 솔루션이 존재한다. 하지만 본 포스팅에서는 PVC, PV에서 local..
해당 포스팅은 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 내용을 기반으로 작성했습니다.Configmap 기본 설명Configmap과 Secret은 Pod 내부에 다양한 설정값을 주입하기 위한 object이다.Configmap을 사용해 컨테이너 이미지에서 configuration을 분리하여 App을 사용할 수 있다.예를 들어 개발, 운영 단계에서 달라지는 설정값들을 모두 이미지 빌드 단계에서 설정하지 않고,각 환경에 맞는 Configmap을 Pod에 주입함으로써 편리하게 App을 실행할 수 있다. Configmap을 정의하는 일반적인 yaml파일 형식은 다음과 같다.apiVersion: v1kind: ConfigMapmetadata: name: special-config name..
해당 포스팅은 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 내용을 기반으로 작성했습니다.Probe 개념 설명쿠버네티스는 컴퓨팅 계층과 네트워크 계층이 추상화 되어있기 때문에 네트워크 트래픽과 생애 주기를 통제할 수 있는데,이러한 추상화 덕분에 App이 고장나도 Self-healing할 수 있으며, 이 기능을 Container Probe를 통해 할 수 있다.Probe에는 총 3가지 종류가 존재하며 모두 파드의 정상여부를 체크하여 각자의 기능을 수행한다.startupProbe: 초기화 작업이 필요한 Pod에 대해 추가적인 startup time을 부여한다. 성공하면 App을 Ready 상태로 변경, startupProbe를 비활성화 한 뒤 livenessProbe와 readinessPr..
해당 포스팅은 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 내용을 기반으로 작성했습니다.쿠버네티스 표준 생태계로 편해진 IT 인프라 구축위 그림은 쿠버네티스, 클라우드와 연관되어 IT 인프라 생태계에서 많이 쓰이는 오픈소스들이다. CNCF 프로젝트도 존재하고, 비 CNCF 제품이어도 깃허브 stars가 높거나 일프로님이 추가한 제품들이다.기본적으로 클라우드 생태계에서 위 기술들에만 집중해도 충분하다는 의미이다.각 카테고리에 대한 설명은 다음과 같다.개발: 기존의 App 개발에서 배포까지 써야하는 기술.오케스트레이션 / 매니징: App을 마이크로 서비스로 만들 때 쓰면 좋은 기술.플랫폼, 런타임: App을 클라우드로 올릴 때 사용되는 기술.프로비저닝, 분석: 프로젝트에서 App을 마이..
이번 포스팅은 Ubuntu와 같은 Debian Linux에서 쿠버네티스(kubernetes)를 설치하는 방법입니다.본 포스팅에서는 kubeadm을 이용해 쿠버네티스를 설치하는 방법을 다룹니다.또한 설치 버전은 v1.29, v1.28에 호환됩니다.공식 설치 문서: https://kubernetes.io/docs/setup/production-environment/tools/ 사전 작업먼저 kubernetes를 설치하기 위해서 다음과 같은 요건을 만족해야 합니다.Debian 또는 Red Hat 기반의 Linux host가 설치되어있는 상태.2 Core 이상의 CPU & 2GB 이상의 메모리.고유한 hostname, MAC 주소, product_uuid.네트워크가 연결되어있는 상태이자, 특정 ..