ft_services - Kubernetes Object

cheesecookie·2021년 4월 16일
0

ft_services

목록 보기
1/4
post-thumbnail

쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화 해주는 오픈소스 플랫폼입니다.
쿠버네티스는 상태를 관리하기 위한 대상을 오브젝트로 정의합니다.

Kubernetes Object

Pod

쿠버네티스에서 배포할 수 있는 가장 작은 단위로 한 개 이상의 컨테이너와 스토리지, 네트워크 속성을 가집니다. Pod에 속한 컨테이너는 스토리지와 네트워크를 공유하고 서로 localhost로 접근할 수 있습니다. 컨테이너를 하나만 사용하는 경우도 반드시 Pod로 감싸서 관리합니다.

ReplicaSet

Pod을 한 개 이상 관리합니다. Pod를 생성하고 개수를 유지하려면 반드시 ReplicaSet을 사용해야 합니다. (현재 pod의 개수가 replicas에 설정된 값보다 적으면 pod을 더 생성하고 pod이 너무 많으면 pod을 삭제한다.) ReplicaSet은 복제할 개수, 개수를 체크할 라벨 선택자, 생성할 Pod의 설정값(템플릿)들을 가지고 있습니다. 직접적으로 ReplicaSet을 사용하기보다는 Deployment등 다른 오브젝트에 의해서 사용되는 경우가 많습니다.

Deployment

레플리카셋과 pod의 정보를 정의하는 디플로이먼트(Deployment)라는 이름의 오브젝트를 YAML파일에 정의해 사용합니다. 디플로이먼트를 생성하면 해당 디플로이먼트에 대응하는 레플리카셋도 함께 생성됩니다.

사용이유 : 애플리케이션의 업데이트와 배포를 편하게 하려고

  • 애플리케이션을 업데이트 할 때 레플리카셋의 변경 사항을 저장하는 리비전을 남겨 롤백을 가능하게 해준다.
  • 무중단 서비스를 위해 pod의 롤링 업데이트의 전략을 지정할 수 있다.
    (롤링 업데이트 : pod 인스턴스를 일정 부분씩 점진적으로 업데이트하여 서비스 중단 없이 업데이트가 이루어질 수 있도록 해준다.)

Service

Pod를 외부 네트워크와 연결해주고 여러 개의 Pod를 바라보는 내부 로드 밸런서를 생성할 때 사용합니다. 내부 DNS에 서비스 이름을 도메인으로 등록하기 때문에 서비스 디스커버리 역할도 합니다.

  • 어러개의 pod에 쉽게 접근할 수 있도록 고유한 도메인 이름을 부여한다.
  • 여러 개의 파드에 접근할 때, 요청을 분산하는 로드 밸런서 기능을 수행한다.
  • 클라우드 플랫폼의 로드 밸런서, 클러스터 노드의 포트 등을 통해 포드를 위부로 노출한다.

출처

0개의 댓글