-
[Kubernetes] last-applied-configuration annotation 알아보기Kubernetes 2024. 4. 20. 17:18728x90반응형
- 목차
키워드.
- annotations
last-applied-configuration ?
이번 글에서는 k8s 리소스의 Annotation 중의 하나인 "kubectl.kubernetes.io/last-applied-configuration" 에 대해서 알아보려고 합니다.
last-applied-configuration 어노테이션은 "kubectl apply" 명령어로 생성된 k8s 리소스의 어노테이션 중의 하나이구요.
가장 최근의 kubectl apply 명령어를 통해서 생성 또는 수정된 Configuration 정보가 들어있습니다.
간단한 예시를 들어보도록 하겠습니다.
cat <<EOF> /tmp/pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 EOF
kubectl apply -f /tmp/pod.yaml
위와 같이 생성된 Pod 의 metadata.annotations 는 아래와 같습니다.
annotations 하위에 "kubectl.kubernetes.io/last-applied-configuration" 인 key 와 value 가 생성됩니다.
value 에 해당하는 값은 이전에 설정하였던 Pod 리소스의 명세에 해당합니다.
apiVersion: v1 kind: Pod metadata: name: nginx namespace: default uid: 5d891f68-1b3f-439d-9615-4c42218fbf97 resourceVersion: '1301' annotations: kubectl.kubernetes.io/last-applied-configuration: > {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx","ports":[{"containerPort":80}]}]}}
이 상태에서 Pod 의 명세를 수정해도록 하겠습니다.
간단하게 new: ok 라는 새로운 Label 을 추가하였구요.
이를 kubectl apply 명령어를 통해서 API 를 실행하게 되면, 변경된 Pod 의 annotation 을 확인할 수 있습니다.
cat <<EOF> /tmp/pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx labels: new: ok spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 EOF
kubectl apply -f /tmp/pod.yaml
아래의 Pod 의 결과를 확인해보시면,
metadata.annotations 하위의 last-applied-configuration 값에 labels 이 추가됨을 확인할 수 있습니다.
apiVersion: v1 kind: Pod metadata: name: nginx namespace: default uid: 5d891f68-1b3f-439d-9615-4c42218fbf97 resourceVersion: '1751' labels: new: ok annotations: kubectl.kubernetes.io/last-applied-configuration: > {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"labels":{"new":"ok"},"name":"nginx","namespace":"default"},"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx","ports":[{"containerPort":80}]}]}}
이러한 방식으로 k8s 리소스들은 자신에게 적용된 가장 최신의 설정을 보관하고 있으며,
이 last-applied-configuration 정보를 통해서 새로 추가된 설정인지, 제거해야할 설정인지 여부를 파악할 수 있습니다.
반응형'Kubernetes' 카테고리의 다른 글
[Kubernetes] HPA 알아보기 ( Horizontal Pod Autoscaler ) (0) 2024.02.16 [Kubernetes] QoS 알아보기 (Quality of Service) (0) 2024.02.04 [KinD] KinD Cluster 로 Docker Image 업로드하기 (kind load docker-image) (0) 2024.02.03 Kubernetes Deployment 알아보기 (4) 2024.01.09 Kubernetes PersistentVolumeClaims (PVC) 알아보기 (0) 2024.01.08