인프라
도커 고급 강좌 #2 멀티 아키텍처 이미지 — amd64와 arm64 한 묶음
Apple Silicon에서 빌드한 이미지가 운영 서버에서 안 뜨는 사고는 멀티 아키텍처 빌드 한 줄로 사라집니다. manifest list의 정체, QEMU emulation의 비용, 네이티브 ARM 빌더, 그리고 docker buildx imagetools로 결과를 검증하는 방법까지 정리합니다.
AWS 중급 #2 EC2 운영: security group, key pair, SSM
EC2 운영의 일상 도구들. Security Group 규칙 설계, NACL과의 차이, key pair의 한계와 SSM Session Manager, 그리고 AMI로 인스턴스 골격을 굳히는 법까지 정리합니다.
K8s 기초 #5 Service — ClusterIP / NodePort / LoadBalancer
[#4](/ko/posts/k8s-basics-4)에서 Pod 3개를 띄우는 데까지는 왔지만, 그 3개에 트래픽을 어떻게 흘릴지가 비어 있습니다. Pod IP는 매번 바뀌고, 같은 Deployment의 3개 Pod 사이에 부하 분산도 안 되고, 외부 브라우저에서는 접근이 아예 안 됩니다. 이번 글은 그 문제를 해결하는 추상화 — Service의 안정 IP,DNS, selector,Endpoints의 동작, ClusterIP / NodePort / LoadBalancer 세 타입의 선택 기준까지 한 사이클 따라가겠습니다.
RHEL 중급 #4 네트워킹 — NetworkManager (nmcli), bonding, teaming
RHEL 9 네트워킹은 NetworkManager 하나로 통일됐습니다. nmcli 명령군으로 정적 IP,DNS,게이트웨이를 잡는 흐름, 두 NIC를 묶어 장애에 견디는 bonding, 가상 머신과 컨테이너 네트워크의 기반인 bridge, 그리고 teaming이 deprecated된 이유까지 한 글로 정리합니다.
도커 고급 강좌 #1 BuildKit과 buildx — 빌더의 정체
중급 시리즈에서 켜둔 BuildKit을 한 단계 더 깊이 살펴보겠습니다. LLB와 frontend의 구조, buildx의 builder 인스턴스(docker-container vs docker), --output의 다양한 형태, 그리고 docker buildx bake로 다단 빌드를 선언적으로 묶는 방법까지 정리합니다.
K8s 기초 #4 Deployment와 ReplicaSet — 선언형 배포와 롤링 업데이트
[#3](/ko/posts/k8s-basics-3)의 마지막에서 본 한 줄 — Pod는 mortal, 죽으면 그냥 사라진다 — 의 후속편. 이번 글에서는 처음으로 컨트롤러 매니페스트를 적어 본다. Deployment / ReplicaSet / Pod 세 단의 관계를 잡고, 같은 nginx Pod를 replicas: 3으로 띄우고 한 개를 지웠을 때 어떻게 자동 복구되는지, 이미지 태그를 한 글자 바꾸면 롤링 업데이트가 어떻게 굴러가는지, 그리고 잘못 올라간 버전을 한 줄로 어떻게 되돌리는지를 한 사이클 따라가겠습니다.
도커 중급 강좌 #6 로깅과 디버깅
여러 컨테이너의 로그를 한곳에서 다루고, log driver를 바꾸고, exec,inspect,stats,dive로 컨테이너 안과 이미지를 들여다봅니다. 도커 중급 시리즈를 한 사이클로 마무리하겠습니다.
AWS 기초 #7 CloudWatch 입문: 로그 / 메트릭
CloudWatch Logs / Metrics / Alarms / Dashboards의 구조, 로그 그룹과 retention, Metric Filter, Logs Insights 쿼리 기초까지. 모든 운영의 눈을 정리합니다.
K8s 기초 #3 kubectl과 첫 Pod
[#2](/ko/posts/k8s-basics-2)에서 띄운 클러스터 위에 처음으로 워크로드 한 개를 올릴 차례. kubectl 명령 패턴을 한 표로 정리하고, kubectl run으로 명령형으로 첫 Pod를 띄워 본 다음 같은 모양을 YAML 매니페스트로 다시 적어 적용하겠습니다. describe,logs,exec로 Pod 안을 들여다보고, 마지막에는 Pod 한 개로는 왜 부족한지 — 그래서 다음 글의 Deployment가 왜 필요한지를 짚겠습니다.