• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

Replica Set에서 matchLabels와 matchExpressions을 사용할 때

19.12.23 11:22 작성 조회수 230

1

강의를 듣던 중에 궁금한 점이 생겨 질문합니다.

Replica Set은 pod의 복제 관리를 해주는 컨트롤러라고 알고있습니다.

기존에 생성되어있는 pod가 없으면 템플릿을 통해 replicas에 적힌 수 만큼 pod를 찍어내고 이 찍어낸 pod를 관리하는 거라고 알고있습니다.

근데 Replica Set강의에서 matchLabels와 matchExpressions을 둘 다 사용가능하다고 하셨는데 

만약에 강의 내용처럼 pod1 pod2의 type은 web이고 pod3의 type은 db인데 이건 서로 다른 pod아닌가요??

서로 다른 pod의 replica(복제) 개수는 어떻게 유지가 되나요?? 

아니면 처음에만 기존에 있는 pod만 연결되고 그 이후에는 템플릿에 적힌 pod만 복제되는 건가요?

그리고 추가적으로 이 템플릿은 하나의 pod 양식만 적을 수 있나요??

답변 2

·

답변을 작성해보세요.

1

안녕하세요.

질문이 많아서 제가 정확하게 질문을 다 이해하지 못한 부분도 있을 수 있으니, 부족한 답변에 대해서는 다시 질문 바랍니다.

근데 Replica Set강의에서 matchLabelsmatchExpressions을 둘 다 사용가능하다고 하셨는데 

-> 논리적으로 사용은 가능하지만 복잡성 때문에 권장하지 않습니다.  그렇기 때문에 실무에서 굳이 둘다 사용하는 예제를 만들어서 어렵게 사용하실 필요는 없고요, 강의에서는 비교설명을 드리기 위해서 yaml 내용에 함께 둔것입니다.

만약에 강의 내용처럼 pod1 pod2typeweb이고 pod3typedb인데 이건 서로 다른 pod아닌가요??

-> 실제 type:web과 type:db로 라벨링을 했다면 서로 다른 종류의 Pod이고 이 두 종류의 Pod를 한 ReplicaSet으로 연결하는 경우는 없겠습니다.  강의내용에서는 match되는 방법을 설명하기 위해서 type에 web과 db을 사용한것입니다.

서로 다른 podreplica(복제) 개수는 어떻게 유지가 되나요?? 

아니면 처음에만 기존에 있는 pod만 연결되고 그 이후에는 템플릿에 적힌 pod복제되는 건가요?

-> 강의에 Template 부분에서 설명드린 내용인것 같은데, 보충설명을 더해서 다시 설명드려볼께요.

ReplicaSet이 최초 만들어 질때는 현재 생성되어 있는 Pod의 Label을 봅니다. 근데 ReplicaSet의 Selector에 매칭되는 Label이 없거나 Label은 매칭되지만 이미 다른 ReplicaSet에 소속되어 있는 Pod라면 ReplicaSet은 그런 대상들을 제외되고요. 

만약 ReplicaSet에 정의된 Replicas의 갯수가 2개이고 매칭되는 기존 Pod가 하나라면 ReplicaSet에 정의되어 있는 Template으로 1개의 새Pod가 생성됩니다.

이런 상태에서 ReplicaSet에 지정된 Seloctor와 매칭되는 Pod를 하나더 만들면, ReplicaSet은 Replicas가 2이기 때문에 이 Pod는 바로 삭제가 되면서 만들어지지 않고요.

결론적으로 ReplicaSet 하나만 만들어서 Pod를 관리하기엔 고려할 것과 복잡성이 크다고 할 수 있습니다.

그래서 보통 이렇게 ReplicaSet 하나만 만들기 보단 추후 배울 Deployment를 이용하는 경우가 많고요. 

그리고 한가지 당부드릴 말씀은 Object의 기능을 설명드리기 위한 모든 예제의 내용들이 실제 실무에서도 그렇게 사용을 한다고 생각하시면 안된다는 말씀을 드리고 싶네요. 특정 기능을 설명드리기 위해 다른 단어를 쓴 것이라고 보시면 되고요. 그래야 앞으로의 강의를 들으면서도 오해를 줄일 수 있습니다.

그리고 추가적으로 이 템플릿은 하나의 pod 양식만 적을 있나요??

네, 현재 그렇습니다.

------

좋은 질문들 감사합니다^^

0

좋은 답변 감사합니다!

결론적으로 강의에서 설명해주신 예제는 설명을 위해를 적어두신거군요

항상 좋은 강의 감사합니다.