02. Container 19

쿠버네티스의 선언적 구성과 자동화

서론: 쿠버네티스 소개 쿠버네티스는 현대 클라우드 인프라의 핵심 요소로, 컨테이너화된 애플리케이션을 효율적으로 관리하고 오케스트레이션하는 오픈소스 시스템입니다. Google에서 개발되어 CNCF(Cloud Native Computing Foundation)에 기부된 이 시스템은 확장성과 이동성이 뛰어난 컨테이너 기반의 애플리케이션 배포 및 관리를 가능하게 합니다. 쿠버네티스는 다양한 환경에서 컨테이너를 자동으로 배치하고, 관리하며, 확장하는 기능을 제공합니다. 선언적 구성(Declarative Configuration)의 개념 선언적 구성은 쿠버네티스가 관리하는 리소스의 상태를 정의하는 방식입니다. 사용자는 YAML 또는 JSON 형식의 파일을 통해 원하는 상태를 명시하고, 쿠버네티스는 이 상태를 유지하..

02. Container 2024.01.28

Kubernetes에서 Manifest 개요

Kubernetes Manifest에 대한 상세 설명 가. 종류 쿠버네티스 매니페스트는 다양한 리소스 유형을 정의합니다. 각각의 유형은 쿠버네티스 클러스터 내에서 특정 역할을 수행합니다. 1. 파드(Pods): 설명: 가장 기본적인 배포 단위로, 하나 이상의 컨테이너를 포함합니다. 이 컨테이너들은 네트워크와 저장소 등의 리소스를 공유합니다. 예시: 웹 애플리케이션을 실행하는 파드가 있을 수 있으며, 이 파드 내에는 Nginx 웹 서버 컨테이너와 애플리케이션 로직을 실행하는 Python 컨테이너가 포함될 수 있습니다. 2. 서비스(Services): 설명: 파드 집합에 대한 안정적인 네트워크 주소를 제공합니다. 로드 밸런싱과 서비스 발견을 위해 사용됩니다. 예시: 여러 파드로 구성된 애플리케이션에 대한 단..

02. Container 2024.01.25

Dockerfile은 Docker 이미지를 생성

DockerFile 개요 가. Dockerfile 설명 1. 구조 Dockerfile은 기본적으로 여러 개의 레이어(layer)로 구성된 이미지를 만들기 위한 명령어들을 순서대로 나열합니다. 2. 기본 명령어 FROM: 베이스 이미지를 지정합니다. 예를 들어, FROM ubuntu:18.04는 Ubuntu 18.04를 베이스 이미지로 사용합니다. RUN: 이미지 빌드 과정에서 실행할 명령어를 지정합니다. COPY 및 ADD: 로컬 파일 시스템의 파일들을 이미지에 추가합니다. CMD: 컨테이너가 시작될 때 실행될 명령어를 정의합니다. EXPOSE: 컨테이너가 리스닝할 포트를 지정합니다. ENV: 환경 변수를 설정합니다. ENTRYPOINT: 컨테이너가 시작될 때 실행될 명령어를 정의합니다. CMD와 유사합..

02. Container 2024.01.21

Helm과 Helm 차트의 관계

Helm과 Helm 차트의 관계 가. Helm Helm은 Kubernetes 애플리케이션의 패키지 관리자로, 애플리케이션을 배포, 관리, 업그레이드, 롤백할 수 있습니다. 나. Helm 차트 Helm 차트는 Helm을 사용하여 배포할 Kubernetes 애플리케이션을 정의하는 파일입니다. 이는 다음과 같은 구성 요소를 포함합니다: 템플릿: 컨테이너, 서비스, 네임스페이스 등 Kubernetes 리소스를 정의하는 템플릿입니다. 값: 템플릿에서 사용할 값을 정의하는 파일입니다. 메타데이터: 차트에 대한 정보를 정의하는 파일입니다. 다. Helm과 Helm 차트의 관계 Helm은 Helm 차트를 사용하여 Kubernetes 애플리케이션을 배포, 관리, 업그레이드, 롤백합니다. Helm 차트는 Kubernete..

02. Container 2024.01.20

Helm 사용 전후의 Kubernetes 배포 관리 비교

Helm 사용 전후의 Kubernetes 배포 관리 비교 가. Without Helm DevOps 팀은 여러 Kubernetes YAML 파일을 관리해야 하며, 이 파일들을 일일이 수동으로 작성하고 관리해야 합니다. 각 환경(Production, Staging, Dev)에 맞게 YAML 파일의 구성을 일일이 수동으로 업데이트하고 일치시키는 번거로운 작업이 필요합니다. 환경 간 구성의 일관성을 유지하기 어렵고, 실수로 인한 문제가 발생할 가능성이 높습니다. 복잡한 애플리케이션 배포 및 업데이트 프로세스로 인해 시간과 인적 자원을 낭비할 가능성이 큽니다. 시간이 지남에 따라 YAML 파일의 수가 늘어나면서 관리가 더욱 복잡해질 수 있습니다. 나. With Helm DevOps 팀은 공통 Helm 차트를 사용..

