K8s/Core Concept8 [K8s] Jobs & CronJobs ✍ Posted by Immersive Builder Seong Jobs컨테이너가 수행하는 워크로드에는 여러가지 종류가 있습니다. 웹, 어플리케이션, 데이터베이스와 같이 수동으로 중단하기 전까지 장시간 실행되는 워크로드와 배치 프로세스, 분석, 리포팅 등 특정 작업을 짧은 시간동안만 수행하고 완료되는 워크로드가 있습니다. 이중에서 특정 작업을 완료하기 위해 파드 세트를 실행하는 쿠버네티스 오브젝트가 바로 Job입니다. Job은 매니페스트 파일로 정의하여 생성할 수 있습니다. 아래의 예시에서 Job은 bpi 연산을 수행하는 파드를 생성하고, 연산이 완료되면 화면에 출력한 후 컨테이너를 종료합니다. 이 때 파드는 Completed 상태가 되고, Job은 restartPolicy 정책에 따라 파드를 재시작하.. 2024. 11. 26. [K8s] Liveness Probes 란? ✍ Posted by Immersive Builder Seong Liveness Probes쿠블릿(kubelet)은 컨테이너를 언제 재시작할지 알기 위해 Liveness Probes를 사용합니다. Liveness Probes는 쿠버네티스에서 컨테이너가 정상적으로 실행 중인지를 확인하는 메커니즘입니다. 예를 들어 컨테이너는 살아 있지만 어플리케이션이 정상 동작하지 않는 상황을 가정해봅시다. 코드의 버그로 인해 어플리케이션이 무한루프에 빠진 상황이라면 어떨까요? 기본적으로 쿠버네티스는 컨테이너가 실행 중이면 어플리케이션이 실행 중인 것으로 간주합니다. 따라서 우리는 사용자가 서비스를 제공받을 수 있도록 새로운 컨테이너를 재시작할 필요가 있습니다. 이 때, 컨테이너를 재시작하기 위해 정의한 내용이 바로 Li.. 2024. 11. 24. [K8s] Readiness Probes 란? ✍ Posted by Immersive Builder Seong Pod LifecyclePOD StatusPod Status는 파드가 라이프사이클의 어느 단계에 있는지를 나타냅니다. 파드가 처음 생성될 때 Pending 상태가 되는데, 스케줄러가 파드를 어느 노드에 배치할 것인지 알아내는 단계입니다. 만약 스케줄러가 적절한 노드를 찾지 못하면 Pending 상태가 유지됩니다. 이후 파드가 스케줄링되면 ContainerCreating 상태로 변경이 되고, 어플리케이션에 필요한 이미지를 가져와 컨테이너를 실행하게 됩니다. 그리고 파드의 모든 컨테이너가 시작되면 Running 상태가 되어, 프로그램이 성공적으로 완료되거나 종료될 때까지 해당 상태를 유지합니다. 마지막으로 Succeeded 상태는 파드의 모.. 2024. 11. 23. [K8s] 소프트웨어 배포 전략(Software Deployment Strategies) ✍ Posted by Immersive Builder Seong 배포 전략배포란 새로운 버전의 어플리케이션을 운영 환경에 릴리스하는 것을 의미합니다. 최근에는 마이크로 서비스 아키텍처를 기반으로 작은 단위의 서비스로 분리하면서 배포가 이전보다 짧은 주기로 빈번하게 이루어지고 있습니다. 이에 따라 기존 버전과 호환성을 유지하면서 서비스 중단 없이 새로운 버전을 배포하기 위한 여러가지 배포 전략들이 고안되었습니다. 현재 사용하는 다양한 배포 전략은 아래와 같습니다. 재생성(Recreate)인플레이스 배포(In-place Deployment)롤링 업데이트(Rolling Update)블루/그린 배포(Blue/Green Deployment)카나리 배포(Canary Deployment)A/B 테스팅(A/B T.. 2024. 11. 19. [K8s] CoreDNS 란? ✍ Posted by Immersive Builder Seong CoreDNS CoreDNS는 쿠버네티스 클러스터의 네임서버 역할을 수행하는 유연하고 확장 가능한 DNS 서버입니다. 기본적으로 클러스터 내부 및 외부의 도메인 이름을 조회하고 서비스 디스커버리를 처리하는 역할을 수행합니다. Kubeadm을 사용하여 쿠버네티스 클러스터를 구성한 경우, CoreDNS는 파드로 실행됩니다. 보통 2개 이상의 파드를 가지는 디플로이먼트로 실행되며, kube-dns라는 이름으로 ClusterIP 타입의 서비스가 제공됩니다. 동작 원리서비스 또는 파드가 새로 생성될 때마다 CoreDNS 파드에 신규 레코드를 추가하고, 해당 파드의 /etc/resolv.conf 파일에서 CoreDNS 서비스를 참조하도록 구성합니.. 2024. 11. 16. [K8s] Helm 이란? ✍ Posted by Immersive Builder Seong Helm헬름(Helm)은 어플리케이션을 배포하고 실행하기 위해 필요한 쿠버네티스 리소스들을 하나의 패키지로 관리하는 도구입니다. 쿠버네티스 인그레스(Ingress), 서비스(Service), 컨피그맵(ConfigMap), 시크릿(Secret) 등의 리소스를 패키징하는 것이 대표적입니다. 마치 리눅스 환경에서 YUM 또는 DNF가 하는 역할과 유사합니다. 헬름을 사용하면 클러스터에 복잡한 어플리케이션을 설치하고 관리하는 작업을 자동화할 수 있습니다. 대부분의 벤더사들이 자사 어플리케이션을 헬름으로 패키징하여 제공하고 있습니다. 주요 개념차트(Charts)헬름 차트는 헬름을 배포하는 기본 단위입니다. 어플리케이션 설치 및 구성에 필요한 모든.. 2024. 11. 14. 이전 1 2 다음