전체 글 166

Kubernetes 롤링 업데이트 & 롤백 완벽 정리

1. 롤링 업데이트란?Deployment의 이미지 버전을 바꿔서 kubectl apply를 실행하면, Kubernetes는 기본적으로 롤링 업데이트(Rolling Update) 전략으로 배포를 진행한다. 구버전 Pod를 한 번에 모두 내리고 신버전으로 교체하는 것이 아니라, 신버전 Pod를 하나씩 새로 띄우면서 구버전 Pod를 하나씩 내리는 방식으로 점진적으로 교체해서 서비스 중단 없이 배포가 이루어지도록 한다.지금까지 이 시리즈에서 다룬 requests/limits, Probe, HPA가 전부 이 롤링 업데이트 과정에서 실제로 맞물려 동작한다. 이번 글에서 그 연결고리를 확인할 수 있다.2. maxSurge와 maxUnavailable롤링 업데이트 중 Pod 개수가 어떻게 변하는지는 strategy.r..

프로그래밍/k8s 2026.09.17

Kubernetes HPA(HorizontalPodAutoscaler) 완벽 정리

1. HPA란 무엇인가지난 [Resource Request/Limit과 QoS Class 글]에서 각 Pod에게 CPU/메모리를 얼마나 줄지 정하는 법을 다뤘다면, 이번엔 그 자원 사용률을 기준으로 Pod 개수 자체를 자동으로 늘리고 줄이는 방법을 다룬다.HPA(HorizontalPodAutoscaler)는 CPU/메모리 사용률(또는 커스텀 메트릭)을 지속적으로 관찰하다가, 목표치를 초과하면 Pod 개수를 늘리고(Scale Out) 여유가 생기면 다시 줄이는(Scale In) Kubernetes 오브젝트다. "Horizontal(수평)"이라는 이름대로 Pod 하나의 스펙을 키우는 대신(Vertical), Pod 개수를 늘려서 트래픽 증가에 대응한다는 점이 핵심이다.apiVersion: autoscalin..

프로그래밍/k8s 2026.09.16

Kubernetes Resource Request/Limit과 QoS Class 완벽 정리

1. requests와 limits, 왜 둘 다 필요한가지난 Probe 글에서 "Pod의 상태를 어떻게 판단할지"를 다뤘다면, 이번엔 그 Pod에게 자원을 얼마나 줄지를 다룬다. Kubernetes에서 컨테이너의 CPU/메모리 사용량을 제어하는 필드는 requests와 limits 두 가지이고, 이 둘은 이름은 비슷해 보여도 동작하는 시점과 목적이 완전히 다르다.requests: 스케줄링 시점에 사용된다. "이 Pod를 배치하려면 최소 이만큼의 자원이 보장된 Node가 필요하다"는 선언이며, Scheduler는 각 Node의 여유 자원과 이 값을 비교해서 Pod를 어디에 배치할지 결정한다limits: 런타임(실행 중)에 사용된다. "이 컨테이너가 아무리 바빠도 이 이상은 쓰지 못하게 막는다"는 상한선이며..

프로그래밍/k8s 2026.09.14

Kubernetes Probe 완벽 정리 — livenessProbe / readinessProbe / startupProbe

1. Probe란 무엇인가Kubernetes는 기본적으로 컨테이너의 프로세스가 살아있는지만 감시한다. 컨테이너 안의 메인 프로세스가 죽지 않고 떠 있기만 하면, 그 애플리케이션이 실제로 정상 동작하는지 응답이 가능한 상태인지는 Kubernetes가 알 방법이 없다.Probe는 이 간극을 메우기 위한 기능이다. Kubernetes가 주기적으로 컨테이너에 직접 "지금 괜찮아?"라고 물어보고(HTTP 요청, TCP 접속, 명령어 실행 등), 그 응답을 기준으로 컨테이너의 상태를 판단하게 해준다. Probe를 어떻게 설정하느냐에 따라 장애가 발생했을 때 그 여파가 사용자에게까지 전달되는지, 아니면 Kubernetes 선에서 조용히 처리되는지가 갈린다.Kubernetes는 목적이 다른 3가지 Probe를 제공한다..

프로그래밍/k8s 2026.09.11

코딩 몰라도 게임을 만든다? GPT-6 Astra로 살펴보는 AI 게임 제작의 현재

최근 SNS와 커뮤니티를 뜨겁게 달군 키워드가 있습니다. 바로 GPT-6 Astra입니다. OpenAI가 2026년 9월 3일 공개한 이 모델은 단순히 "더 똑똑해진 챗봇"이 아니라, 컴퓨터를 직접 조작하고 소프트웨어를 개발하며 긴 작업을 스스로 끝까지 수행하는 데 초점을 맞춘 에이전트형 모델입니다. 그리고 그 활용 사례 중에서도 특히 눈길을 끄는 분야가 바로 게임 제작입니다.이번 글에서는 GPT-6 Astra가 무엇이 다른지, 실제로 어떤 게임들이 만들어지고 있는지(직접 플레이해볼 수 있는 링크 포함), 그리고 직접 게임을 만들어보고 싶다면 어떻게 접근하면 좋을지 정리해보겠습니다.1. GPT-6 Astra, 이전 모델과 뭐가 다른가GPT-6 Astra는 OpenAI의 차세대 최상위 프론티어 모델로, 컴..

