MCP Featured 사내 단일 MCP Gateway 도입기 (feat: IBM mcp-context-forge) IBM mcp-context-forge 로 사내 단일 MCP Gateway 를 구축한 도입기입니다. MCP Federation 패턴, 팀 단위 RBAC 과 OAuth 토큰 위임, 업스트림 기여 과정까지 담았습니다.
ECR Featured ECR Pull-Through Cache 적용기(feat: Docker Rate Limit 을 피해서) Docker Hub Rate Limit 강화에 대응해 ECR Pull-Through Cache 를 적용한 기록입니다. NAT IP 고정에 스케일 아웃이 잦은 EKS 환경에서의 설정 과정과 주의점을 다룹니다.
Airflow Featured EMR on EKS 환경에서 spark driver 와 executor 가 같은 AZ 에 스케쥴링 되도록 하는 방법 (가용성까지 확보하면서) EMR on EKS 에서 Spark driver 와 executor 를 같은 AZ 에 스케줄링해 AZ 간 통신 비용을 줄이는 방법입니다. 가용성을 잃지 않으면서 적용한 설정을 공유합니다.
K8s Featured Airflow 무중단 이전 EKS 버전 업그레이드 과정에서 Airflow 를 새 클러스터로 무중단 이전한 경험을 공유합니다. Scheduler·Webserver·Worker 컴포넌트별 역할 분석과 이전 전략을 담았습니다.
S3 Featured S3 다운로드 작업시 동기, 비동기, 멀티스레드, 멀티프로세스 성능 비교 (python) 수천~수만 개 S3 파일 다운로드를 두고 python 동기, 비동기, 멀티스레드, 멀티프로세스 성능을 직접 비교했습니다. 30Gbps 인스턴스에서도 250MB/s 에 그친 원인을 추적합니다.
Istio Featured Istio Sidecar 설정을 통한 Pod 의 egress 제어 Istio 의 Sidecar 리소스로 파드의 egress 트래픽을 제어해 지정한 서비스만 호출하도록 제한하는 방법입니다. Network Policy 와의 차이도 비교합니다.
Kubelet Featured kubelet "서버" 를 위한 인증서 (kubelet.crt, kubelet.key) (feat: Metrics-Server TLS 인증서 오류 조치) kubelet 이 클라이언트가 아닌 '서버'로서 사용하는 인증서(kubelet.crt)를 알아봅니다. Metrics-Server TLS 인증서 오류의 원인과 해결 방법도 함께 다룹니다.
kubeadm Featured kubeadm 은 CoreDNS 를 어떻게 설치할까요? 파드는 서비스 도메인을 어떻게 처리할까요? 그리고 설정은 어떻게 할까요? (feat: NodeLocal DNSCache) kubeadm 이 CoreDNS 를 설치하는 과정과 파드가 서비스 도메인을 해석하는 원리를 파헤칩니다. resolv.conf 설정과 NodeLocal DNSCache 까지 함께 다룹니다.
Kubelet Featured kubelet 이 원하는 커널 파라미터 Kubelet 은 실행하는 머신의 커널 파라미터가 특정 값이 제대로 설정되어있지 않다면 동작하지 않고 오류가 발생하게 됩니다. 이 때 kubelet에 --protect-kernel-defaults=false 라는 실행 인자를 념겨주면 정상 동작을 하게 됩니다. 이런 단순한 오류 해결을 넘어서 실제로 kubelet 은 어떤 커널 파라미터가 세팅되어있기를 원하는지, 그리고 어떤 코드에서 그런 내용을 볼 수 있는지 등에 대해서 다루는 글입니다.
Raft Featured Raft 알고리즘 알아보기 etcd 의 근간인 Raft 합의 알고리즘을 논문 번역과 함께 정리했습니다. 리더 선출과 로그 복제 과정을 Raftscope 시각화로 따라가며 이해할 수 있게 구성했습니다.
etcd Featured etcd 의 snapshot 과 WAL이 무엇일까요? (etcd backup snapshot이 아닌) etcd 의 snapshot 그리고 WAL 에 대해서 알아봅니다. etcd 는 raft 합의 알고리즘을 기반으로 구현된 key-values 저장소로. raft 알고리즘에서 snapshot 에 대한 내용이 존재합니다. 그것을 etcd 는 어떻게 구현했는지 알아봅니다. (etcdctl snapshot save 를 통해 생성하는 스냅샷과는 조금은 다른 내용입니다)
HA Featured RR DNS 를 통한 kube-apiserver 앞단의 LB 대체 테스트 이 글에서는 Round Robin DNS 를 통해 HA k8s 클러스터 앞단의 kube-apiserver를 위한 로드밸런서를 대체 할 수 있는지 테스트를 해보는 글입니다. 결론부터 이야기 하면 어느정도는 가능하다입니다. DNS 로는 Route53 을 사용하고, 상태검사등의 기능까지 사용해서 어느정도 구현이 가능합니다.
Kubernetes K8s 오퍼레이터 쿠버네티스 오퍼레이터가 무엇인지에 대해서 알아봅니다. 우선 오퍼레이터라는 말 자체는 소프트웨어 디자인 패턴에서 나오는 하나의 용어로 이해를 하면 됩니다. 오퍼레이터 패턴이란 운영 노하우, 도메인 지식등을 갖고있는 운영자의 역할을 소프트웨어에 새긴 개념으로 볼 수 있습니다. 쿠버네티스의 오퍼레이터도 그런 관점에서 동일한 컨셉을 갖고 있습니다.
eks How to increase pod number limit in eks (with terraform-aws-modules) This article shows how can we increase the limit of pod number in eks cluster by adding some environment variable in terraform-aws-modules.
etcd Featured Secrets of Running Etcd (번역) 2023 북미 KubeCon 에서 etcd 메인테이너가 발표한 자료를 번역한 글입니다. etcd 를 사용하면서 고려해야 할 점에 대해 자세히 다루고 있습니다. 특히 Kubernetes Event 리소스를 별도의 etcd 클러스터에 저장하는 내용과, Compaction / Defragmentation 자동화 과정에서 권장되는 내용등도 포함되어있습니다.
Istio gRPC transcoder in Istio 테스트 Envoy 가 아닌 Istio 레벨에서 gRPC transcoder 를 설정해 HTTP/JSON 호출을 gRPC 로 변환하는 예제입니다. 하나의 서버로 gRPC 와 REST 엔드포인트를 동시에 제공합니다.
etcd etcd 의 WAL 이 무엇인가요? etcd 의 WAL(Write Ahead Log)이 무엇인지 알아봅니다. 세그먼트 파일 구조와 이름 규칙, Raft 상태 저장 방식, 데이터 무결성을 보장하는 원리를 정리했습니다.
K8s K8s logging Kubernetes 클러스터의 각종 컴포넌트, 그리고 클러스터내 파드등 모든 관련된 구성요소에 대한 로깅과 관련된 정보를 정리한 글입니다. 쿠버네티스 공식 문서의 로깅 아키텍처 글을 토대로 실제 사용 가능한 소프트웨어의 예시와 매칭시켜서 정리하였습니다.
ArgoCD ArgoCD 란 무엇이고 무엇을 하는가? (with 공식 도큐먼트) ArgoCD 가 무엇인지 ArgoCD 공식 문서를 토대로 간단하게 정리한 글입니다. 그와 더불어서 ArgoCD 의 Application 원천으로 사용 가능한 Helm, Kustomize, Plane Kubernetes Manifests 가 무엇인지 설명하고, 그와 더불어서 ArgoCD가 이야기하는 베스트 프렉티스, App of Apps 에 대한 이야기도 간략하게 다룹니다.
ControlPlane Featured kube-apiserver 와 etcd 는 어떻게 통신하는가? kube-apiserver 의 백엔드 스토리지이자, kubernetes 의 백엔드 스토리지인 etcd 에 대해서 kube-apiserver 가 어떻게 etcd 클러스터에 요청을 보내고 그 부하 분산을 어떻게 하는지 실제 kube-apiserver 및 etcd 클라이언트 분석을 토대로 정리한 글입니다. kube-apiserver 는 etcd v3 client 를 추상화한 별도의 계층을 사용해서 etcd 클러스터에 라운드로빈 형태로 트래픽을 분산해서 요청합니다. 이것은 gRPC 클라이언트 사이드 로드밸런싱과도 관련이 있는 내용입니다.
UTM Featured ARM64 Mac UTM 에서 x86_64 가상머신 실행 ARM64 맥(M1, M2, M3) 환경에서 UTM 을 사용해서 x86_64 가상머신을 실행하는 방법을 간단하게 설명한 글입니다. UTM 을 통해 ARM 가상머신을 사용하는 예시는 많지만, x86_64 환경의 가상머신을 사용하는 예시는 많지 않아 직접 테스트해보고 작성하였습니다.
K8s Featured Keel 을 이용한 컨테이너 이미지 태그 업데이트 자동 감지 및 쿠버네티스 파드 재배포 자동화 쿠버네티스 오퍼레이터 Keel 로 컨테이너 이미지 태그 업데이트를 자동 감지하고 파드를 자동 재배포하는 방법을 소개합니다. Helm, Deployment 연동 설정 예제를 담았습니다.
K8s Featured kube-apiserver 를 컨트롤 플레인 외부에 설치해서 사용하기 Kube-apiserver 를 컨트롤플레인 외부에 설치해서 사용할 수 도 있다는 내용을 openai 의 기술블로그를 통해 영감을 얻고 직접 테스트해본 글입니다. Dedicated Node(전용 노드) 에서 kube-apiserver 를 사용하는 상황에서 유용하게 쓰일 방법입니다. 프로덕션에서 사용하기에는 적절하지 않은 테스트이지만 그럼에도 PoC (개념검증) 수준에서 실제 코드, 설정, 인증서를 수정해가면서 직접 테스트 가능하도록 작성한 글입니다.
Istio Featured Istio 란 무엇이고, 무엇을 할 수 있을까? Istio 가 무엇인지, 서비스 메시가 무엇인지 간단한 설명과 예제를 소개합니다. 그와 더불어서 다양한 기능에 대한 예제도 포함되어있습니다.
K8s Featured eBPF 에 대해 알아보자 (1) eBPF 가 무엇인지 간단하게 설명하고 BCC 를 기반으로 한 간단한 예시까지 테스트해보는 글입니다. 앞으로 더 작성할 eBPF 에 대한 내용중 첫번째 글이며 개념과 관련된 간단한 부분만 정리한 글입니다.