전체 글 Develop/DevOps 2025. 6. 27. [Go] Kubebuilder 사용해보기 - 1 GVM 설치golang으로 개발하기 앞서 golang version controll를 할수있는 GVM을 설치한다. macOS기준으로 아래 명령어를 실행하면 설치가 된다.bash 특정 go version을 설치하려면 아래와같이 실행한다.# 제공되는 버전 목록gvm listall# 작성일 기준 최신 golang version은 1.24.4gvm install go1.24.4 -B# default로 사용할 go version명시gvm use go1.24.4 --default Kubebuilder 설치https://book.kubebuilder.io/quick-start.html Quick Start - The Kubebuilder BookThis Quick Start guide will cover: go v.. Develop/DevOps 2025. 6. 21. [Istio] 공부한거 이것저것 정리 (WIP) Installation몰랐는데 설치방식이 두가지가 존재한다.첫번째는 우리가 흔히 알고있는 sidecar mode인데. 해당 방식은 모든 pod에 Envoy Proxy가 sidecar형태로 자동 주입되는 모드이다.장점으로는모든 트래픽을 Envoy가 가로채서 정책을 적용하고 보안을 적용하여 보안성이 뛰어나고L7(http) 레벨 제어 기능이 풍부함기존 설치방식이라 자료가 풍부함단점으로는설치방식에서 언급한대로 pod마다 Envoy sidecar가 붙으니 리소스가 낭비되고 관리가 복잡함업데이트/보한 패치등도 모든 sidecar에 적용해야함두번째는 istio 1.18+부터 Preview상태로 도입된 아키텍처인데 Ambient Mode이다.장점으로는Sidecar Mode와 다르게 Pod에 Envoy Proxy sid.. Develop/DevOps 2025. 6. 16. [Kubernetes] 클러스터 업그레이드 전 호환성 체크 kubent 쿠버네티스 업그레이드를 하기전에 다양한 API가 변경이 되는 경우도 존재하는데. 이를 사전에 체크할수있는 툴이 존재해서 남기려고한다.https://github.com/doitintl/kube-no-trouble GitHub - doitintl/kube-no-trouble: Easily check your clusters for use of deprecated APIsEasily check your clusters for use of deprecated APIs - doitintl/kube-no-troublegithub.com 맥OS 사용시 brew명령어로 간단하게 설치가 가능하다brew install kubent 사용은 일단 두개밖에 안써보았는데, 한개는 현재 클러스터에서 호환되지않는 API가 있는지 조.. Develop/DevOps 2025. 6. 8. [Prometheus] Prometheus HA를 위한 Thanos 배포 수정 사항 (2025.05.28)- Prometheus의 thanos-sidecar에 thanos에서 설정한 objstore 값을 반영해줘야지 thanos데이터가 minio bucket에 쌓이게됩니다. 따라서 해당 내용(prometheus.tf의 spec.thanos.objectStorageConfig 추가)을 수정하였습니다.수정 사항 (2025.06.08)- Thanos의 storeGateway를 활성화하는 옵션이 없어서 추가했습니다. 해당 컴포넌트는 thanos가 object storage(minio)에서 데이터를 가져오기 위한 통로 역할을 합니다.- prometheus의 thanos-sidecar가 하드링크 이슈 및 권한 이슈가 존재하여 securityContext를 활용하여 두 컨테이너의 사용자를.. Develop/DevOps 2025. 5. 15. [Kubernetes] OOM관련 내용 정리하기 (singleprocessOOMKill) 쿠버네티스를 사용하면서 resources를 효율적으로 사용하기 위해 requests, limits을 적용하여 사용하는 경우가 많을텐데. 가끔 의도치않게 메모리를 많이 먹는 작업을 하게 되어 OOMKilled가 발생하여 해당 pod내부에서 설치한(또는 저장한) 요소들이 다 날라가는 경우가 있다. 만일 "OOM이 발생하면 Pod(Container)가 내려가는것이 아닌 OOM을 유발한 프로세스만 종료시킬순없을까?" 라는 궁금증에서 조사했고. 다음과같은 결과가 나왔다. 쿠버네티스에서는 Pod을 생성할 때, resource를 설정하게 된다면 pod이 생성되는 노드에 아래와같은 예시 경로로 cgroup설정 파일들이 생성되게 됨./sys/fs/cgroup/kubepods_slice/kubepods-burstable... Data/Data Engineering 2025. 5. 15. [Loki] 로키 관련 내용 정리 사내에서 현재 사용중인 Grafana사에서 개발한 Loki에 대해서 내용을 정리해보려고한다. loki의 architecture는 친절하게 아래 페이지에서 확인이 가능하다. https://grafana.com/docs/loki/latest/get-started/architecture/ Loki architecture | Grafana Loki documentationLoki architecture Grafana Loki has a microservices-based architecture and is designed to run as a horizontally scalable, distributed system. The system has multiple components that can run sepa.. Develop/DevOps 2025. 5. 8. [Kubernetes] Github Action Controller 설치 및 사용 Action Runner Controller 를 사용하게되면 Github Action Runner를 Kubernetes 환경에서 띄우고 관리 할 수 있음.https://github.com/actions/actions-runner-controller/tree/master GitHub - actions/actions-runner-controller: Kubernetes controller for GitHub Actions self-hosted runnersKubernetes controller for GitHub Actions self-hosted runners - actions/actions-runner-controllergithub.com 또한, 호스트의 스펙만큼 한개의 노드에서 여러개의 Runner를.. Develop/DevOps 2025. 5. 8. [Kubeflow] Trainer helm chart 설치 아래 설치방식만 정리하기 위해서 적은 글이라 크게 도움은 안될 글입니다...ㅠKubeflow Trainer에 대한 간단한 설명 (Feat. ChatGPT)https://www.kubeflow.org/docs/components/trainer/overview/ 해당 페이지를 통해서 정보를 구했습니다.🧠 Kubeflow Trainer의 주요 특징Kubernetes 네이티브 설계Kubeflow Trainer는 Kubernetes의 Custom Resource Definition(CRD)을 활용하여 TrainJob, TrainingRuntime, ClusterTrainingRuntime 등의 리소스를 정의합니다. 이를 통해 복잡한 Kubernetes 설정 없이도 분산 학습 환경을 구성할 수 있습니다.다양한 M.. Develop/DevOps 2025. 4. 27. [Kubernetes] Audit log(감사로그) 쿠버네티스 보안을 위해서 사용자들의 행위를 기록하기 위한 감사로그를 kube-apiserver의 옵션을 통해서 활성화가 가능하다.행위: kube-apiserver를 통한 행동(e.g. create, delete등)https://kubernetes.io/ko/docs/tasks/debug/debug-cluster/audit/ 감사(auditing)쿠버네티스 감사(auditing) 는 클러스터의 작업 순서를 문서화하는 보안 관련 시간별 레코드 세트를 제공한다. 클러스터는 사용자, 쿠버네티스 API를 사용하는 애플리케이션 및 컨트롤 플레인 자체kubernetes.io 이러한 감사로그에는 다음과 같은 정보를 수집한다. (위 페이지에서 발췌)무슨 일이 일어났는지?언제 일어난 일인지?누가 시작했는지?어떤 일이 있었.. Develop/DevOps 2025. 4. 15. [AlertManager] 특정 라벨을 가진 Alert무시하기 Prometheus와 Alertmanager를 연결한뒤 Prometheus Rule에 의해 Alert가 발생하는 구조인데, 특정 Alert는 운영에 영향을 주는 오알람(false alarm)으로 보여져서 alert을 무시하는 작업을 하려고함. 보통 알람이 발생하면 Alertmanager에서 아래와같이 Alert에 할당된 라벨들을 볼수가 있음AlertmanagerConfig에서 아래와같이 설정하면 특정 라벨을 가진 Alert는 무시할수있게됨아래 설정은 다음과같은 설정을 하게됨severity = "info" 라벨을 가진 Alert은 무시됨severity = "warning" 라벨을 가진 Alert은 무시됨namespace = "group-member" 라벨을 가진 Alert은 무시됨정확히는 무시되는건 아니고.. Develop/DevOps 2025. 4. 10. [Prometheus] ServiceMonitor 정리 및 AlertManger 관련 이번에 작업을 하면서 ServiceMonitor에 대해서 알게되었는데. 이게 정확히 어떤방식으로 동작하는지 정리를 하면 좋을것같아서 글을 작성합니다. 왜 사용함?Prometheus에서 일반적으로는 static-configs에 옵션으로 수집할 대상(target)을 지정해주는데. 지정 대상이 한두개면 작업할만하지만, 지정 대상이 수백개 이상이 되어버리면 하나하나 지정해주기가 매우 불편한 상황이 옴. 따라서 더 유연하고 선언적인 방식으로 모니터링 타켓을 관리하기 위해 Prometheus Operator중 하나인 ServiceMonitor를 사용하게됨.어떻게 사용함?모니터링 대상 App에 /metrics 엔드포인트 노출당연하지만 해당 포트에는 Exporter와 같이 메트릭을 노출하는 애플리케이션이 실행중이여야함.. Develop/DevOps 2025. 3. 25. [helm] local-path-provisioner helm chart 작업 Artifacts Hub에서 있는 local-path-provisioner는 helm repo add가 정상적으로 안되어 직접 helm 패키징을 하여 작업을 진행(https://wiki.loliot.net/docs/mlops/storage/local-path-provisioner) 감사합니다 팀장님git clone https://github.com/rancher/local-path-provisioner.git -b v0.0.31# helm charts 생성helm package ./local-path-provisioner/deploy/chart/local-path-provisioner# local-path-provisioner charts에서 사용되는 values 추출helm show values loc.. Develop/DevOps 2025. 2. 26. [istio] terraform istio 설치 및 Gateway & VirtualService 사용 정리 Terraform istio 설치설치 순서는 istio-base > istiod > istio-ingress 순으로 설치되게끔 dependency 설정istio-base: istio의 Custom Resource Definitions(CRD)를 포함하는 기본적인 리소스 정의 역할. istio가 클러스터 내에서 작동하는데 필요한 기본적인 정의들을 포함istiod: istio의 컨트롤 플레인 역할을 수행하며, 매시 내 모든 Envoy 프록시를 관리함. 서비스 간의 트래픽 제어, 인증, 관찰 가능성 제공함istio-ingress: 외부에서 클러스터 내부 서비스로 트래픽을 전달하는 진입점. Kubernetes Ingress리소스와 비슷하지만 더 다양한 기능을 제공함.locals { istio_charts_u.. Data/Data Engineering 2025. 2. 20. [Vector] Vector Agent 관련 (WIP) vector by datadoghttps://vector.dev/ VectorA lightweight, ultra-fast tool for building observability pipelinesvector.devvector transform remap playground (VRL playground)vector의 transform 단계에서 remap을 사용할경우 Vector Remap Language(VRL)을 사용해야하는데. 간단한 테스트를 아래와같은 playground에서 해볼수있다.https://playground.vrl.dev/ VRL playgroundRun program Share programplayground.vrl.dev sources로그 수집 대상을 지정하는 과정transforms수.. Develop/DevOps 2025. 2. 20. [k8s] offline-kubespray 사용 방법 보통 쿠버네티스 클러스터를 구축할때 인터넷이 가능한 상황에서 구축을 많이하게 되는데, 때때로 고객사 망에 의해 인터넷이 안되는 환경에서 쿠버네티스 클러스터를 구축할때가 존재한다. 아래에서는 인터넷이 안되는 환경을 offline이라고 표현한다. 다행히 이런 인터넷이 안되는 환경에서 클러스터를 구축하는걸 도와주는 github repository가 존재한다.https://github.com/kubespray-offline/kubespray-offline GitHub - kubespray-offline/kubespray-offline: kubespray offline support scriptskubespray offline support scripts. Contribute to kubespray-offline.. Develop/DevOps 2024. 12. 19. [DevOps] 인증서 관련해서 내용 정리 DNS 사이트 설정 및 등록외부에서 나의 서버를 DNS 주소로 접속할수있게끔 도와주는 사이트DNS주소를 유료로 구매해야함예시 사이트https://www.cloudflare.com/ko-kr/ (현재 회사에서 사용하는 사이트)https://www.godaddy.com/en-sg (회사에서 초창기에 썻던 사이트인데, RESTAPI를 사용하기 위해서는 유료 라이센스로 전환해야함)SSL 인증서 발급예시: https://letsencrypt.org/ (무료라서 사람들이 많이 애용하는걸로 보임)인증서 발급을 도와주는 툴예시: https://certbot.eff.org/ (Let's Encrypt와 같이 많이들 사용하는것같다)k8s환경에서의 인증서 관리 툴. ingress-controller는 nginx-ingres.. 이전 1 2 3 4 ··· 24 다음