Pod 수정
기존 Pod의 스펙 중 아래 항목들을 제외하고는 수정할 수 없다.
- spec.containers[*].image
- spec.initContainers[*].image
- spec.activeDeadlineSeconds
- spec.tolerations
예를 들어, 실행 중인 Pod의 환경 변수, 서비스 계정, 리소스 제한 등의 설정은 수정할 수 없다.
하지만 정말 수정하고 싶다면 방법이 두 가지가 있다.
방법 1
kubectl edit pod <pod 이름> 명령어를 실행하여 Pod의 스펙을 편집할 수 있다.
vi 에디터를 통해 필요한 속성을 수정한 후 저장하려고 하면, 저장이 거부된다.
이는 수정할 수 없는 필드를 편집하려고 했기 때문이다.
하지만 수정한 내용이 포함된 파일이 위에 표시된 것처럼 임시 위치에 저장된다.
다음 기존에 있던 Pod를 삭제한다.
kubectl delete pod webapp
그 후 임시 위치에 저장된 파일로 다시 pod를 생성한다.
kubectl create -f /tmp/kubectl-edit-ccvrq.yaml
최종적으로 변경 사항이 적용된다.
방법 2
다음 명령어를 사용하여 Pod 정의를 YAML 형식으로 파일에 추출한다.
kubectl get pod webapp -o yaml > my-new-pod.yaml
그 후 yaml 파일을 수정한다.
vi my-new-pod.yaml
수정 후 pod를 삭제한다.
kubectl delete pod webapp
수정된 파일로 새 pod를 생성한다.
kubectl create -f my-new-pod.yaml
방법 2
Deployment는 Pod 템플릿의 모든 필드나 속성을 쉽게 수정할 수 있다.
Pod 템플릿은 Deployment 스펙의 하위 항목이기 때문에, 수정이 있을 때마다 Deployment는 자동으로 기존 Pod를 삭제하고, 변경 사항이 반영된 새 Pod를 생성한다.
따라서 Deployment의 일부로 속한 Pod의 속성을 수정해야 한다면, 아래 명령어로 간단히 수정할 수 있다.
kubectl edit deployment my-deployment
이렇게 하면 Deployment와 관련된 Pod들이 자동으로 갱신된다.
'DevOps > Kubernetes' 카테고리의 다른 글
Kubernetes Metrics Server 구축 (0) | 2024.10.20 |
---|---|
Kubernetes 환경에서의 Monitoring (3) | 2024.10.20 |
Kubernetes Static Pod & Control Plane (0) | 2024.10.18 |
CKA 명령형(Imperative) 명령어 팁 (1) | 2024.10.16 |
CKA YAML 작성 팁 (0) | 2024.10.15 |