1.9. 서비스 메시에 서비스 추가
프로젝트에는 서비스가 포함되어 있지만 프로젝트를 서비스 메시에 추가하는 경우에만 서비스를 사용할 수 있습니다.
1.9.1. 서비스 메시에 프로젝트 추가 정보
Operator를 설치하고 ServiceMeshControlPlane
리소스를 생성한 후 서비스 메시에 하나 이상의 프로젝트를 추가합니다.
OpenShift Container Platform에서 프로젝트는 기본적으로 프로젝트에서 사용할 수 있는 사용자 ID 범위와 같은 추가 주석이 있는 Kubernetes 네임스페이스입니다. 일반적으로 OpenShift Container Platform 웹 콘솔은 프로젝트라는 용어를 사용하며 CLI는 네임스페이스라는 용어를 사용하지만, 용어는 기본적으로 중요합니다.
OpenShift Container Platform 웹 콘솔 또는 CLI를 사용하여 기존 서비스 메시에 프로젝트를 추가할 수 있습니다. 서비스 메시에 프로젝트를 추가하는 방법은 다음 세 가지가 있습니다.
-
ServiceMeshMemberRoll
리소스에서 프로젝트 이름을 지정합니다. -
ServiceMeshMemberRoll
리소스의spec.labelSelectors
필드에 레이블 선택기 구성. -
프로젝트에서
ServiceMeshMember
리소스 생성.
첫 번째 방법을 사용하는 경우 ServiceMeshMemberRoll
리소스를 생성해야 합니다.
1.9.2. Red Hat OpenShift Service Mesh 멤버 롤 생성
ServiceMeshMemberRoll
은 Service Mesh Control Plane에 속한 프로젝트를 나열합니다. ServiceMeshMemberRoll
에 나열된 프로젝트만 컨트롤 플레인의 영향을 받습니다. 특정 컨트롤 플레인 배포의 멤버 롤에 추가할 때까지 프로젝트는 서비스 메시에 속하지 않습니다.
ServiceMeshControlPlane
과 동일한 프로젝트에서 default
라는 ServiceMeshMemberRoll
리소스를 생성해야 합니다. (예: istio-system
)
1.9.2.1. 웹 콘솔에서 멤버 롤 생성
웹 콘솔에서 서비스 메시 멤버 롤에 하나 이상의 프로젝트를 추가할 수 있습니다. 이 예제에서 istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator 설치 및 검증.
- 서비스 메시에 추가할 기존 프로젝트 목록.
프로세스
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
메시에 대한 서비스가 아직 없거나 처음부터 시작하려는 경우 애플리케이션에 대한 프로젝트를 생성합니다. Service Mesh Control Plane을 설치한 프로젝트와 달라야 합니다.
-
홈
프로젝트로 이동합니다. - 이름 필드에 이름을 입력합니다.
- 생성을 클릭합니다.
-
홈
-
Operators
설치된 Operator로 이동합니다. -
프로젝트 메뉴를 클릭하고 목록에서
ServiceMeshControlPlane
리소스가 배포되는 프로젝트를 선택합니다(예:istio-system
). - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh 멤버 목록 탭을 클릭합니다.
- ServiceMeshMemberRoll 만들기를 클릭합니다.
-
Members를 클릭한 다음 Value 필드에 프로젝트 이름을 입력합니다. 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의
ServiceMeshMemberRoll
리소스에만 속할 수 있습니다. - 생성을 클릭합니다.
1.9.2.2. CLI에서 멤버 롤 생성
명령줄의 ServiceMeshMemberRoll
에 프로젝트를 추가할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator 설치 및 검증.
- 서비스 메시에 추가할 프로젝트 목록.
-
OpenShift CLI(
oc
)에 액세스합니다.
프로세스
OpenShift Container Platform CLI에 로그인합니다.
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
메시에 대한 서비스가 아직 없거나 처음부터 시작하려는 경우 애플리케이션에 대한 프로젝트를 생성합니다. Service Mesh Control Plane을 설치한 프로젝트와 달라야 합니다.
$ oc new-project <your-project>
프로젝트를 멤버로 추가하려면 다음 예제 YAML을 수정합니다. 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의
ServiceMeshMemberRoll
리소스에만 속할 수 있습니다. 이 예제에서istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.servicemeshmemberroll-default.yaml 예
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name
다음 명령을 실행하여
istio-system
네임스페이스에ServiceMeshMemberRoll
리소스를 업로드하고 만듭니다.$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
다음 명령을 실행하여
ServiceMeshMemberRoll
이 성공적으로 생성되었는지 확인합니다.$ oc get smmr -n istio-system default
STATUS
열이Configured
인 경우 설치가 성공적으로 완료된 것입니다.
1.9.3. ServiceMeshMemberRoll 리소스를 사용하여 프로젝트 추가 정보
ServiceMeshMemberRoll
리소스를 사용하는 것이 서비스 메시에 프로젝트를 추가하는 가장 간단한 방법입니다. 프로젝트를 추가하려면 ServiceMeshMemberRoll
리소스의 spec.members
필드에 프로젝트 이름을 지정합니다. ServiceMeshMemberRoll
리소스는 ServiceMeshControlPlane
리소스에서 제어하는 프로젝트를 지정합니다.
이 방법을 사용하여 프로젝트를 추가하려면 사용자가 추가되는 프로젝트에서 update servicemeshmemberrolls
및 update pod
권한을 보유해야 합니다.
서비스 메시에 추가할 애플리케이션, 워크로드 또는 서비스가 이미 있는 경우 다음을 참조하십시오.
-
웹 콘솔과
ServiceMeshMemberRoll
리소스를 사용하여 메시에서 프로젝트 추가 또는 제거 -
CLI와
ServiceMeshMemberRoll
리소스를 사용하여 메시에서 프로젝트 추가 또는 제거
-
웹 콘솔과
-
또는 Bookinfo라는 샘플 애플리케이션을 설치하고
ServiceMeshMemberRoll
리소스에 추가하려면 Bookinfo 예제 애플리케이션 튜토리얼을 참조하십시오.
1.9.3.1. 웹 콘솔과 ServiceMeshMemberRoll 리소스를 사용하여 메시에서 프로젝트 추가 또는 제거
OpenShift Container Platform 웹 콘솔과 ServiceMeshMemberRoll
리소스를 사용하여 메시에서 프로젝트를 추가하거나 제거할 수 있습니다. 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의 메시에만 속할 수 있습니다.
해당 ServiceMeshControlPlane
리소스가 삭제되면 ServiceMeshMemberRoll
리소스가 삭제됩니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator 설치 및 검증.
-
기존
ServiceMeshMemberRoll
리소스. -
ServiceMeshMemberRoll
리소스를 사용한 프로젝트의 이름입니다. - 메시에서 추가하거나 삭제하려는 프로젝트의 이름입니다.
프로세스
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Operators
설치된 Operator로 이동합니다. -
프로젝트 메뉴를 클릭하고 목록에서
ServiceMeshControlPlane
리소스가 배포된 프로젝트를 선택합니다. 예:istio-system
. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh 멤버 목록 탭을 클릭합니다.
-
default
링크를 클릭합니다. - YAML 탭을 클릭합니다.
YAML을 수정하여 프로젝트를 멤버로 추가합니다(또는 기존 멤버를 제거하기 위해 삭제). 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의
ServiceMeshMemberRoll
리소스에만 속할 수 있습니다.servicemeshmemberroll-default.yaml 예
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system #control plane project spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name
- 저장을 클릭합니다.
- 새로 고침을 클릭합니다.
1.9.3.2. CLI와 ServiceMeshMemberRoll 리소스를 사용하여 메시에서 프로젝트 추가 또는 제거
CLI와 함께 ServiceMeshMemberRoll
리소스를 사용하여 하나 이상의 프로젝트를 메시에 추가할 수 있습니다. 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의 메시에만 속할 수 있습니다.
해당 ServiceMeshControlPlane
리소스가 삭제되면 ServiceMeshMemberRoll
리소스가 삭제됩니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator 설치 및 검증.
-
기존
ServiceMeshMemberRoll
리소스. -
ServiceMeshMemberRoll
리소스를 사용한 프로젝트의 이름입니다. - 메시에서 추가하거나 삭제하려는 프로젝트의 이름입니다.
-
OpenShift CLI(
oc
)에 액세스합니다.
프로세스
- OpenShift Container Platform CLI에 로그인합니다.
ServiceMeshMemberRoll
리소스를 편집합니다.$ oc edit smmr -n <controlplane-namespace>
YAML을 수정하여 프로젝트를 멤버로 추가하거나 제거합니다. 여러 프로젝트를 추가할 수 있지만 프로젝트는 하나의
ServiceMeshMemberRoll
리소스에만 속할 수 있습니다.servicemeshmemberroll-default.yaml 예
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system #control plane project spec: members: # a list of projects joined into the service mesh - your-project-name - another-project-name
- 파일을 저장하고 편집기를 종료합니다.
1.9.4. ServiceMeshMember 리소스를 사용하여 프로젝트 추가 정보
ServiceMeshMember
리소스는 ServiceMeshMemberRoll
리소스를 수정하지 않고 서비스 메시에 프로젝트를 추가하는 방법을 제공합니다. 프로젝트를 추가하려면 서비스 메시에 추가할 프로젝트에서 ServiceMeshMember
리소스를 생성합니다. Service Mesh Operator가 ServiceMeshMember
오브젝트를 처리하면 프로젝트가 ServiceMeshMemberRoll
리소스의 status.members
목록에 표시됩니다. 그런 다음 프로젝트에 상주하는 서비스를 메시에서 사용할 수 있습니다.
메시 관리자는 ServiceMeshMember
리소스의 ServiceMeshControlPlane
리소스를 참조할 수 있는 각 메시 사용자 권한을 부여해야 합니다. 이 권한을 사용하면 해당 사용자에게 서비스 메시 프로젝트 또는 ServiceMeshMemberRoll
리소스에 대한 직접 액세스 권한이 없는 경우에도 메시에 프로젝트를 추가할 수 있습니다. 자세한 내용은 Red Hat OpenShift Service Mesh 멤버 생성을 참조하십시오.
1.9.4.1. 웹 콘솔과 ServiceMeshMember 리소스를 사용하여 메시에 프로젝트 추가
ServiceMeshMember
리소스를 OpenShift Container Platform 웹 콘솔과 함께 사용하여 메시에 하나 이상의 프로젝트를 추가할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator가 설치되어 있습니다.
-
ServiceMeshControlPlane
리소스의 이름과 리소스가 속하는 프로젝트의 이름을 알고 있습니다. - 메시에 추가할 프로젝트의 이름을 알고 있습니다.
-
서비스 메시 관리자는 서비스 메시에 대한 액세스 권한을 명시적으로 부여해야 합니다. 관리자는
RoleBinding
또는ClusterRoleBinding
을 사용하여mesh-user
Role
에 할당하여 메시에 액세스할 수 있는 권한을 사용자에게 부여할 수 있습니다. 자세한 내용은 Red Hat OpenShift Service Mesh 멤버 생성을 참조하십시오.
프로세스
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Operators
설치된 Operator로 이동합니다. -
프로젝트 메뉴를 클릭하고 드롭다운 목록에서 메시에 추가할 프로젝트를 선택합니다. 예를 들면
istio-system
입니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh 멤버 탭을 클릭합니다.
- ServiceMeshMember 만들기를 클릭합니다.
-
ServiceMeshMember
의 기본 이름을 수락합니다. - ControlPlaneRef 를 확장하려면 클릭합니다.
-
네임스페이스 필드에서
ServiceMeshControlPlane
리소스가 속하는 프로젝트를 선택합니다. 예를 들면istio-system
입니다. -
이름 필드에 이 네임스페이스가 속한
ServiceMeshControlPlane
리소스의 이름을 입력합니다. 예:basic
. - 생성을 클릭합니다.
-
ServiceMeshMember
리소스가 생성되고 프로젝트가 메시에 추가되었는지 확인합니다. 리소스 이름을 클릭합니다(예:기본값
). 화면 끝에 표시된 Conditions 섹션을 확인합니다.Reconciled
및Ready
조건의상태가
True
인지 확인합니다.Status
가False
인 경우 자세한 내용은Reason
및Message
열을 참조하십시오.
1.9.4.2. CLI와 ServiceMeshMember 리소스를 사용하여 메시에 프로젝트 추가
CLI와 함께 ServiceMeshMember
리소스를 사용하여 메시에 하나 이상의 프로젝트를 추가할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator가 설치되어 있습니다.
-
ServiceMeshControlPlane
리소스의 이름과 해당 리소스의 이름을 알고 있습니다. - 메시에 추가할 프로젝트의 이름을 알고 있습니다.
-
서비스 메시 관리자는 서비스 메시에 대한 액세스 권한을 명시적으로 부여해야 합니다. 관리자는
RoleBinding
또는ClusterRoleBinding
을 사용하여mesh-user
Role
에 할당하여 메시에 액세스할 수 있는 권한을 사용자에게 부여할 수 있습니다. 자세한 내용은 Red Hat OpenShift Service Mesh 멤버 생성을 참조하십시오.
프로세스
- OpenShift Container Platform CLI에 로그인합니다.
ServiceMeshMember
매니페스트에 대한 YAML 파일을 생성합니다. 매니페스트는istio-system
네임스페이스에 배포된ServiceMeshControlPlane
리소스에서 생성한 서비스 메시에my-application
프로젝트를 추가합니다.apiVersion: maistra.io/v1 kind: ServiceMeshMember metadata: name: default namespace: my-application spec: controlPlaneRef: namespace: istio-system name: basic
YAML 파일을 적용하여
ServiceMeshMember
리소스를 생성합니다.$ oc apply -f <file-name>
ServiceMeshMember
리소스를 생성한 후 네임스페이스가 메시의 일부인지 확인합니다. 다음 명령을 실행할 때 값True
가READY
열에 표시되는지 확인합니다.$ oc get smm default -n my-application
또는
ServiceMeshMemberRoll
리소스에 액세스할 수 있는 경우,ServiceMeshMemberRoll
리소스의status.members
및status.configuredMembers
필드에my-application
네임스페이스가 표시되는지 확인할 수도 있습니다.
1.9.5. 라벨 선택기를 사용하여 프로젝트 추가 정보
클러스터 전체 배포의 경우 라벨 선택기를 사용하여 메시에 프로젝트를 추가할 수 있습니다. ServiceMeshMemberRoll
리소스에 지정된 라벨 선택기를 사용하면 Service Mesh Operator에서 네임스페이스를 네임스페이스 레이블을 기반으로 또는 메시에 추가하거나 제거할 수 있습니다. 단일 라벨 선택기를 지정하는 데 사용할 수 있는 다른 표준 OpenShift Container Platform 리소스와 달리 ServiceMeshMemberRoll
리소스를 사용하여 여러 라벨 선택기를 지정할 수 있습니다.
네임스페이스의 라벨이 ServiceMeshMemberRoll
리소스에 지정된 선택기와 일치하는 경우 해당 네임스페이스가 메시에 포함됩니다.
OpenShift Container Platform에서 프로젝트는 기본적으로 프로젝트에서 사용할 수 있는 사용자 ID 범위와 같은 추가 주석이 있는 Kubernetes 네임스페이스입니다. 일반적으로 OpenShift Container Platform 웹 콘솔은 프로젝트 라는 용어를 사용하고 CLI는 네임스페이스 를 사용하지만 용어는 본질적으로 무관합니다.
1.9.5.1. 웹 콘솔의 라벨 선택기를 사용하여 메시에 프로젝트 추가
레이블 선택기를 사용하여 OpenShift Container Platform 웹 콘솔을 사용하여 서비스 메시에 프로젝트를 추가할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator가 설치되어 있습니다.
-
배포에 기존
ServiceMeshMemberRoll
리소스가 있습니다. -
cluster-admin
역할의 사용자로 로그인되어 있습니다. Red Hat OpenShift Dedicated를 사용하는 경우dedicated-admin
역할의 사용자로 로그인되어 있습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Operators
설치된 Operator로 이동합니다. -
프로젝트 메뉴를 클릭하고 드롭다운 목록에서
ServiceMeshMemberRoll
리소스가 배포된 프로젝트를 선택합니다. 예: istio-system. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
- Istio Service Mesh 멤버 목록 탭을 클릭합니다.
- ServiceMeshMember Roll 을 클릭합니다.
-
ServiceMeshMemberRoll
의 기본 이름을 수락합니다. 라벨 필드에 키-값 쌍을 입력하여 서비스 메시에 포함할 네임스페이스를 식별하는 레이블을 정의합니다. 프로젝트 네임스페이스에 선택기에 의해 지정된 라벨이 있는 경우 프로젝트 네임스페이스가 서비스 메시에 포함됩니다. 두 레이블을 모두 포함할 필요는 없습니다.
예를 들어
mykey=myvalue
를 입력하면 메시의 일부로 이 라벨이 있는 모든 네임스페이스가 포함됩니다. 선택기가 일치하는 항목을 식별하면 프로젝트 네임스페이스가 서비스 메시에 추가됩니다.myotherkey=myothervalue
를 입력하면 메시의 일부로 이 라벨이 있는 모든 네임스페이스가 포함됩니다. 선택기가 일치하는 항목을 식별하면 프로젝트 네임스페이스가 서비스 메시에 추가됩니다.- 생성을 클릭합니다.
1.9.5.2. CLI의 라벨 선택기를 사용하여 메시에 프로젝트 추가
레이블 선택기를 사용하여 CLI를 사용하여 서비스 메시에 프로젝트를 추가할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh Operator가 설치되어 있습니다.
-
배포에 기존
ServiceMeshMemberRoll
리소스가 있습니다. -
cluster-admin
역할의 사용자로 로그인되어 있습니다. Red Hat OpenShift Dedicated를 사용하는 경우dedicated-admin
역할의 사용자로 로그인되어 있습니다.
절차
- OpenShift Container Platform CLI에 로그인합니다.
ServiceMeshMemberRoll
리소스를 편집합니다.$ oc edit smmr -n <controlplane_project>
이전 예제에서는 <
controlplane_project>
;를 예로 사용합니다. 서비스가 포함된 프로젝트와 별도로 Service Mesh Control Plane을 모든 프로젝트에 배포할 수 있습니다.ServiceMeshMemberRoll
리소스의spec.memberSelectors
필드에 네임스페이스 레이블 선택기를 포함하도록 YAML 파일을 수정합니다.참고matchLabels
필드를 사용하는 대신 선택기에서matchExpressions
필드를 사용할 수도 있습니다.apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: memberSelectors: 1 - matchLabels: 2 mykey: myvalue 3 - matchLabels: 4 myotherkey: myothervalue 5
- 1
- 서비스 메시에 포함된 프로젝트 네임스페이스를 식별하는 데 사용되는 라벨 선택기가 포함되어 있습니다. 프로젝트 네임스페이스에 선택기에 의해 지정된 라벨이 있는 경우 프로젝트 네임스페이스가 서비스 메시에 포함됩니다. 프로젝트 네임스페이스는 두 레이블을 모두 포함할 필요가 없습니다.
- 2 3
mykey=myvalue
레이블이 있는 모든 네임스페이스를 지정합니다. 선택기가 일치하는 항목을 식별하면 프로젝트 네임스페이스가 서비스 메시에 추가됩니다.- 4 5
myotherkey=myothervalue
레이블이 있는 모든 네임스페이스를 지정합니다. 선택기가 일치하는 항목을 식별하면 프로젝트 네임스페이스가 서비스 메시에 추가됩니다.
1.9.6. Bookinfo 예제 애플리케이션
Bookinfo 예제 애플리케이션에서는 OpenShift Container Platform에서 Red Hat OpenShift Service Mesh 2.4.4 설치를 테스트할 수 있습니다.
Bookinfo 애플리케이션은 온라인 서점의 단일 카탈로그 항목과 유사하게 한 권의 책에 대한 정보를 표시합니다. 애플리케이션은 도서 설명, 도서 세부 정보(ISBN, 페이지 수, 기타 정보), 도서 리뷰가 설명된 페이지를 표시합니다.
Bookinfo 애플리케이션은 이러한 마이크로 서비스로 구성됩니다.
-
productpage
마이크로 서비스는details
및reviews
마이크로 서비스를 호출하여 페이지를 채웁니다. -
details
마이크로 서비스에는 도서 정보가 포함되어 있습니다. -
reviews
마이크로 서비스에는 도서 리뷰가 포함되어 있습니다. 이를ratings
마이크로 서비스라고도 합니다. -
ratings
마이크로 서비스에는 도서 리뷰와 함께 제공되는 도서 순위 정보가 포함되어 있습니다.
리뷰 마이크로 서비스의 세 가지 버전이 있습니다.
-
버전 v1에서는
ratings
서비스를 호출하지 않습니다. -
버전 v2는
ratings
서비스를 호출하고 각 평가를 1~5개의 검정별로 표시합니다. -
버전 v3은
ratings
서비스를 호출하고 각 평가를 1~5개의 빨강별로 표시합니다.
1.9.6.1. Bookinfo 애플리케이션 설치
이 튜토리얼에서는 프로젝트를 생성하고, Bookinfo 애플리케이션을 해당 프로젝트에 배포하고, 서비스 메시에서 실행 중인 애플리케이션을 확인하여 샘플 애플리케이션을 생성하는 방법을 안내합니다.
사전 요구 사항
- OpenShift Container Platform 4.1 이상이 설치되었습니다.
- Red Hat OpenShift Service Mesh 2.4.4가 설치되었습니다.
-
OpenShift CLI(
oc
)에 액세스합니다. -
cluster-admin
역할이 있는 계정.
Bookinfo 샘플 애플리케이션은 IBM Z 및 IBM Power Systems에 설치할 수 없습니다.
이 섹션의 명령은 Service Mesh Control Plane 프로젝트가 istio-system
이라고 가정합니다. 컨트롤 플레인을 다른 네임스페이스에 설치한 경우 실행하기 전에 각 명령을 편집합니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에 cluster-admin 권한이 있는 사용자로 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우
dedicated-admin
역할의 계정이 있어야 합니다. -
홈
프로젝트를 클릭합니다. - 프로젝트 만들기를 클릭합니다.
Project Name 으로
info
를 입력하고 Display Name 을 입력하고 Description 을 입력한 다음 Create 를 클릭합니다.또는 CLI에서 이 명령을 실행하여
info
프로젝트를 생성할 수도 있습니다.$ oc new-project info
-
Operators
설치된 Operators를 클릭합니다. -
프로젝트 메뉴를 클릭하고 Service Mesh Control Plane 네임스페이스를 사용합니다. 이 예제에서는
istio-system
을 사용합니다. - Red Hat OpenShift Service Mesh Operator를 클릭합니다.
Istio Service Mesh 멤버 목록 탭을 클릭합니다.
- 이미 Istio Service Mesh 멤버 롤을 생성한 경우, 이름을 클릭한 다음 YAML 탭을 클릭하여 YAML 편집기를 엽니다.
-
ServiceMeshMemberRoll
을 생성하지 않은 경우 ServiceMeshMemberRoll 생성을 클릭합니다.
- Members를 클릭한 다음 Value 필드에 프로젝트 이름을 입력합니다.
생성을 클릭하여 업데이트된 서비스 메시 멤버 롤을 저장합니다.
또는 다음 예제를 YAML 파일에 저장합니다.
Bookinfo ServiceMeshMemberRoll example servicemeshmemberroll-default.yaml
apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default spec: members: - info
다음 명령을 실행하여 해당 파일을 업로드하고
istio-system
네임스페이스에ServiceMeshMemberRoll
리소스를 만듭니다. 이 예제에서istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
다음 명령을 실행하여
ServiceMeshMemberRoll
이 성공적으로 생성되었는지 확인합니다.$ oc get smmr -n istio-system -o wide
STATUS
열이Configured
인 경우 설치가 성공적으로 완료된 것입니다.NAME READY STATUS AGE MEMBERS default 1/1 Configured 70s ["info"]
CLI에서
bookinfo.yaml
파일을 적용하여 'info' 프로젝트에 Bookinfo 애플리케이션을 배포합니다.$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/platform/kube/bookinfo.yaml
출력은 다음과 유사합니다.
service/details created serviceaccount/info-details created deployment.apps/details-v1 created service/ratings created serviceaccount/info-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/info-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/info-productpage created deployment.apps/productpage-v1 created
info-gateway.yaml
파일을 적용하여 수신 게이트웨이를 생성합니다.$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/bookinfo-gateway.yaml
출력은 다음과 유사합니다.
gateway.networking.istio.io/info-gateway created virtualservice.networking.istio.io/info created
GATEWAY_URL
매개변수 값을 설정합니다.$ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')
1.9.6.2. 기본 대상 규칙 추가
Bookinfo 애플리케이션을 사용하기 전에 먼저 기본 대상 규칙을 추가해야 합니다. 상호 TLS(Transport layer security) 인증을 활성화했는지 여부에 따라 사전 구성된 YAML 파일이 두 개 있습니다.
프로세스
대상 규칙을 추가하려면 다음 명령 중 하나를 실행합니다.
상호 TLS를 활성화하지 않은 경우:
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/destination-rule-all.yaml
상호 TLS를 활성화한 경우:
$ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.4/samples/bookinfo/networking/destination-rule-all-mtls.yaml
출력은 다음과 유사합니다.
destinationrule.networking.istio.io/productpage created destinationrule.networking.istio.io/reviews created destinationrule.networking.istio.io/ratings created destinationrule.networking.istio.io/details created
1.9.6.3. Bookinfo 설치 확인
샘플 Bookinfo 애플리케이션이 성공적으로 배포되었는지 확인하려면 다음 단계를 수행합니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh가 설치되어 있어야 합니다.
- Bookinfo 샘플 애플리케이션을 설치하는 단계를 완료합니다.
CLI의 프로시저
- OpenShift Container Platform CLI에 로그인합니다.
다음 명령으로 모든 pod가 준비되었는지 확인합니다.
$ oc get pods -n info
모든 pod의 상태는
Running
이어야 합니다. 출력은 다음과 유사합니다.NAME READY STATUS RESTARTS AGE details-v1-55b869668-jh7hb 2/2 Running 0 12m productpage-v1-6fc77ff794-nsl8r 2/2 Running 0 12m ratings-v1-7d7d8d8b56-55scn 2/2 Running 0 12m reviews-v1-868597db96-bdxgq 2/2 Running 0 12m reviews-v2-5b64f47978-cvssp 2/2 Running 0 12m reviews-v3-6dfd49b55b-vcwpf 2/2 Running 0 12m
다음 명령을 실행하여 제품 페이지의 URL을 검색합니다.
echo "http://$GATEWAY_URL/productpage"
- 웹 브라우저에 출력을 복사하여 붙여넣어 Bookinfo 제품 페이지가 배포되었는지 확인합니다.
Kiali 웹 콘솔의 절차
Kiali 웹 콘솔의 주소를 가져옵니다.
-
OpenShift Container Platform 웹 콘솔에
cluster-admin
권한이 있는 사용자로 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우dedicated-admin
역할의 계정이 있어야 합니다. -
네트워킹
경로로 이동합니다. 경로 페이지의 네임스페이스 메뉴에서 Service Mesh Control Plane 프로젝트(예:
istio-system
)를 선택합니다.위치 열은 각 경로에 대한 연결된 주소를 표시합니다.
- Kiali의 위치 열에서 링크를 클릭합니다.
- OpenShift로 로그인 을 클릭합니다. Kiali 개요 화면에 각 프로젝트 네임스페이스에 대한 타일이 표시됩니다.
-
OpenShift Container Platform 웹 콘솔에
- Kiali에서 그래프 를 클릭합니다.
- 네임스페이스 목록에서 info를 선택하고 그래프 유형 목록에서 앱 그래프 를 선택합니다.
디스플레이 메뉴에서 유휴 노드 표시를 클릭합니다.
이렇게 하면 정의되었지만 요청 수신 또는 전송되지 않은 노드가 표시됩니다. 애플리케이션이 올바르게 정의되었지만 요청 트래픽이 보고되지 않았는지 확인할 수 있습니다.
- Duration 메뉴를 사용하여 오래된 트래픽이 캡처되도록 기간을 늘립니다.
- Refresh Rate 메뉴를 사용하여 트래픽을 더 자주 새로 고치거나 전혀 새로 고침하지 않습니다.
- 서비스,워크로드 또는 Istio Config 를 클릭하여 정보 구성 요소의 목록 보기를 확인하고 정상인지 확인합니다.
1.9.6.4. Bookinfo 애플리케이션 제거
다음 단계에 따라 Bookinfo 애플리케이션을 제거하십시오.
사전 요구 사항
- OpenShift Container Platform 4.1 이상이 설치되었습니다.
- Red Hat OpenShift Service Mesh 2.4.4가 설치되었습니다.
-
OpenShift CLI(
oc
)에 액세스합니다.
1.9.6.4.1. Bookinfo 프로젝트 삭제
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
홈
프로젝트를 클릭합니다. -
정보
메뉴 를 클릭한 다음 프로젝트 삭제 를 클릭합니다. 확인 대화 상자에
info
를 입력한 다음 삭제 를 클릭합니다.또는 CLI를 사용하여 이 명령을 실행하여
info
프로젝트를 생성할 수도 있습니다.$ oc delete project info
1.9.6.4.2. 서비스 메시 멤버 롤에서 Bookinfo 프로젝트를 제거
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
Operators
설치된 Operators를 클릭합니다. -
프로젝트 메뉴를 클릭하고 목록에서
istio-system
을 선택합니다. - Red Hat OpenShift Service Mesh Operator에 대해 제공된 APIS에서 Istio Service Mesh 멤버 롤 링크를 클릭합니다.
-
ServiceMeshMemberRoll
메뉴 를 클릭하고 서비스 메시 멤버 롤 편집 을 선택합니다. 기본 서비스 메시 멤버 롤 YAML을 편집하고 멤버 목록에서
정보를
제거합니다.또는 CLI를 사용하여 이 명령을 실행하여
ServiceMeshMemberRoll
에서info
프로젝트를 제거할 수 있습니다. 이 예제에서istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.$ oc -n istio-system patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"info"'"]}]'
- 저장을 클릭하여 서비스 메시 멤버 롤을 업데이트합니다.
1.9.7. 다음 단계
- 설치 프로세스를 계속 진행하려면 사이드카 삽입을 활성화해야 합니다.