반응형

Container Orchestration 42

Kubernetes IPVS vs iptables

OverviewKubernetes Kube-prxoy Component의 주요 개념인 IPVS vs iptables 에 대해서 알아본다.   IPVS 및 iptables의 개념 1️⃣ iptables (IP 테이블 규칙)iptables는 Linux 커널에 내장된 패킷 필터링 및 NAT(네트워크 주소 변환) 프레임워크이다.패킷이 통과해야 하는 체인의 규칙을 정의하고 네트워크 트래픽을 허용, 거부, 전달 또는 수정할지 결정하는 방식으로 작동한다. Kubernetes에서 작동하는 방식Kubernetes는 iptables 를 사용하여 서비스와 Pod 간에 트래픽을 라우팅한다.백엔드 Pod를 순차적으로 선택하여 라운드 로빈 로드 밸런싱을 구현한다. iptables의 장점✅ 안정성: Linux 시스템에서 성숙하고 ..

Helm Base App Chart 생성(With ArgoCD)

OverviewHelm Base App Chart 생성후에 Base Chart 만 사용해서 모든 Application을 연동하는 방법에 대해서 알아본다.https://github.com/somaz94/helm-base-app-template   Helm에 대한 내용들은 이전 포스팅을 참고하길 바란다.2022.09.06 - [Container Orchestration/Kubernetes] - Helm 이란? (Kubernetes Package manager)2023.05.16 - [Container Orchestration/Kubernetes] - Helm Chart 작성방법2024.11.15 - [Container Orchestration/Kubernetes] - Helm Chart Template 문법..

Helm Chart 생성 및 패키징 (gh-pages)

Overview생성한 Kubernetes Operator를 Helm Chart 생성하고 패키징하여 github gh-pages 브랜치에 hosting 하는 방법에 대해서 알아본다.https://github.com/somaz94/helios-lb GitHub - somaz94/helios-lb: helios-lbhelios-lb. Contribute to somaz94/helios-lb development by creating an account on GitHub.github.com Helm에 대한 내용들은 이전 포스팅을 참고하길 바란다.2022.09.06 - [Container Orchestration/Kubernetes] - Helm 이란? (Kubernetes Package manager)2023...

Kubernetes Operator(CRD, CR) 생성(With kubebuilder)

OverviewKubebuilder를 활용해서 Kubernetes Operator를 생성해본다.   Kubebuilder란?Kubebuilder는 Kubernetes 운영자를 구축하기 위한 강력한 프레임워크이다. scaffolding, 코드 생성 및 Kubernetes 도구와의 통합을 제공하여 맞춤형 컨트롤러 및 API 개발을 단순화한다.Kubernetes Operator는 커스텀 리소스(CRD)를 관리하고 애플리케이션 배포, 확장, 관리를 자동화하는 커스텀 컨트롤러이다.​ Kubebuilder를 사용하는 이유는 무엇일까?코드 생성: CRD 및 컨트롤러에 대한 상용구 코드를 자동으로 생성한다.표준 기반: Kubernetes API 패턴을 준수하는 controller-runtime 라이브러리를 기반으로 구..

Kubernetes Operator 및 Custom Resource Definitions(CRDs) 이해하기

OverviewKubernetes Operator와  Custom Resource Definitions (CRDs) 대해서 알아본다.   Kubernetes Operator Kubernetes 생태계에서 Operator는 Kubernetes 애플리케이션을 패키징, 배포, 관리하는 방법이다. Kubernetes 애플리케이션은 Kubernetes에 배포되고 Kubernetes API 및 kubectl 도구를 사용하여 관리된다. Operator는 클러스터 상태를 감시한 다음 필요한 경우 변경을 수행하거나 요청하는 루프인 컨트롤러의 Kubernetes 원칙을 따른다. Operator는 Kubernetes를 확장하여 특정 애플리케이션의 전체 수명주기 관리를 자동화한다. ​ 왜 Operator를 사용해야 할까?Ku..

Kubernetes Headless Service란?

