OPS

Kubernetes Pod와 Deployment 수정 방법 정리

찻잔속청개구리 2025. 4. 28. 21:52
반응형

k8s를 사용하다 보면 기존에 만들어진 Pod나 Deployment를 수정해야 할 때가 있습니다.
하지만 몇 가지 주의할 점이 있는데요,

이 글에서는 Pod 수정이 제한되는 이유Deployment 수정 방법을 간단히 정리해보겠습니다.

 

Pod 수정은 제한적

Pod는 기본적으로 생성된 이후에 대부분의 항목을 수정할 수 없습니다.
특히 다음 항목들은 수정이 금지되어 있습니다.

 

  • 환경 변수 (Environment Variables)
  • 서비스 어카운트 (Service Accounts)
  • 리소스 요청 및 제한 (Resource Limits)
  • 볼륨 설정 등

하지만 아래 항목은 수정 가능해요.

 

  • spec.containers[*].image : 컨테이너 이미지 변경
  • spec.initContainers[*].image : 초기 컨테이너 이미지 변경
  • spec.activeDeadlineSeconds : Pod의 최대 실행 시간 설정
  • spec.tolerations : 톨러레이션 설정 변경

 

그렇다면 Pod 수정은 어떻게 할 수 있을까요?

Pod를 수정하는 두 가지 방법

1. kubectl edit pod 명령어 사용

1) kubectl edit pod <pod 이름> 명령어로 Pod를 편집합니다.

2) /tmp/과 같은 임시 디렉토리에 임시 저장합니다.

3) kubectl delete pod <pod 이름> 로 기존 Pod 삭제합니다.

4) kubectl create -f /tmp/파일명.yaml 임시 저장된 파일을 사용해 새 Pod 생성합니다.

 

2. Pod YAML을 추출해서 수정

1) 기존 Pod를 파일로 추출합니다.
kubectl get pod <pod 이름> -o yaml > my-new-pod.yaml
2) 파일을 편집기로 열어 수정합니다.

vi my-new-pod.yaml

3) 기존 Pod를 삭제합니다.
kubectl delete pod <pod 이름>
4) 수정한 파일을 기반으로 새 Pod를 생성합니다.
kubectl create -f my-new-pod.yaml

 

한편, Deployment 수정은 훨씬 쉽습니다.

 

Deployment 수정 방법

kubectl edit deployment <deployment 이름>

Deployment는 내부에 "Pod 템플릿"을 가지고 있어서, 이 템플릿을 수정하면 쿠버네티스가 알아서 기존 Pod를 삭제하고 새로운 Pod를 생성합니다.
즉, 수정 후 별도로 Pod를 삭제하거나 다시 만들 필요가 없습니다.

 

정리하자면,

  • Pod는 이미 만들어진 뒤에는 대부분 수정이 불가능하고, 삭제 후 새로 만들어야 한다.
  • Deployment는 수정하면 알아서 새로운 Pod를 생성해 반영된다.

 

 

 

반응형