02. Container 2024.01.20

컨테이너 레포지토리 운영 관리 방안

컨테이너 이미지 운영 및 구성 가. 프로세스 단계 Docker Hub에서 Base Image 다운로드: 공개 컨테이너 레포지토리인 Docker Hub에서 기본 이미지를 다운로드합니다. 1차 저장소에 Base Image 저장: 다운로드한 이미지는 먼저 1차 저장소에 저장됩니다. 여기서 초기 보안 점검이 수행될 수 있습니다. 보안 점검 후 2차 저장소로 이동: 보안 점검을 통과한 이미지는 2차 저장소로 이동하여 보관됩니다. Workflow 통해 보안 승인 절차 진행: 이미지는 승인 절차를 거친 후 내부 개발망에서 사용될 수 있습니다. 개발된 애플리케이션과 Base Image가 결합된 이미지는 최종적으로 Harbor 레포지토리에 저장됩니다. Argo CD를 통한 배포: Harbor 레포지토리에 저장된 이미지는..

02. Container 2024.01.20

Clair(오픈소스 컨테이너 취약성 스캐너)

Clair: 컨테이너 취약성 스캐너 Clair은 오픈소스 컨테이너 취약성 스캐너로, 컨테이너 이미지의 보안을 강화하는 데 중요한 도구입니다. 이 문서에서는 Clair의 기능, 장단점, 고려사항 및 실제 사용 사례에 대해 탐구합니다. 가. Clair 오버뷰 Clair은 오픈소스 컨테이너 취약성 스캐너로, Docker와 같은 컨테이너 이미지에서 보안 취약점을 찾는 데 사용됩니다. 1. 기능과 목적 Clair은 컨테이너 이미지 내에 존재하는 알려진 보안 취약점을 스캔하고 식별합니다. 이는 애플리케이션을 컨테이너화할 때 발생할 수 있는 보안 문제를 사전에 감지하고 해결하는 데 도움이 됩니다. 2. 작동 방식 Clair은 컨테이너 이미지의 각 레이어를 분석하여, 각 레이어에 포함된 소프트웨어와 라이브러리의 버전을..

02. Container 2024.01.16

Liveness Probe 와 Readiness Probe

쿠버네티스의 Liveness Probe와 Readiness Probe 가. Liveness Probe (생존성 프로브) 1. 정의: Liveness Probe는 컨테이너가 작동 중인지 확인하는데 사용됩니다. 컨테이너가 응답하지 않으면 쿠버네티스는 이를 실패로 간주하고 컨테이너를 재시작합니다. 2. 사용 이유: 교착 상태에 빠지거나 반응하지 않는 컨테이너를 자동으로 재시작하여 애플리케이션의 가용성을 유지합니다. 3. 주의사항: 너무 빈번한 검사는 시스템에 부하를 줄 수 있으며, 너무 긴 간격은 문제를 늦게 감지할 수 있습니다. 나. Readiness Probe (준비성 프로브) 1. 정의: Readiness Probe는 컨테이너가 클라이언트 요청을 처리할 준비가 되었는지 확인하는데 사용됩니다. 준비되지 않..

02. Container 2024.01.16

Docker vs Kubernetes - [차이:컨테이너 오케스트레이션 유무]

도커와 쿠버네티스: 컨테이너 관리의 차이점 가. 도커 (Docker) 1. 기본 개념 도커는 애플리케이션과 그 종속성들을 컨테이너 안에 패키징하여, 다양한 환경에서 일관된 방식으로 실행할 수 있도록 하는 기술입니다. 이를 통해 개발자는 "그 환경에서는 작동했는데..."라는 문제를 피할 수 있으며, 애플리케이션을 보다 쉽게 이식하고 관리할 수 있습니다. 2. 주요 기능 컨테이너 생성 및 관리: 도커는 컨테이너를 빠르고 쉽게 생성, 시작, 정지, 이동 및 삭제할 수 있는 기능을 제공합니다. 이미지 빌드, 저장, 공유: 도커 이미지는 애플리케이션과 모든 종속성을 포함하는 경량의, 실행 가능한 패키지입니다. 이를 통해 애플리케이션을 어디에서든 동일하게 실행할 수 있습니다. 단일 호스트에서의 컨테이너 실행 및 관..

02. Container 2024.01.13