OverviewKubernetes Headless Service에 대해서 알아본다.    Kubernetes Headless Service란?Kubernetes Headless Service는 로드 밸런싱이나 할당된 클러스터 IP 주소를 제공하지 않는 특별한 유형의 서비스이다. 대신, DNS 이름으로 개별 파드에 직접 액세스할 수 있으며, 이는 데이터베이스나 StatefulSet 과 같이 파드와의 직접 통신이 필요한 애플리케이션에 특히 유용하다.​ Headless Service의 주요 특징 No Cluster IPHeadless Service는 `spec.clusterIP` 를 `None` 으로 설정하여 생성된다. 이는 Kubernetes가 서비스에 가상 IP를 할당하지 않음을 의미한다. DNS Reco..

Kubernetes Deployment Strategy

OverviewKubernetes Deployment Strategy 에 대해서 알아본다.  Kubernetes Deployment Strategy란?Kubernetes에서 배포 전략(deployment strategies) 은 새로운 애플리케이션 버전 또는 컨테이너 이미지를 배포할 때, Pod(또는 Pod 집합)를 어떻게 업데이트할지 정의합니다. 주요 배포 전략은 두 가지이다.RollingUpdate (기본 전략)Recreate RollingUpdate (기본값)RollingUpdate는 Kubernetes의 기본값이자 가장 널리 사용되는 전략이다. 배포 내의 Pod을 점진적으로 업데이트롤링 업데이트 동안 Kubernetes는 새로운 버전의 Pod을 생성하고, 동시에 오래된 Pod을 소규모 배치로 종료..

Helm Chart Template 문법

Overview오늘은 Helm Chart Template 문법에 대해서 알아보자.   Helm Chart Template 문법Helm에서 YAML 파일은 차트 템플릿 및 값에 사용되어 Kubernetes 리소스에 대한 구성을 정의한다. Helm의 템플릿 구문은 Go 템플릿을 사용하여 동적 구성을 활성화하므로 Helm 차트 템플릿 내에서 표준 YAML과 Go 템플릿의 조합을 찾을 수 있다. 주요 구문 패턴은 다음과 같다.  Standard YAML SyntaxHelm 차트는 들여쓰기 및 `key:value` 쌍을 사용하여 구성 설정을 정의하는 YAML로 작성된다.apiVersion: v1kind: Servicemetadata: name: my-service labels: app: my-app  G..

Kubernetes Garbage Collection

OverviewKubernetes Garbage Collection에 대해서 알아본다. Kubernetes Garbage Collection이란?Kubernetes GC(Garbage Collection)는 주로 파드, 컨테이너, 이미지 및 기타 Kubernetes 리소스와 같이 사용되지 않는 객체를 제거하는 데 중점을 두고 리소스 정리를 자동으로 관리하는 시스템이다. Kubernetes에는 3가지 주요 유형의 Garbage Collection이 있다. Garbage Collection of Pods and ControllersKubernetes는 더 이상 소유자가 없거나 더 이상 필요하지 않은 리소스의 정리를 자동으로 처리한다.Pod: 컨트롤러가 생성한 Pod(예: Deployments, Replica..

Kubernetes 생태계 표준화와 Container Interface(CRI, CSI, CNI)

OverviewKubernetes 생태계에서 "컨테이너 xxx 인터페이스" 라는 용어는 일반적으로 Kubernetes 시스템 구성 요소가 컨테이너 런타임 및 스토리지 시스템과 같은 모듈식 구성 요소와 상호 작용하는 방식을 정의하는 표준화된 인터페이스 세트와 연관된다. 따라서 쿠버네티스 생태계에서 CRI, CSI, CNI와 같은 컨테이너 인터페이스의 등장과 표준화는 다양한 클라우드 및 인프라 공급자 간에 일관되고 상호 운용 가능한 환경을 제공해야 할 필요성에 대해서 알아본다.    Kubernetes 생태계 표준화 앞서 Oveivew에서 설명했던 것처럼 표준화가 필수적이었던 주요 이유에 대해서 알아본다. 인터페이스를 통해 Kubernetes는 사내, 퍼블릭 클라우드 또는 하이브리드 설정 등 모든 인프라에서..

반응형