반응형

Container Orchestration/Kubernetes 40

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는 사내, 퍼블릭 클라우드 또는 하이브리드 설정 등 모든 인프라에서..

Kubernetes Pod를 안전하게 종료하는 방법(cordon, uncordon, drain, scale)

OverviewKubernetes를 사용하면서 유지 관리, 업데이트 또는 확장 작업과 같은 운영 요구 사항에 따라 Pod를 종료하고 재시작하는 일이 빈번하다. 따라서 Pod를 안전하게 종료하고 시작하는 방법에 대해서 알아본다. Kubernetes Pod를 안전하게 종료 Kubernetes에서 Pod 종료는 유지 관리, 업데이트 또는 확장 작업과 같은 운영 요구 사항에 따라 여러 가지 방법으로 처리할 수 있다. 다음은 `cordon, uncordon, drain, scale` 과 같은 Kubernetes 명령을 사용하여 Pod 종료를 안전하게 관리하는 방법에 대해서 알아본다. ​ 1. kubectl cordon 사용`cordon` 명령은 노드를 예약할 수 없음으로 표시하여 새 파드가 노드에 예약되는 것을 ..

Ingress Nginx란?

OverviewKubernetes에서 유용하게 쓰이고 있는 Ingress Nginx에 대해서 알아본다.   MetalLB의 관한 내용은 아래의 글을 참고하길 바란다.2023.05.03 - [Container Orchestration/Kubernetes] - MetalLB란? MetalLB란?Overview오늘은 Bare-Metal에서 많이 사용하는 LoadBalancer인 MetalLB에 대해서 공부해보려고 한다.MetalLB란?Kubernetes 사용 시 AWS, GCP, Azure 와 같은 클라우드 플랫폼에서는 자체적으로 로드 벨런서(Load Balancersomaz.tistory.com  Ingress Nginx란?Ingress Nginx는 Kubernetes 클러스터로의 HTTP 및 HTTPS 트..

반응형