본문으로 건너뛰기

4.1. Deployments (배포)

개요

Deployments 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 Deployment를 통합적으로 관리하는 페이지입니다. 멀티클러스터에 분산 배포된 Deployment의 상태, 레플리카 수, 파드 현황 등을 확인하고 관리할 수 있습니다.

주요 목적:

  • 멀티클러스터 Deployment 통합 관리
  • 클러스터별 배포 현황 모니터링
  • Deployment 생성, 수정, 삭제
  • 스케일 업/다운 및 재시작 작업
  • PropagationPolicy 및 OverridePolicy 확인

화면 구성

Deployments 페이지는 테이블 형태로 Deployment 목록을 표시합니다.

Deployments 메인 화면

페이지 상단 요소

요소설명
네임스페이스 필터특정 네임스페이스의 Deployment만 표시
새로고침 버튼Deployment 목록 갱신
생성 버튼새 Deployment 생성 다이얼로그 열기
검색창Deployment 이름으로 검색

테이블 컬럼

컬럼설명정렬
이름Deployment 이름
상태정상 / 비정상
네임스페이스Deployment가 속한 네임스페이스
클러스터배포된 클러스터 현황 (동기화됨/전체)
파드Ready 파드 수 / 전체 파드 수
경과시간Deployment 생성 후 경과 시간
작업스케일/재시작/편집/삭제 버튼-

상태 표시

상태설명표시
정상모든 레플리카가 Ready 상태녹색 배지
비정상일부 또는 전체 레플리카가 Ready가 아님빨간색 배지

클러스터 분배 현황

클러스터 컬럼은 Deployment의 멀티클러스터 동기화 상태를 표시합니다:

  • 2/2: 2개 클러스터 중 2개에 정상 동기화
  • 1/2: 2개 클러스터 중 1개만 동기화 완료
  • 클러스터 배지를 클릭하면 해당 클러스터의 상세 정보 확인 가능

Deployment 상세 정보

Deployment 행을 클릭하면 상세 정보 패널이 열립니다.

Deployment 상세 정보

상세 패널 헤더

요소설명
Deployment 이름선택한 Deployment 이름
상태 배지정상/비정상 상태
네임스페이스Deployment가 속한 네임스페이스
동기화 상태N/N 클러스터 동기화 현황

액션 버튼

버튼기능
스케일레플리카 수 조정 (스케일 업/다운)
재시작Deployment 롤링 재시작
새로고침Deployment 정보 갱신
편집YAML 편집 모드
삭제Deployment 삭제

탭 메뉴

개요 탭

Deployment의 기본 정보, 레플리카 상태, 전략 정보를 표시합니다.

기본 정보:

항목설명
이름Deployment 이름
네임스페이스Deployment가 속한 네임스페이스
클러스터배포된 클러스터 목록
상태정상 / 비정상
경과시간생성 후 경과 시간
생성일Deployment 생성 일시

레플리카 상태:

항목설명
현재 레플리카현재 실행 중인 레플리카 수
필요한 레플리카설정된 레플리카 수
Ready 레플리카Ready 상태의 레플리카 수
사용 가능한 레플리카Available 상태의 레플리카 수
업데이트된 레플리카최신 버전으로 업데이트된 레플리카 수

파드 상태:

파드 상태 섹션에서는 Deployment의 파드 현황을 시각적으로 표시합니다:

  • 실행 중 (Running): 정상 동작 중인 파드
  • 대기 중 (Pending): 스케줄링 대기 중인 파드
  • 성공 (Succeeded): 완료된 파드
  • 실패 (Failed): 실패한 파드
  • 알 수 없음 (Unknown): 상태 확인 불가

전략:

항목설명
전략 타입RollingUpdate 또는 Recreate
최대 Surge업데이트 시 추가 생성 가능한 파드 수/비율
최대 Unavailable업데이트 시 중단 가능한 파드 수/비율

컨테이너 이미지:

Deployment에 정의된 컨테이너 이미지 목록을 표시합니다:

  • 컨테이너 이름
  • 이미지 이름 및 태그

멀티클러스터 정책 탭

Deployment에 적용된 멀티클러스터 정책 정보를 표시합니다.

멀티클러스터 정책 탭

PropagationPolicy:

항목설명
정책 이름적용된 PropagationPolicy 이름
스케줄러 이름사용 중인 스케줄러
클러스터 선호도타겟 클러스터 목록
레플리카 분배클러스터별 레플리카 배분 전략

OverridePolicy:

항목설명
정책 이름적용된 OverridePolicy 이름
오버라이드 규칙클러스터별 커스텀 설정

레이블 탭

Deployment에 적용된 Kubernetes 레이블 목록을 표시합니다.

어노테이션 탭

Deployment에 적용된 어노테이션 목록을 표시합니다.

파드 탭

해당 Deployment에서 실행 중인 파드 목록을 표시합니다.

파드 탭
컬럼설명
이름파드 이름
클러스터파드가 실행 중인 클러스터
상태파드 상태 (실행 중/대기 중/실패 등)
노드파드가 스케줄된 노드
재시작파드 재시작 횟수
경과시간파드 생성 후 경과 시간
작업상세 보기/삭제 등

복제 세트 탭

Deployment가 관리하는 ReplicaSet 목록을 표시합니다:

  • ReplicaSet 이름
  • 레플리카 수
  • 이미지 버전
  • 생성 시간

이벤트 탭

Deployment 관련 Kubernetes 이벤트를 표시합니다.

