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를 생성해 반영된다.
'OPS' 카테고리의 다른 글
DevOps 스터디 - 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨 클레임(PVC) #2 (심화) (0) | 2025.05.04 |
---|---|
DevOps 스터디 - 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨 클레임(PVC) #2 (0) | 2025.05.04 |
DevOps 스터디 - 인그레스(Ingress) #1 (0) | 2025.04.27 |
EKS 도메인 자동 관리 with ExternalDNS + Ingress + Route53 (0) | 2025.04.24 |
Zonal shift delegated to dns가 뭐야? (0) | 2025.04.23 |