Daniel Kim 의 기술 블로그
4년차 DevOps 엔지니어의 기록

Latest

5월
08
kubelet 이 원하는 커널 파라미터

kubelet 이 원하는 커널 파라미터

Kubelet 은 실행하는 머신의 커널 파라미터가 특정 값이 제대로 설정되어있지 않다면 동작하지 않고 오류가 발생하게 됩니다. 이 때 kubelet에 --protect-kernel-defaults=false 라는 실행 인자를 념겨주면 정상 동작을 하게 됩니다. 이런 단순한 오류 해결을 넘어서 실제로 kubelet 은 어떤 커널 파라미터가 세팅되어있기를 원하는지, 그리고 어떤 코드에서 그런 내용을 볼 수 있는지 등에 대해서 다루는 글입니다.
13 min read
4월
25
Raft 알고리즘 알아보기

Raft 알고리즘 알아보기

💡온프레미스 쿠버네티스 클러스터를 구축하기 위해 준비하면서 etcd에 대해서 자세히 알아보고자 etcd 의 근간이 되는 Raft 합의 알고리즘을 자세하게 알아보게 되었습니다.
66 min read
4월
03
etcd 의 snapshot 과 WAL이 무엇일까요? (etcd backup snapshot이 아닌)

etcd 의 snapshot 과 WAL이 무엇일까요? (etcd backup snapshot이 아닌)

etcd 의 snapshot 그리고 WAL 에 대해서 알아봅니다. etcd 는 raft 합의 알고리즘을 기반으로 구현된 key-values 저장소로. raft 알고리즘에서 snapshot 에 대한 내용이 존재합니다. 그것을 etcd 는 어떻게 구현했는지 알아봅니다. (etcdctl snapshot save 를 통해 생성하는 스냅샷과는 조금은 다른 내용입니다)
9 min read
3월
29
RR DNS 를 통한 kube-apiserver 앞단의 LB 대체 테스트

RR DNS 를 통한 kube-apiserver 앞단의 LB 대체 테스트

이 글에서는 Round Robin DNS 를 통해 HA k8s 클러스터 앞단의 kube-apiserver를 위한 로드밸런서를 대체 할 수 있는지 테스트를 해보는 글입니다. 결론부터 이야기 하면 어느정도는 가능하다입니다. DNS 로는 Route53 을 사용하고, 상태검사등의 기능까지 사용해서 어느정도 구현이 가능합니다.
24 min read
3월
24
K8s 오퍼레이터

K8s 오퍼레이터

쿠버네티스 오퍼레이터가 무엇인지에 대해서 알아봅니다. 우선 오퍼레이터라는 말 자체는 소프트웨어 디자인 패턴에서 나오는 하나의 용어로 이해를 하면 됩니다. 오퍼레이터 패턴이란 운영 노하우, 도메인 지식등을 갖고있는 운영자의 역할을 소프트웨어에 새긴 개념으로 볼 수 있습니다. 쿠버네티스의 오퍼레이터도 그런 관점에서 동일한 컨셉을 갖고 있습니다.
8 min read
3월
19
How to increase pod number limit in eks (with terraform-aws-modules)

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.
1 min read
3월
19
Secrets of Running Etcd (번역)

Secrets of Running Etcd (번역)

2023 북미 KubeCon 에서 etcd 메인테이너가 발표한 자료를 번역한 글입니다. etcd 를 사용하면서 고려해야 할 점에 대해 자세히 다루고 있습니다. 특히 Kubernetes Event 리소스를 별도의 etcd 클러스터에 저장하는 내용과, Compaction / Defragmentation 자동화 과정에서 권장되는 내용등도 포함되어있습니다.
19 min read
3월
12
gRPC transcoder in Istio 테스트

gRPC transcoder in Istio 테스트

💡gRPC transcoder 를 envoy가 아닌 istio 레벨에서 사용해보는 예제입니다. gRPC transcoder 는 gRPC 서버에서 기존 RESTful API 혹은 HTTP API라고
11 min read
3월
12
etcd 의 WAL 이 무엇인가요?

etcd 의 WAL 이 무엇인가요?

💡WAL (Write Ahead Log)는 etcd 가 데이터베이스에 적용되기 전에 모든 변경 사항을 기록하는 곳으로, 미리 쓰기 라는 측면에서 반영될
5 min read
3월
03
K8s logging

K8s logging

Kubernetes 클러스터의 각종 컴포넌트, 그리고 클러스터내 파드등 모든 관련된 구성요소에 대한 로깅과 관련된 정보를 정리한 글입니다. 쿠버네티스 공식 문서의 로깅 아키텍처 글을 토대로 실제 사용 가능한 소프트웨어의 예시와 매칭시켜서 정리하였습니다.
15 min read