본문 바로가기

개발10

DockerHub 이미지를 Private Registry에 업로드 안녕하세요? Container Image를 Pull로 가져와서 Image Build를 CI/CD 로 구성하는 작업들을 많이 하는데요. 이러한 작업을 할 때, 일반적으로 Pull로 가져오는 이미지들은 대부분 DockerHub로부터 가져옵니다. DockerHub에서는 사용자가 Image를 Pull 하는 부분에 대해서 아래와 같은 제한 정책을 가지고 있습니다. 대부분의 작업 환경은 Docker Pull을 하더라도 이미지가 이미 다운로드 되어 있다면, DockerHub로부터 Pull을 하지 않기 때문에, 아래 제한에 쉽게 걸리지는 않습니다. 저 같은 경우에도, 아래와 같은 제한이 있다는 것을 최근에 알게 됐습니다. Kubernetes를 라지 클러스터로 관리할 경우 DaemonSet을 사용할 경우 아래 제한은 .. 2024. 2. 19.
[Kubernetes] initContainer 와 containers의 volume 공유 안녕하세요? Kubernetes에서 작업을 하다 보면, 종종 GIT에서 소스를 가져와서 간단한 Job들을 돌릴 경우가 있습니다. 제가 그랬는데요. CronJob을 돌리기 위한 소스를 매번 GIT에서 가져와서 실행을 하고자 했습니다. 소스가 변경되는 것에 따라서 컨테이너 이미지를 매번 빌드할 정도의 Job 보다는 빠른 반영을 위해서, Kubernetes에서 제공하는 ephemeral storage 중 하나인 emptyDir과 init container를 활용해서 만들어 보기로 했습니다. init container에서 ephemeral storage에 git clone한 소스를 저장하고, 메인 container에서는 해당 소스를 기반으로 python code를 실행시키는 Pod/Cronjob을 만들면 됩니.. 2024. 2. 7.
[Protobuf] symbol not found in flat namespace '_CFRelease' 안녕하세요? 저는 프로젝트에서 Protobuf 3.19를 사용하고 있었습니다. 그런데, 최신 Streamlit 부터는 Protobuf 의 디펜던시가 3.20>= 으로 되면서, 3.20 으로 업그레이드 테스트를 진행하던 중 아래와 같은 에러를 마주해서 해결한 방법에 대해서 작성합니다. 사실.. 3.19에서 Protobuf 최신 버전인 4.x 로 업그레이드를 하고 싶었지만, App trace 를 위해서 사용하는 Jaeger(https://www.jaegertracing.io/)에서 Protobuff 4.x를 지원하지 않아서 3.20으로 업그레이드를 했습니다. Protobuf Protobuf에 대한 자세한 설명은 생략합니다.. Protobuf / Jaeger / Opentelemetry Jaeger가 Prot.. 2024. 2. 5.
[EMR on EKS] spark timezone 설정 안녕하세요? EMR on EKS에서 spark job을 제출하다보면 timezone이 기본적으로 UTC로 설정되어 있는 것을 확인할 수 있습니다. timezone이 UTC로 되어 있더라도 python, scala 등의 코딩 시 timezone을 KST로 설정해도 충분하지만, 일일히 모든 datetime에 다 설정을 하는 것이 여간 귀찮은 것이 아닙니다. 그렇기 때문에, 여기서는 os level에서 기본 timezone을 변경하여 코드의 수정 없이 timezone을 바꿀 수 있는 방법에 대해서 알아보겠습니다. EMR one EKS 우선, 여기서는 EMR on EKS에 대한 기본 설명 및 설치과정에 대해서는 생략하도록 하겠습니다. EMR on EKS spark custom image spark conf에 .. 2024. 2. 1.