가상 서비스는 여러 개의 마이크로서비스를 하나의 가상 서비스로 노출시키는 역할을 합니다. 즉, 클라이언트가 실제로는 여러 개의 마이크로서비스를 호출하더라도 가상 서비스를 호출하게 됩니다. 이를 통해 클라이언트는 마치 하나의 서비스를 호출하는 것처럼 투명하게 사용할 수 있습니다.
가상 서비스는 라우팅 규칙을 정의하여 마이크로서비스 간의 통신을 제어하며, 예를 들어 특정 HTTP 요청 경로를 처리하는 서비스를 선택하거나, 트래픽 분산을 구성할 수 있습니다.
대상 규칙은 트래픽을 처리하는 대상 서비스의 동작을 정의하는 Kubernetes 리소스 유형입니다. 대상 규칙은 라우팅이 끝났을 때 작동되며 로드 밸런싱, 연결 풀 크기 등과 같은 기본 구성을 다룹니다.
서비스 엔트리는 자동 검색된 서비스가 수동으로 정의된 서비스에 액세스할 수 있도록 Istio 서비스 레지스트리에 추가합니다. 여기에는 서비스의 주소, 프로토콜, 포트 등과 같은 기본 세부 사항이 포함됩니다. 서비스 엔트리는 서비스 메시 내에서 외부 서비스를 호출을 하고자 할 때 유용합니다.
게이트웨이는 서비스 메시의 입구에서 특정 포트로 외부 연결을 수신한 다음 메시 내부에 트래픽을 분산시키는 일종의 라우터 또는 로드 밸런서의 역할을 수행합니다.
Envoy는 서비스 메시에서 프록시로 사용되는 매우 유연하고 확장 가능한 프락시 입니다. Envoy는 Envoy Filter를 통해 필터링 기능을 추가하거나 수정할 수 있습니다. 필터에는 HTTP, TCP, gRPC 트래픽에 대한 보안, 로깅, 추적, 라우팅, 변환 등의 네트워크 기능을 구현할 수 있습니다.
정책은 서비스에 대한 보안, 접근 제어 등의 규칙을 정의하는 데 사용됩니다.