This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.18.11. 페더레이션 메시에서 서비스 내보내기
서비스를 내보내면 메시가 하나 이상의 서비스를 페더레이션 메시의 다른 멤버와 공유할 수 있습니다.
ExportedServiceSet
리소스를 사용하여 페더레이션 메시의 다른 피어에서 사용할 수 있도록 하는 메시에서 서비스를 선언합니다. 각 서비스를 피어와 공유할 각 서비스를 명시적으로 선언해야 합니다.
- 네임스페이스 또는 이름으로 서비스를 선택할 수 있습니다.
- 와일드카드를 사용하여 서비스를 선택할 수 있습니다. 예를 들어, 네임스페이스의 모든 서비스를 내보낼 수 있습니다.
-
별칭을 사용하여 서비스를 내보낼 수 있습니다. 예를 들어
foo/bar
서비스를custom-ns/bar
로 내보낼 수 있습니다. -
메시의 시스템 네임스페이스에 표시되는 서비스만 내보낼 수 있습니다. 예를 들어
networking.istio.io/exportTo
레이블이 '.'로 설정된 다른 네임스페이스에 있는 서비스는 내보내기 후보가 아닙니다. - 내보낸 서비스의 경우 대상 서비스는 원래 요청자가 아닌 수신 게이트웨이의 트래픽만 표시됩니다(즉, 다른 메시의 송신 게이트웨이 또는 요청을 생성한 워크로드의 클라이언트 ID가 표시되지 않음)
다음 예제는 red-mesh
가 green-mesh
으로 내보내려는 서비스에 대한 예입니다.
ExportServiceSet 리소스 예
매개변수 | 설명 | 값 |
---|---|---|
metadata: name:
| 이 서비스를 노출하는 ServiceMeshsandbox의 이름입니다. |
|
metadata: namespace:
| 이 리소스를 포함하는 프로젝트/네임스페이스의 이름( mesh의 시스템 네임스페이스)입니다. | |
spec: exportRules: - type:
| 이 서비스의 내보내기를 관리할 규칙 유형입니다. 서비스에 대해 발견된 첫 번째 일치 규칙이 내보내기에 사용됩니다. |
|
|
| |
|
서비스에 대한 별칭을 사용하는 | |
|
| |
|
서비스에 대한 별칭을 사용하는 |
빨간색-mesh의 모든 네임스페이스에서 blue-mesh로 이름이 "ratings"인 서비스를 내보냅니다.
west-data-center 네임스페이스에서 green-mesh로 모든 서비스를 내보냅니다.
1.18.11.1. ExportedServiceSet 생성 링크 복사링크가 클립보드에 복사되었습니다!
ExportedServiceSet
리소스를 생성하여 메시 피어에서 사용할 수 있는 서비스를 명시적으로 선언합니다.
서비스는 .svc.<ServiceMeshkubeconfig.name>-exports.local 로 내보내지 <export-name> <export-namespace>
고 대상 서비스로 자동 라우팅됩니다. 내보낸 서비스가 내보내기 메시에서 알려진 이름입니다. 수신 게이트웨이가 이 이름에 대한 요청을 수신하면 내보낼 실제 서비스로 라우팅됩니다. 예를 들어 ratings.red-mesh-bookinfo
라는 서비스가 ratings.bookinfo
.bookinfo 로서 green-mesh
-bookinfo로 내보내면 서비스는 이름 ratings.bookinfo.svc.green-mesh-exports.local
로 내보내며 호스트 이름에 대한 수신 게이트웨이가 ratings.red-mesh-bookinfo
서비스로 라우팅됩니다.
사전 요구 사항
-
메시 페더레이션을 위해 클러스터 및
ServiceMeshControlPlane
이 구성되어 있습니다. -
cluster-admin
역할이 있는 계정.
아직 존재하지 않더라도 내보내기에 대한 서비스를 구성할 수 있습니다. ExportedServiceSet에 지정된 값과 일치하는 서비스가 배포되면 자동으로 내보내집니다.
CLI의 절차
다음 절차에 따라 명령줄에서 ExportServiceSet
을 생성합니다.
cluster-admin
역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다. 다음 명령을 입력합니다. 메시지가 표시되면 사용자 이름과 암호를 입력합니다.oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
$ oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨트롤 플레인을 설치한 프로젝트로 변경합니다(예:
red-mesh-system
).oc project red-mesh-system
$ oc project red-mesh-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow red-mesh
가 서비스를green-mesh
로 내보내는 다음 예제를 기반으로ExportServiceSet
파일을 만듭니다.red-mesh에서 green-mesh로 ExportServiceSet 리소스 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 red-mesh-system 네임스페이스에
ExportServiceSet
리소스를 업로드하고 만듭니다.oc create -n <ControlPlaneNamespace> -f <ExportServiceSet.yaml>
$ oc create -n <ControlPlaneNamespace> -f <ExportServiceSet.yaml>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc create -n red-mesh-system -f export-to-green-mesh.yaml
$ oc create -n red-mesh-system -f export-to-green-mesh.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
페더레이션 메시의 각 메시 피어에 필요한 경우 추가
ExportServiceSets
를 생성합니다. red-mesh
에서 내보낸 서비스를 검증하고green-mesh
와 공유하려면 다음 명령을 실행합니다.oc get exportedserviceset <PeerMeshExportedTo> -o yaml
$ oc get exportedserviceset <PeerMeshExportedTo> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc get exportedserviceset green-mesh -o yaml
$ oc get exportedserviceset green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 red-mesh 내보내기가 green-mesh와 공유할 서비스의 유효성을 검사합니다.
oc get exportedserviceset <PeerMeshExportedTo> -o yaml
$ oc get exportedserviceset <PeerMeshExportedTo> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc -n red-mesh-system get exportedserviceset green-mesh -o yaml
$ oc -n red-mesh-system get exportedserviceset green-mesh -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 녹색 메시와 공유되는 빨간색 메시에서 내보낸 서비스의 유효성 확인 예.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow status.exportedServices
배열에는 현재 내보낸 서비스(ExportedServiceSet 오브젝트의 내보내기 규칙과 일치)
된 서비스가 나열됩니다. 배열의 각 항목은 내보낸 서비스의 이름과 내보낸 로컬 서비스에 대한 세부 정보를 나타냅니다.내보낼 서비스가 누락된 경우 서비스 오브젝트가 존재하는지, 이름 또는 레이블이
ExportedServiceSet
오브젝트에 정의된exportRules
와 일치하는지 확인하고 Service 개체의 네임스페이스가ServiceMeshMemberRoll
또는ServiceMeshMember
오브젝트를 사용하여 서비스 메시의 멤버로 구성되어 있는지 확인합니다.