• toc {:toc}

Pods

  • 팟들은 살아나고 죽고, desired state 3개를 요청했을 때 계속해서 교체될 수 있다.
  • 때문에 IP 주소를 사용하지 않는다.

Services

image

  • 외부에서 API를 통한 요청은 라벨을 통해 해당하는 팟을 선택하기 위해 서비스를 거친다.
  • 뒤에 있는 팟을 서비스가 선택해서 전달하고 자동적으로 load balancing을 진행한다.
  • 전달하는 기본 계획은 fair이다.
  • 뒤에 있는 팟에게 골고루 배포한다.
  • replica controller 2개 존재 버전1 2개, 버전2 1개

image

  • 버전2.0.0만 받도록 서비스에 지정하여 해당 v2 팟들만 지정받아 사용되는 것을 표현하고 있다.

  • IP를 사용하지 않고 라벨을 사용한 서비스를 통해 팟을 지정한다.

ClusterIP

  • 기본적인 쿠버네티스 서비스이다.
  • 통상 사용하지 않는 서비스이다.
  • 클러스터 안에서 유효한 IP서비스를 사용한다.
  • 사용하지 않는 이유는 같은 클러스터 안에서 frontend 서비스가 backend에 있는 죽고 생성될 때마다 변경되는 IP 주소를 사용할 필요가 없기 때문이다.
  • 클러스터 안에서만 사용하기 때문에 외부의 접근 권한은 없다.
  • 외부에서 접근하는 것이 아니다. 클러스터 내부에서 다른 팟들과 통신하기 위한 내부 IP 주소이다.

NodePort

image

  • 노드에게 할당된 포트이다.
  • 노드에 포트를 뚫어 외부와의 통신을 진행한다.
  • 외부에서 서비스로 요구가 들어오면 내부의 팟들에게 전달해준다.
  • 포트가 외부에서 들어오는 출입구인 것이다.
  • primitive way : 대부분의 쿠버네티스 클러스터에서 가용한 방법이다.
  • 구멍을 뚫었을 뿐이고 제어하는 역할은 없다.
  • 포트 번호가 30000-32767로 제한되어 있다.

LoadBalancer

image

  • 하나의 컴퓨터에서 동작하지 않는다. 복수의 컴퓨터가 있어야 한다.
  • 외부에서 데이터를 받아 클러스터 안쪽의 서비스로 전달해 클러스터 내부에 전달하는 형태
  • 외부 네트워크와 연결을 하기 위해 loadbalancer에게 하나의 IP 주소를 전달하여 내부에 있는 것은 숨겨주는 역할을 하고 데이터를 받아 전달하는 관문의 역할을 한다.

Ingress

image

  • 기술적으로 서비스에 속하지는 않는다.
  • 스마트 라우터로서의 역할을 한다.
  • 한 대의 컴퓨터에 여러 이름을 갖는 경우가 있다. 특정 도메인에 대한 서비스로 전달해준다.
  • 입구가 하나인데 입구를 알고 들어오는 상대방은 여러 도메인 중 하나로 생각하고 전달하는 것.
  • 즉, A로 생각하고 보내는 경우, B로 생각하고 보내는 경우 각각의 도메인의 서비스로 전달한다.