Deployment 생성

새로운 Deployment를 MCM 컨트롤 플레인에 생성합니다.

입력 항목

항목필수설명
이름Deployment 이름
네임스페이스배포할 네임스페이스
레플리카 수초기 레플리카 수 (기본값: 1)
컨테이너 이미지컨테이너 이미지 URL
포트-컨테이너 포트 설정
환경 변수-컨테이너 환경 변수
리소스 제한-CPU/메모리 제한 및 요청

YAML 편집

"YAML 편집" 탭에서 Deployment 정의를 직접 작성할 수 있습니다.

Deployment 작업

스케일 업/다운

Deployment의 레플리카 수를 조정합니다.

  1. Deployment 목록에서 대상 Deployment 선택
  2. 작업 버튼에서 "스케일" 클릭 또는 상세 패널에서 "스케일" 버튼 클릭
  3. 원하는 레플리카 수 입력
  4. "확인" 버튼 클릭

참고: 스케일 변경은 MCM 컨트롤 플레인에서 이루어지며, PropagationPolicy에 따라 멤버 클러스터에 분배됩니다.

롤링 재시작

Deployment의 모든 파드를 순차적으로 재시작합니다.

  1. Deployment 선택
  2. 상세 패널에서 "재시작" 버튼 클릭
  3. 확인 다이얼로그에서 "재시작" 버튼 클릭

재시작 시 RollingUpdate 전략에 따라 파드가 순차적으로 재생성됩니다.

Deployment 편집

  1. Deployment 선택
  2. 상세 패널에서 "편집" 버튼 클릭
  3. YAML 에디터에서 Deployment 정의 수정
  4. "저장" 버튼 클릭

Deployment 삭제

⚠️ 주의: Deployment를 삭제하면 관련된 모든 ReplicaSet과 파드도 함께 삭제됩니다. 멤버 클러스터에 배포된 리소스도 삭제 정책에 따라 처리됩니다.

  1. 삭제할 Deployment 선택
  2. 상세 패널에서 "삭제" 버튼 클릭
  3. 확인 다이얼로그에서 Deployment 이름 입력
  4. "삭제" 버튼 클릭

사용 예시

시나리오 1: 멀티클러스터 Deployment 생성

  1. "생성" 버튼 클릭
  2. Deployment 정보 입력:
    • 이름: my-app
    • 네임스페이스: production
    • 레플리카 수: 3
    • 컨테이너 이미지: my-registry/my-app:v1.0
  3. "생성" 버튼 클릭
  4. PropagationPolicy를 생성하여 타겟 클러스터 지정
  5. 클러스터별 배포 상태 확인

시나리오 2: Deployment 상태 확인

  1. Deployment 목록에서 확인할 Deployment 클릭
  2. 개요 탭에서 레플리카 상태 확인
  3. 파드 탭에서 개별 파드 상태 및 클러스터 분배 확인
  4. 이벤트 탭에서 최근 이벤트 확인
  5. 문제가 있는 경우 파드 로그 확인

시나리오 3: 스케일 아웃

  1. 스케일 아웃할 Deployment 선택
  2. "스케일" 버튼 클릭
  3. 현재 레플리카 수에서 원하는 수로 증가 (예: 3 → 5)
  4. "확인" 클릭
  5. 파드 탭에서 새 파드가 생성되는 것 확인
  6. 클러스터별 파드 분배 확인

시나리오 4: 롤링 업데이트

  1. Deployment 선택 후 "편집" 클릭
  2. 컨테이너 이미지 버전 변경 (예: v1.0v1.1)
  3. "저장" 클릭
  4. 개요 탭에서 업데이트 진행 상황 확인
  5. 복제 세트 탭에서 새 ReplicaSet 생성 확인
  6. 파드 탭에서 파드가 순차적으로 교체되는 것 확인

시나리오 5: 멀티클러스터 정책 확인

  1. Deployment 선택
  2. "멀티클러스터 정책" 탭 클릭
  3. PropagationPolicy 확인:
    • 타겟 클러스터 목록
    • 레플리카 분배 전략
  4. OverridePolicy 확인 (있는 경우):
    • 클러스터별 커스텀 설정
  5. 필요시 정책 수정을 위해 Policies 메뉴로 이동

관련 개념

RollingUpdate 전략

Deployment의 기본 업데이트 전략으로, 다운타임 없이 파드를 순차적으로 교체합니다:

  • maxSurge: 업데이트 시 추가로 생성할 수 있는 파드 수 (기본값: 25%)
  • maxUnavailable: 업데이트 시 사용 불가능해도 되는 파드 수 (기본값: 25%)

PropagationPolicy

MCM에서 워크로드를 멤버 클러스터에 분배하는 정책입니다:

  • 타겟 클러스터 선택 (클러스터 이름, 레이블 등)
  • 레플리카 분배 전략 (Duplicated, Divided)
  • 스케줄링 우선순위

OverridePolicy

클러스터별로 워크로드 설정을 커스터마이징하는 정책입니다:

  • 이미지 오버라이드 (클러스터별 다른 레지스트리)
  • 리소스 제한 오버라이드
  • 환경 변수 오버라이드

ReplicaSet

Deployment가 내부적으로 관리하는 컨트롤러로, 실제 파드의 생성과 스케일링을 담당합니다:

  • Deployment 버전별로 ReplicaSet 생성
  • 롤백 시 이전 ReplicaSet 활성화
  • 히스토리 관리

다음 단계