본문 바로가기

분류 전체보기35

쿠버네티스 패키지 매니저 Helm 현재 쿠버네티스는 가장 많이 사용하고 있는 오픈소스 컨테이너 오케스트레이션 툴이다. 다양한 리소스, 워크로드를 YAML 형태에서 쉽게 정의하여 컨테이너화 된 애플리케이션을 효율적으로 배포 및 운영할 수 있게 도와준다. 이를 통해 변화에 대응하여 신속하게 애플리케이션을 배포하거나 가동 중인 애플리케이션에 대해 스케일 인/아웃을 하는 등 계속되는 변화를 전제로 설계된 높은 유연성과 확장성을 제공하고 있다. 그러나 쿠버네티스를 사용하려면 매니페스트를 작성해야 하는데 매니페스트에는 몇 가지 아쉬움이 존재한다. 1. 매니페스트에서 개발 환경, 프로덕션 환경에 대해 일부분만 달라도 배포할 때마다 매니페스트를 수정해야 하는가? 2. 여러 개의 매니페스트를 하나의 프로덕트로 제공할(받을) 수 없는가? 3. 가동 중인 .. 2022. 8. 17.
Fluent Bit Alias 설정으로 Prometheus Metrics을 쉽게 파악하기 Fluent Bit는 CNCF의 프로젝트 중 하나인 Fluentd의 서브 프로젝트이다. Fluentd보다 가볍고 빠르다는 장점을 가지고 있어 K8s에서 로그 데이터를 수집할 때 자주 사용된다. Fluent Bit의 다른 장점 중 하나는 기본적으로 메트릭 정보를 제공한다는 점이다. 특히 HTTP를 통해서 JSON 기반의 메트릭이나 Prometheus 기반의 메트릭 데이터를 제공하기 때문에 쉽게 모니터링할 수도 있다. 제공하는 메트릭은 fluentbit_input_records_total, fluentbit_input_bytes_total, fluentbit_output_proc_records_total, fluentbit_output_proc_bytes_total, fluentbit_output_error.. 2022. 8. 7.
EKS Helm에서 발생하는 Error: Kubernetes cluster unreachable 해결하기 EKS는 Kubernetes latest 버전을 지원하고 있지 못하다 보니 호환성 이슈가 종종 발생하고 있다. 대표적으로 kubectl을 사용했을 때 아래와 같은 오류 문구를 만날 수 있는데 발생한 이유는 EKS에서 지원하는 Kubernetes 버전과 내 환경의 kubernetes 버전과 충돌이 일어나서 발생한 오류이다. Kubernetes를 기반으로 동작하는 Helm 역시 동일한 이슈가 발생할 수 있게되는데 이 역시 Helm의 kubernetes 버전이 EKS와 맞지 않아서 발생하게 된다. 실제로 사용하고 있는 EKS에서 사용하고 있는 Kubernetes는 1.22 버전이지만 현재 사용하고 있는 Helm v3.9.1에서는 Kubernetes 1.24.2를 지원하고 있다. 따라서 EKS에서 지원하고 있는.. 2022. 7. 15.
Skaffold와 Cloud Code 일반적으로 쿠버네티스를 포함한 환경에서 개발을 한다면 수정된 코드를 테스트하기란 복잡한 절차가 따른다. 그러나 이를 효과적으로 단축하여 개발 효율성을 향상할 수 있는 방법이 있는데 바로 Skaffold이다. 이번 글에서는 Skaffold와 추가적으로 Skaffold를 효과적으로 사용할 수 있게 도와주는 IDE Extension인 Cloud Code에 대해서도 소개해보려고 한다. Skaffold란? Skaffold는 구글에서 개발한 Command Line Tool로 쿠버네티스 어플리케이션을 위한 지속적인 배포를 쉽게 가능하게 해 준다. 즉, 내가 개발한 애플리케이션의 빌드, 푸시, 배포 등의 워크로드를 다루는 툴이며, 코드를 작성하는 것만 집중할 수 있도록 도와준다. Skaffold와 일반 개발과정 차이 .. 2022. 7. 4.