본문 바로가기

K8s23

[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] 쿠버네티스 버전 업그레이드 (v1.30 → v1.31) ✍ Posted by Immersive Builder  Seong 쿠버네티스 버전 정책(Skew Policy)쿠버네티스 프로젝트는 평균 4개월에 한 번씩 업스트림 마이너 버전을 릴리스합니다. 그리고 최신 버전을 포함하여 3개의 마이너 버전(v1.29, v1.30, v1.31)을 지원하고 있습니다. (*24.11 기준) 따라서 새로운 마이너 버전이 릴리스되는 시점이 쿠버네티스의 버전을 업그레이드하는 적절한 시기가 됩니다. 참고로 쿠버네티스의 버전은 단계별로 마이너 업그레이드를 진행해야 하며 건너뛸 수 없습니다.  또한, 쿠버네티스의 구성 요소 간에 지원되는 버전 차이는 다음과 같습니다.  구성 요소 중에 kube-apiserver의 버전이 가장 최신이어야 합니다. (x.y)controller-manager.. 2024. 11. 17.
[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.
[K8s] JSON Path ✍ Posted by Immersive Builder  Seong JSON PathJSON Path는 JSON 데이터를 파싱하기 위한 쿼리 언어입니다. JSON 구조 내 특정 데이터의 위치를 지정하거나 필터링하여 원하는 값을 추출할 수 있습니다. 특히, JSON 파일이 복잡한 구조로 이루어져 있을 때 유용합니다.  기본 문법 JSON Path의 주요 문법은 아래와 같습니다.  기호설명$JSON의 최상위 객체인 루트(root)를 의미합니다. .점 표기법을 통해 JSON 객체의 특정 키에 접근합니다.  [ ] 리스트의 특정 인덱스 또는 모든 항목에 접근합니다...특정 키를 JSON 구조에서 재귀적으로 검색합니다.?( )필터 조건을 사용하여 특정 값을 필터링합니다.@리스트의 각 항목을 나타냅니다.*와일드카드로.. 2024. 11. 13.
[K8s] YAML 이란? ✍ Posted by Immersive Builder  Seong YAML(YAML Ain't Markup Language)YAML은 주로 설정 파일을 작성하거나 데이터를 직렬화하기 위해 사용하는 데이터 포맷입니다. 사람이 읽기 쉽고 구조가 단순하여 JSON 또는 XML과 같은 데이터 포맷을 대신하여 많이 사용합니다. 특히, 쿠버네티스 환경에서 운영 관리를 위해 기본으로 사용하는 데이터 포맷이기도 합니다.  YAML 주요 특징가독성 : 들여쓰기와 간단한 구문으로 구성되어 사람이 읽기 쉽습니다.  데이터 구조 : 스칼라(scalar), 리스트(list), 딕셔너리(dictionary) 등의 데이터 구조를 지원하여 복잡한 데이터를 쉽게 표현합니다. 설정 파일 : 쿠버네티스, 앤서블, 도커 등 여러 환경에서 .. 2024. 11. 12.