💻
[Kubernetes] Replicaset의 문제점
On this page
❐ 실습 내용
레플리카셋은 yaml파일 변경 후 적용 시, 모든 파드에 적용되지 않는다는 문제점이 있습니다. 해당 문제점을 확인해봅시다.
파드 확인
root@instance-1:~# kubectl get podNo resources found in default namespace.
yaml 파일 생성
nginx.yaml 파일을 생성합니다.
root@instance-1:/etc/kubernetes/manifests# vi nginx.yaml
yaml 파일 작성
nginx.yaml 파일에 아래와 같이 작성합니다.
apiVersion: apps/v1kind: ReplicaSetmetadata:name: nginxspec:template:metadata:name: nginxlabels:app: nginxspec:containers:- name: nginximage: nginx:1.20.1ports:- containerPort: 80replicas: 3selector:matchLabels:app: nginx
yaml 파일 적용
nginx.yaml 파일 내용을 적용합니다.
root@instance-1:/etc/kubernetes/manifests# kubectl create -f nginx.yaml
파드 확인
파드가 3개 생성된 것을 볼 수 있습니다.
root@instance-1:/etc/kubernetes/manifests# kubectl get podNAME READY STATUS RESTARTS AGEnginx-6jg7m 1/1 Running 0 11snginx-z7gjh 1/1 Running 0 11snginx-zmwfv 1/1 Running 0 11s
파드 yaml파일 내용 확인
nginx1-6jg7m, nginx1-z7gjh, nginx1-zmwfv 파드의 yaml파일 내용을 확인합니다. 도커 이미지가 nginx:1.20.1인 것을 확인할 수 있습니다.
root@instance-1:~# kubectl get pod -o yaml nginx-6jg7mapiVersion: v1kind: Podmetadata:creationTimestamp: "2021-08-29T14:34:49Z"generateName: nginx-labels:app: nginxname: nginx-6jg7mnamespace: defaultownerReferences:- apiVersion: apps/v1blockOwnerDeletion: truecontroller: truekind: ReplicaSetname: nginxuid: a827631e-6534-4c64-8e31-ae71d098861cresourceVersion: "25366"uid: 5637a3ae-96ee-49e2-81cf-9f0678e0a42espec:containers:- image: nginx:1.20.1imagePullPolicy: IfNotPresentname: nginxports:- containerPort: 80protocol: TCPresources: {}(생략...)root@instance-1:/etc/kubernetes/manifests# kubectl get pod -o yaml nginx1-z7gjh(생략...)root@instance-1:/etc/kubernetes/manifests# kubectl get pod -o yaml nginx1-zmwfv(생략...)
yaml 파일 수정
nginx.yaml 파일을 열어 nginx:1.20.1 -> nginx:1.21.1으로 nginx 도커 이미지 버전을 변경합니다.
root@instance-1:/etc/kubernetes/manifests# vi nginx.yaml
apiVersion: apps/v1kind: ReplicaSetmetadata:name: nginxspec:template:metadata:name: nginxlabels:app: nginxspec:containers:- name: nginximage: nginx:1.21.1ports:- containerPort: 80replicas: 3selector:matchLabels:app: nginx
수정한 yaml파일 적용
수정한 nginx.yaml파일을 적용합니다.
root@instance-1:~# kubectl apply -f nginx.yamlreplicaset.apps/nginx configured
파드 yaml파일 내용 확인
nginx1-6jg7m, nginx1-z7gjh, nginx1-zmwfv 파드의 yaml파일 내용을 확인합니다. 도커 이미지가 nginx:1.20.1 -> nginx:1.21.1로 변경되지 않은 것을 확인할 수 있습니다.
root@instance-1:~# kubectl get pod -o yaml nginx-6jg7mapiVersion: v1kind: Podmetadata:creationTimestamp: "2021-08-29T14:34:49Z"generateName: nginx-labels:app: nginxname: nginx-6jg7mnamespace: defaultownerReferences:- apiVersion: apps/v1blockOwnerDeletion: truecontroller: truekind: ReplicaSetname: nginxuid: a827631e-6534-4c64-8e31-ae71d098861cresourceVersion: "25366"uid: 5637a3ae-96ee-49e2-81cf-9f0678e0a42espec:containers:- image: nginx:1.20.1imagePullPolicy: IfNotPresentname: nginxports:- containerPort: 80protocol: TCPresources: {}(생략...)root@instance-1:/etc/kubernetes/manifests# kubectl get pod -o yaml nginx1-z7gjh(생략...)root@instance-1:/etc/kubernetes/manifests# kubectl get pod -o yaml nginx1-zmwfv(생략...)