
Google Kubernetes Engine(GKE) 상에서 Prometheus와 Grafana를 사용하여 클러스터의 모니터링을 설정하려고 합니다. 이를 통해 실시간으로 클러스터 상태를 감시하고, 성능 지표를 시각화해 보겠습니다. 모니터링을 위한 네임스페이스 생성 모니터링에 사용될 별도의 네임스페이스를 생성합니다. 네임스페이스는 리소스 관리와 분리를 통해 보다 체계적인 환경 관리에 도움을 줍니다. $ kubectl create ns monitor namespace/monitor created Helm 리포지토리 추가 및 확인 Prometheus와 Grafana를 설치하기 위해 Helm 차트 리포지토리를 추가합니다. Helm은 쿠버네티스 패키지 관리자로, 차트(chart)라고 불리는 패키지 형식을 사용하여..

앞의 포스팅에서 GKE 상에서 Airflow를 배포하였습니다. 이제 Slack 알림을 설정하는 법을 포스팅하려고 합니다. [GCP] GKE에 Apache Airflow 배포 Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. 코드는 아래 github에서 확인할 수 있습니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp mjs1995.tistory.com Webhooks 생성 및 Slack으로 결과 전달하기 Webhooks 생성하기 slack api웹사이트에 접속해서 Webhook URL을 생성합니다. Slack으로 알림 전달 Apache Air..

Airflow의 작업자(worker) 및 트리거(triggerer) 파드가 Pending 상태에 머무는 에러가 발생하여 이를 해결하고자 합니다. Airflow 환경을 GKE 클러스터에 구축한 후, 특정 Airflow 컴포넌트들이 실행되지 않는 문제가 발생했습니다. gcloud container clusters create gke-airflow \ --machine-type e2-medium \ --num-nodes 1 \ --region "asia-northeast3" \ --min-nodes 1 \ --max-nodes 3 파드 상태를 확인했을 때, airflow-worker-0 및 airflow-triggerer-0 파드들이 Pending 상태에 머물고 있었습니다. mun_js@cloudshell:~..

테라폼을 활용해서 gke 클러스터를 생성하고 airflow helm차트를 배포해보려고 합니다. 코드는 아래서 확인 가능 합니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp/gke_airflow.md 서비스 계정 생성 및 역할 부여 Service account 란 사용자를 대신하여 작업을 수행하는, 프로젝트에 연결된 Google 계정이며 이러한 Service account 에는 사용자와 동일한 방식으로 역할과 권한을 할당 할 수 있습니다. 테라폼 명령을 실행하기 전에 아래 역할(Role)을 가지고 있는 Service account를 생성합니다. 서비스 계정 관리자 (roles/iam.serviceAccountAdmin) : 서비스 계..

Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. 코드는 아래 github에서 확인할 수 있습니다. https://github.com/mjs1995/muse-data-engineer/blob/main/blog/gcp/gke_airflow.md helm차트를 활용한 Apache Airflow 배포 Google Kubernetes Engine (GKE)에 helm 차트를 활용해서 airflow 배포를 하는 법에 대해서 포스팅하려고 합니다. gcloud는 Google Cloud Platform(GCP) 리소스를 관리하고 조작하는 데 사용되는 커맨드 라인 인터페이스(CLI) 도구입니다. gcloud 명령어를 사용하면 G..

테라폼으로 airflow helm차트를 배포하던 중에 에러가 발생했습니다. 에러가 발생된 소스 코드입니다. provider "kubernetes" { host = google_container_cluster.primary.endpoint token = data.google_client_config.default.access_token cluster_ca_certificate = base64decode( google_container_cluster.primary.master_auth[0].cluster_ca_certificate ) 이는 프로바이더의 host 주소가 이상하다고 나온 에러였습니다. mun_js@cloudshell:~/terraform-airflow-gke (ggke-401900)$ terra..

IaC(Infrastructure as Code) IaC란 코드를 작성 및 실행하여 인프라를 생성, 배포, 수정, 정리하는 것을 말합니다. 코드형 인프라스트럭처는 물리적 하드웨어 구성이나 인터페이스 구성 도구가 아닌 기계가 읽을 수 있는 정의 파일들을 통한 컴퓨터 데이터 센터의 관리 및 프로비저닝 과정으로 관리되는 IT 인프라스트럭처는 베어 메탈 서버 등의 물리 장비와 가상 머신 및 관련 구성 리소스를 모두 구성합니다. 수동 프로세스가 아닌 스크립트나 선언형 정의를 사용할 수 있으나 이 용어는 선언적 접근을 제고하기 위해 사용되는 일이 더 많습니다. IaC를 구성하는 정의 파일은 JSON, YAML, XML 혹은 자체적으로 사용하는 도메인 특화 언어 DSL(Domain Specific Language)로..

PR 내용 본 포스팅에서는 Python-mysql-replication 프로젝트에 기여한 경험을 공유하고 있습니다. 문서 업데이트, 버그 수정, 그리고 기능 개발 세 가지 분야에서의 기여 과정과 결과를 소개하고자 합니다. docs: Update README to add Featured Books Add Featured Section in README Update README Featured Section with AWS Blog on RDS, XA Transactions Remove duplicated Affected columns output in UpdateRowsEvent Developed UserVarEvent and Added Statement-Based Logging Test Enhance T..

PR 내용 본 포스팅에서는 Python-mysql-replication 프로젝트에 기여한 경험을 공유하고 있습니다. 문서 업데이트, 버그 수정, 그리고 기능 개발 세 가지 분야에서의 기여 과정과 결과를 소개하고자 합니다. docs: Update README to add Featured Books Add Featured Section in README Update README Featured Section with AWS Blog on RDS, XA Transactions Remove duplicated Affected columns output in UpdateRowsEvent Developed UserVarEvent and Added Statement-Based Logging Test Enhance T..

오픈소스 컨트리뷰션 아카데미는 언어, 개발문화, 시작의 두려움으로 인해 높게만 느껴지던 오픈소스에 대한 진입장벽을 허물고 선배 개발자와 함께 서로의 컨트리뷰톤을 응원하며 참여,오픈,공유,협업하는 오픈소스 문화를 직접 경험할 수 있는 멘토링 프로그램입니다. 2023 오픈소스 컨트리뷰션 아카데미를 참가하면서 python-mysql-repllication프로젝트의 멘티로 참가하게 되었습니다. 약 3달간의 여정으로 온/오프라인 모임을 통해서 오픈소스 기여를 하였습니다. 참여 계기는 데이터 엔지니어링에 관심이 있는 다양한 분들과 협업을 하면서 개발 문화와 오픈소스에 기여하는 방식을 보고자 지원을 하였습니다. 또한 프로젝트 운영을 하면서 binlog 파일에 대해 이슈가 있었고 CDC에 관심이 있어서 세미나를 다니던..