쿠버네티스

쿠버네티스 라벨을 이용한 레플리카셋 설정

GTC 2021. 4. 26. 16:15

레플리카셋 YAML파일 작성

 

 

레플리카셋 생성

# kubectl apply -f replicaset-nginx.yaml

 

 

레플리카셋의 포드 개수 수정

YAML 파일을 직접 수정하거나 다음과 같은 명령어로 포드 개수를 수정할 수 있다

# kubectl scale rs replicaset-nginx --replicas=<원하는 포드 개수>

2개에서 4개로 추가

생성할 때는 created라고 출력되고 YAML파일을 수정하고 생성하면 configured라고 출력된다 

 

 

레플리카셋의 동작 원리

레플리카셋은 테두리 안에 정의된 라벨을 통해 생성해야 하는 포드를 찾는다

app: my-nginx-pods-label 라벨을 가지는 포드의 개수가 replicas 항목에 정의된 숫자인 4개와 일치하지 않으면

템플릿의 내용으로 포드를 추가 생성한다 

 

 

 

만약 app: my-nginx-pods-label 라벨을 가지는 포드 하나를  미리 생성해 놓은 다음 레플리카셋을 생성한다면

3개의 포드만이 생성될 것이다 

우선 기존의 레플리카셋을 삭제해보자

# kubectl delete rs replicaset-nginx

 

 

app: my-nginx-pods-label 라벨을 가지는 YAML파일 생성

 

 

포드 생성

# kubectl apply -f nginx-pod-without-rs.yaml

 

 

이 상태에서 레플리카셋을 생성해보면 app: my-nginx-pods-label 라벨을 가지는 포드 하나가 이미 있기 때문에

4개가 아닌 3개의 포드만이 생성된 것을 확인할 수 있다

 

 

리소스 속성 변경

리소스 속성을 변경할 수 있는 명령어(kubectl edit)를 입력하여 텍스트 편집기를 실행한 뒤, 빨간 밑줄 두 줄을 삭제하고 저장한다

kubectl edit pods <레플리카셋에 의해 생성된 포드이름>

 

 

포드와 라벨 함께 출력

# kubectl get pods --show-labels

라벨을 제거한 포드(6hqxz)는 더 이상 레플리카셋에 의해 관리되지 않으며 수동으로 생성한 포드와 동일한 상태가 된다

레플리카셋을 삭제해도 이 포드는 삭제되지 않는다

포드 하나가 제거되어 3개가 되었으므로 레플리카셋은 4개의 포드 개수를 맞추기위해 새로운 포드(dsbjk)를 생성한다