Exercise 7.1: Working with ReplicaSets
CP 노드에 연결된 터미널로 이동
ReplicaSet 생성
cat <<EOF | kubectl create -f - apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-one labels: system: ReplicaOne spec: replicas: 2 selector: matchLabels: system: ReplicaOne template: metadata: labels: system: ReplicaOne spec: containers: - name: nginx image: nginx:1.15.1 ports: - containerPort: 80 EOF
생성된 ReplicaSet 상태 확인
kubectl describe rs rs-one
생성된 Pod 확인
kubectl get pod -l system=ReplicaOne
생성된 Pod에 명시된 ownerReferences 확인
kubectl get pod -l system=ReplicaOne \ -o=jsonpath='{.items[*].metadata.ownerReferences}' | jq
ReplicaSet이 생성한 Pod는 유지하면서 ReplicaSet 삭제
kubectl delete rs rs-one --cascade=orphan
ReplicaSet 및 Pod 확인
kubectl get rs,pod -l system=ReplicaOne
생성된 Pod에 명시된 ownerReferences 확인
kubectl get pod -l system=ReplicaOne \ -o=jsonpath='{.items[*].metadata.ownerReferences}' | jq
새로운 Pod를 생성하고 Label (system: ReplicaOne) 부여
kubectl run nginx --image=nginx -l system=ReplicaOne
생성된 Pod 및 각 Pod에 부여된 Label 확인
kubectl get pod --show-labels
ReplicaSet 재생성
cat <<EOF | kubectl create -f - apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-one labels: system: ReplicaOne spec: replicas: 2 selector: matchLabels: system: ReplicaOne template: metadata: labels: system: ReplicaOne spec: containers: - name: nginx image: nginx:1.15.1 ports: - containerPort: 80 EOF
ReplicaSet 및 Pod 확인
kubectl get rs,pod -l system=ReplicaOne
ReplicaSet에 발생한 Event 확인 - https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#scaling-a-replicaset
kubectl describe rs rs-one
생성된 2개의 Pod 중에 한개의 Pod의 Label 변경
kubectl label pod POD_NAME system=IsolatedPod --overwrite
OR
kubectl label pod $(kubectl get pod -l system=ReplicaOne -o=jsonpath='{.items[0].metadata.name}') system=IsolatedPod --overwrite
ReplicaSet 및 Pod 확인
kubectl get rs,pod -L system
ReplicaSet에 발생한 Event 확인
kubectl describe rs rs-one
Label이 변경된 Pod에 ownerReferences가 명시되어 있는지 확인
kubectl get pod -l system=IsolatedPod \ -o=jsonpath='{.items[*].metadata.ownerReferences}' | jq
ReplicaSet 삭제
kubectl delete rs rs-one
ReplicaSet 및 Pod 확인
kubectl get rs,pod -L system
남은 Pod 삭제
kubectl delete pod -l system=IsolatedPod
Last updated