잡동사니/temp 2026.09.10

Kubernetes YAML 설정 파일 완벽 정리 — 구조와 주요 리소스 예제

1. Kubernetes는 왜 YAML을 쓰는가Kubernetes의 모든 리소스(Pod, Deployment, Service 등)는 결국 API Server에 전달되는 하나의 **선언적 스펙(spec)**이다. 이 스펙을 사람이 읽고 쓰기 편한 형태로 표현한 것이 YAML 매니페스트(manifest) 파일이다.kubectl apply -f deployment.yaml이 명령은 결국 YAML 파일을 JSON으로 변환해 API Server에 REST 요청(PUT/PATCH)을 보내는 것과 같다. YAML은 JSON의 상위 호환 표현이라 JSON으로 작성해도 동작하지만, 주석을 달 수 있고 가독성이 좋아 Kubernetes 생태계에서는 YAML이 사실상 표준으로 쓰인다.2. YAML 기본 문법 주의사항Kube..

프로그래밍/k8s 2026.09.10

Kubernetes RWX(ReadWriteMany) 완벽 정리 — 개념부터 실전 예제까지

1. PV / PVC 개념 간단 복습RWX를 이해하려면 먼저 **PersistentVolume(PV)**과 **PersistentVolumeClaim(PVC)**의 관계를 알아야 한다.PV: 클러스터에 실제로 존재하는 스토리지 자원 (예: AWS EBS 볼륨, NFS 공유 디렉터리 등)을 Kubernetes 오브젝트로 추상화한 것PVC: Pod가 "이런 스펙(용량, 접근 방식 등)의 스토리지가 필요하다"고 요청하는 오브젝트. Kubernetes는 조건에 맞는 PV를 찾아 PVC와 연결(bind)해준다Pod는 PV를 직접 참조하지 않고 PVC를 통해 스토리지를 사용한다. 이렇게 한 단계를 분리해두면, 실제 스토리지가 EBS든 NFS든 애플리케이션 입장에서는 신경 쓸 필요가 없어진다.2. Access Mod..

프로그래밍/k8s 2026.09.09

kubectl 사용법 정리 — 자주 쓰는 명령어와 옵션 총정리

1. kubectl이란?kubectl은 Kubernetes 클러스터와 통신하기 위한 공식 CLI(Command Line Interface) 도구다. Pod, Deployment, Service 같은 리소스를 조회하고, 생성하고, 수정하고, 삭제하는 등 클러스터에 대한 거의 모든 작업을 이 하나의 명령어로 수행한다.중요한 건 kubectl 자체가 클러스터에 직접 접속하는 게 아니라는 점이다. kubectl은 클러스터의 API Server에 REST API 요청을 보내는 클라이언트일 뿐이고, 실제 상태 조회/변경은 모두 API Server를 거쳐 처리된다.2. 설치와 초기 설정2.1 설치# macOS (Homebrew)brew install kubectl# Linuxcurl -LO "https://dl.k8..

프로그래밍/k8s 2026.09.08

Kubernetes 기본 개념 정리 — 그림으로 이해하는 K8s 아키텍처

1. Kubernetes란?**Kubernetes(k8s)**는 여러 대의 서버에 걸쳐 컨테이너화된 애플리케이션을 배포, 확장, 운영하기 위한 오픈소스 컨테이너 오케스트레이션 플랫폼이다. 구글이 사내에서 사용하던 Borg 시스템의 경험을 바탕으로 만들어 2014년 오픈소스로 공개했다.컨테이너(Docker 등)가 애플리케이션을 "격리된 실행 단위"로 패키징하는 기술이라면, Kubernetes는 그 컨테이너를 **"어디에, 몇 개나, 어떻게 띄우고 유지할지"**를 관리해주는 도구다.왜 필요한가컨테이너 1~2개를 서버 1대에서 돌리는 정도라면 docker run 몇 번으로 충분하다. 하지만 서비스가 커지면 다음과 같은 문제들이 자연스럽게 발생한다.컨테이너가 죽으면 누가 다시 띄워주는가?트래픽이 몰릴 때 어떻게..

프로그래밍/k8s 2026.09.07

Kubernetes 멀티 Pod 환경에서 Alert 중복 전송 문제 해결하기 (client-go Leader Election)

1. 문제 상황Alertmanager(혹은 그 외 alert 소스)에서 수집한 데이터를 외부 웹으로 전달하는 서비스를 Kubernetes에 배포했다고 가정해보자.Alertmanager → [내 서비스 Pod] → 외부 웹 API가용성을 위해 Deployment의 replicas를 2 이상으로 설정하면, 각 Pod가 독립적으로 alert를 수신하고 동시에 동일한 데이터를 외부 웹으로 전송해버리는 문제가 발생한다.Pod A → 외부 웹으로 alert 전송Pod B → 동일한 alert를 또 전송결과: 외부 시스템에는 중복 알림이 두 번(또는 replica 수만큼) 쌓임이는 서비스 자체는 이중화(HA)해야 하지만, 실제 "일"을 수행하는 주체는 단 하나여야 하는 전형적인 케이스다. 이럴 때 Kubernetes..

프로그래밍/k8s 2026.09.04