yeonghoon.kim

  • 게시판
  • 갤러리

ARM Kubernetes 구축 6 - 무중단 업그레이드

김영훈 2026.02.20 19:18 조회 수 : 208

애플리케이션 Pod 무중단 업그레이드 테스트.

Part 5에서 클러스터 업그레이드 중 NotReady가 생겼으니, 이번에는 Pod 교체를 무중단으로 처리.

현재 상태 확인.

kubectl get deployments -o wide

nginx-demo는 1개라 3개로 확장.

kubectl scale deployment nginx-demo --replicas=3

kubectl get pods -l app=nginx-demo

PDB 설정.

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: nginx-demo-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: nginx-demo
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: apache-demo-pdb
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: apache-demo

확인.

kubectl get pdb

nginx-demo RollingUpdate 설정.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-demo
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: nginx-demo
  template:
    metadata:
      labels:
        app: nginx-demo
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 2
          periodSeconds: 2

확인.

kubectl get deployment nginx-demo -o yaml | grep -A 5 "strategy:"

이미지 업데이트.

kubectl set image deployment/nginx-demo nginx=nginx:1.25-alpine

kubectl rollout status deployment/nginx-demo

Pod 확인.

kubectl get pods -l app=nginx-demo

이미지 확인.

kubectl get pods -l app=nginx-demo -o jsonpath="{.items[*].spec.containers[*].image}"

서비스 응답 확인.

for i in {1..20}; do 
  curl -s -o /dev/null -w "%{http_code} " http://192.168.255.100/
done
echo ""

결과.

200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200

apache-demo도 동일하게 적용.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache-demo
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: apache-demo
  template:
    metadata:
      labels:
        app: apache-demo
    spec:
      containers:
      - name: apache
        image: httpd:alpine
        ports:
        - containerPort: 80
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 2
          periodSeconds: 2

이미지 업데이트.

kubectl set image deployment/apache-demo apache=httpd:2.4-alpine

kubectl rollout status deployment/apache-demo

apache 응답 확인.

for i in {1..20}; do 
  curl -s -o /dev/null -w "%{http_code} " http://192.168.255.100/apache
done
echo ""

결과.

200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200

최종 확인.

kubectl get deployments

kubectl get pdb

kubectl get pods -l "app in (nginx-demo,apache-demo)"

핵심 설정.

PDB.

minAvailable: 2

RollingUpdate.

maxSurge: 1
maxUnavailable: 0

Readiness Probe.

readinessProbe:
  httpGet:
    path: /
    port: 80
  initialDelaySeconds: 2
  periodSeconds: 2

nginx-demo.

3 replicas.

apache-demo.

2 replicas.

결과.

nginx-demo 요청 전부 200.
apache-demo 요청 전부 200.
다운타임 0초.

  • 추천 0

  • 비추천 0
이 게시물을
목록

댓글 0

번호 제목 글쓴이 날짜 조회 수
공지 2025 일본 여행 계획 김영훈 2024.10.10 4119
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 3752
317 OpenClaw 복원과 GLM-5.1 전환 김영훈 2026.04.07 145
316 교토 4박 5일 여행 일정: Google Calendar로 관리하는 일정짜기 김영훈 2026.04.05 124
315 7일간의 일본 여행 일정 짜기: 신칸센 + JR 패스 + Google Calendar 활용 프로젝트 김영훈 2026.03.28 128
314 JSON-LD 학습 - 메일과 Calendar 자동 인식 김영훈 2026.03.28 151
313 WAF 운영 6주 분석 김영훈 2026.03.13 199
312 Tech Support 플랫폼 김영훈 2026.03.04 80
311 ChloeToken 테스트넷 배포 김영훈 2026.03.02 232
310 Redis 대기열 시스템 김영훈 2026.03.01 212
309 Apache RewriteRule 쿼리스트링 처리 김영훈 2026.02.28 258
308 비트코인 자동매매 봇 대시보드 김영훈 2026.02.21 144
» ARM Kubernetes 구축 6 - 무중단 업그레이드 김영훈 2026.02.20 208
306 ARM Kubernetes 구축 8 - 실전 보안 RBAC 네트워크 정책 Pod 보안 김영훈 2026.02.20 194
305 ARM Kubernetes 구축 7 - 클러스터 무중단 업그레이드 v1.29→v1.35 김영훈 2026.02.20 252
304 ARM Kubernetes 구축 4 - 외부 접근 환경 VPN MetalLB Ingress 김영훈 2026.02.18 246
303 ARM Kubernetes 구축 5 - 실전 업그레이드 경험기 v1.29→v1.35 김영훈 2026.02.18 238
302 ARM Kubernetes 구축 3 - 모니터링 스택 Prometheus Grafana 김영훈 2026.02.16 179
301 ARM Kubernetes 구축 1 - VNC & KVM 설치 김영훈 2026.02.14 70
300 ARM Kubernetes 구축 2 - VM 생성과 클러스터 설치 김영훈 2026.02.14 138
299 OpenClaw 모델 삭제 사고 김영훈 2026.02.13 114
298 LLM 모델 선정 김영훈 2026.02.12 141
쓰기 태그
 첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지