지리적으로 분산되어 있는 여러 VMware Cloud Director 설치 또는 서버 그룹과 해당 조직을 단일 엔티티로 관리하고 모니터링하기 위해, VMware Cloud Director 다중 사이트 기능을 사용할 수 있습니다.
다중 사이트의 효과적인 구현
두 VMware Cloud Director 사이트를 연결하는 경우 해당 사이트를 단일 엔티티로 관리할 수 있도록 설정합니다. 또한 해당 사이트의 조직이 서로 간에 연결을 구성하도록 설정합니다. VMware Cloud Director에서 사이트 연결 생성의 내용을 참조하십시오. 조직이 연결의 구성원일 때 조직 사용자는 각 구성원 조직과 해당 자산이 조직에서 사용하는 사이트에 대해 로컬인 경우에도 VMware Cloud Director Tenant Portal을 사용하여 모든 구성원 사이트의 조직 자산에 액세스할 수 있습니다.
사이트는 동일한 VMware Cloud Director API 버전이거나 주 버전이 하나 떨어져 있어야 합니다. 예를 들어 VMware Cloud Director 10.1(API 버전 34.0) 사이트를 VMware Cloud Director 사이트 버전 10.0, 10.1, 10.2 또는 10.2.2(각각의 API 버전 33.0, 34.0, 35.0 또는 35.2)와 연결할 수 있습니다.
두 사이트를 연결한 후 VMware Cloud Director API 또는 VMware Cloud Director Tenant Portal을 사용하여 해당 사이트에 위치한 조직을 연결할 수 있습니다. "VMware Cloud Director API 프로그래밍 가이드" 또는 "VMware Cloud Director 테넌트 가이드" 의 다중 사이트 배포 구성 및 관리 항목을 참조하십시오.
사이트 또는 조직은 피어와 무제한 연결을 구성할 수 있지만 각 연결에는 정확히 두 개의 멤버가 포함됩니다. 각 사이트 또는 조직에는 고유한 개인 키가 있어야 합니다. 연결 구성원은 한 구성원에서 다른 구성원 간에 서명된 요청을 확인하는 데 사용되는 공용 키를 교환하여 신뢰 관계를 설정합니다.
연결의 각 사이트는 VMware Cloud Director 서버 그룹(VMware Cloud Director 데이터베이스를 공유하는 서버 그룹)의 범위로 정의됩니다. 연결의 각 조직은 단일 사이트를 사용합니다. 조직 관리자는 조직 사용자 및 그룹의 각 멤버 사이트의 자산에 대한 액세스를 제어합니다.
사이트 개체 및 사이트 연결
설치 또는 업그레이드 프로세스는 로컬 VMware Cloud Director 서버 그룹을 나타내는 Site 개체를 생성합니다. 두 개 이상의 VMware Cloud Director 서버 그룹으로 확장되는 인증이 있는 시스템 관리자는 이러한 서버 그룹을 VMware Cloud Director 사이트의 연결로 구성할 수 있습니다.
사이트 이름
GET https://Site-B.example.com/api/site ... <Site name="b5920690-fe13-4c31-8e23-9e86005e7a7b" ...> ... <RestEndpoint>https://Site-A.example.com/api/org/Org-A</RestEndpoint> <RestEndpointCertificate>-----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgI...Ix0eSE= -----END CERTIFICATE----- </RestEndpointCertificate> ... </Site>사이트 이름이 API 끝점의 호스트 이름과 일치할 필요는 없지만 시스템 관리자는 요청된 경우 VMware Cloud Director API 사용자 관리의 편의를 위해 사이트 이름을 다음과 같이 업데이트할 수 있습니다.
PUT https://Site-B.example.com/api/site content-type: application/vnd.vmware.vcloud.site+xml ... <Site name="Site-B" ...> ... <RestEndpoint>https://Site-A.example.com/api/org/Org-A</RestEndpoint> <RestEndpointCertificate>-----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgI...Ix0eSE= -----END CERTIFICATE----- </RestEndpointCertificate> ... </Site>요청 본문에서 Site 요소는
GET .../site
요청으로 반환된 형식을 유지해야 합니다. 인증서 앞뒤로 추가 문자, 특히 캐리지 리턴, 줄 바꿈 또는 공백이 있는 경우 시스템에서 잘못된 요청 예외가 반환될 수 있습니다.
조직의 연결
인증 헤더 및 요청 팬아웃
성공적인 로그인 요청에 대한 Session 응답에는 연결 구성원에 대해 사용자를 인증하지 않는 x-vcloud-authorization 헤더(더 이상 사용되지 않음)를 대신하여, X-VMWARE-VCLOUD-ACCESS-TOKEN 헤더(해당 값은 사용자가 사용할 수 있는 인코딩된 키임) 및 X-VMWARE-VCLOUD-TOKEN-TYPE 헤더의 값이 포함되어 이후 요청에 포함되는 JWT Authorization 헤더를 구성합니다. VMware Cloud Director API 로그인에 대한 자세한 내용은 VMware Cloud Director API 세션 만들기를 참조하십시오.
Accept 헤더에 multisite=value 쌍을 지정하여 여러 연결 구성원에 대한 팬아웃을 요청할 수 있습니다. 요청이 팬아웃되도록 하려면 value는 global 또는 콜론으로 구분된 위치 ID 목록일 수 있습니다. 위치 ID 가져오기에 대한 자세한 내용은 인증된 위치 항목을 참조하십시오. value를 local로 설정하면 요청이 팬아웃되지는 않지만 팬 아웃에 포함된 다중 사이트 메타데이터가 포함됩니다.
Accept: application/*;version=30.0;multisite=global
콜론으로 구분된 위치 ID 목록(예: multisite=ID-a:ID-b:ID-x)을 지정할 수 있습니다. Accept 헤더에 이 값을 포함하지 않으면 요청은 요청의 대상인 조직이 소유한 리소스만 반환합니다. 사용자가 인증한 동일한 조직에 대해 요청을 수행하는 경우가 아니면 사용자의 요청을 수행할 조직의 이름을 지정하는 X-VMWARE-VCLOUD-AUTH-CONTEXT 헤더도 포함해야 합니다.
인증된 위치
- Site-A.example.com과 Site-B.example.com이 연결됩니다.
- 사용자가 Site-A에 시스템 관리자로 로그인합니다.
POST https://Site-A.example.com/api/sessions Authorization: Basic ... Accept: application/*;version=30.0 ...
200 OK ... X-VMWARE-VCLOUD-ACCESS-TOKEN: eyJhbGciOiJSUzI1NiJ9....Rn4Xw X-VMWARE-VCLOUD-TOKEN-TYPE: Bearer Content-Type: application/vnd.vmware.vcloud.session+xml;version=30.0;multisite=global ... <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Session ... ... <AuthorizedLocations> <Location> <LocationId>a93c9db9-7471-3192-8d09-a8f7eeda85f9@9a41... </LocationId> <SiteName>Site-A</SiteName> <OrgName>System</OrgName> <RestApiEndpoint>https://site-a.example.com </RestApiEndpoint> <UIEndpoint>https://site-a.example.com </UIEndpoint> <AuthContext>System</AuthContext> </Location> <Location> <LocationId>a93c9db9-7471-3192-8d09-a8f7eeda85f9@4f56... </LocationId> <SiteName>Site-B</SiteName> <OrgName>System</OrgName> <RestApiEndpoint>https://site-b.example.com </RestApiEndpoint> <UIEndpoint>https://site-b.example.com </UIEndpoint> <AuthContext>System</AuthContext> </Location> </AuthorizedLocations> </Session>
사용자 및 그룹 ID
사이트 및 조직이 연결되려면 동일한 IDP(ID 제공자)를 사용하는 데 동의해야 합니다. 연결의 모든 조직에 대한 사용자 및 그룹 ID는 이 IDP를 통해 관리되어야 합니다.
연결에서는 자신에 가장 적합한 IDP를 자유롭게 선택할 수 있습니다. VMware Cloud Director에서 ID 제공자 관리의 내용을 참조하십시오.
VMware Cloud Director 10.4.1부터 서비스 계정은 다중 사이트 기능을 사용하여 지리적으로 분산된 여러 VMware Cloud Director 설치 또는 서버 그룹과 해당 조직을 단일 엔티티로 관리하고 모니터링할 수 있습니다. 서비스 계정이 인증된 조직이 아닌 다른 조직에 요청을 수행하는 경우에는 연결된 조직에 서비스 계정이 존재하고 이름과 소프트웨어 ID가 동일한지 확인합니다. VMware Cloud Director에서 서비스 계정 관리의 내용을 참조하십시오.
조직 사용자 및 그룹에 대한 사이트 액세스 제어
조직 관리자는 모든 멤버 사이트에서 유효하거나 멤버 사이트의 하위 집합에서만 유효한 사용자 또는 그룹 액세스 토큰을 생성하도록 IDP를 구성할 수 있습니다. 사용자 및 그룹 ID는 모든 멤버 조직에서 동일해야 하지만 사용자 및 그룹 권한은 각 멤버 조직에서 해당 사용자와 그룹에 할당된 역할로 제한됩니다. 사용자 또는 그룹에 할당된 역할은 멤버 조직에만 로컬로 적용되며, 생성하는 모든 사용자 지정 역할도 마찬가지입니다.
로드 밸런서 요구 사항
다중 사이트 배포를 효과적으로 구현하려면 https://vcloud.example.com과 같은 기관 끝점에 도달하는 요청을 사이트 연결의 각 구성원에 대한 끝점(예: https://us.vcloud.example.com 및 https://uk.vcloud.example.com)으로 분산하는 로드 밸런서를 구성합니다. 또한 사이트에 둘 이상의 셀이 있는 경우 수신 요청을 모든 셀에 분산하는 로드 밸런서를 구성하여 https://us.vcloud.example.com에 대한 요청이 https://cell1.us.vcloud.example.com , https://cell2.us.vcloud.example.com 등에 의해 처리될 수 있도록 해야 합니다.
VMware Cloud Director 10.3부터는 다중 사이트 배포를 위해 로드 밸런싱 끝점에 도착하는 모든 클라이언트 요청이 리디렉션됩니다. 요청이 로드 밸런싱 끝점에 도착하면 요청이 도착한 사이트가 올바른 사이트인 경우에도, 리디렉션이 실행되고 사용자에게 표시되는 URL에 반영되어 요청이 올바른 위치로 전달되었음을 나타냅니다.
예를 들어 글로벌 로드 밸런싱 끝점 https://us.vcloud.example.com 뒤에 2개의 사이트(https://site1.vcloud.example.com 및 https://site2.vcloud.example.com)로 구성된 배포가 있을 수 있습니다. VMware Cloud Director 10.3부터는 요청이 사이트1(https://us.vcloud.example.com/org1)에 있는 조직의 로드 밸런싱 끝점에 도착할 때 요청이 사이트1에 도착하면, 사이트에서 자체 리디렉션이 발생하여 요청을 https://site1.vcloud.example.com/org1로 전달합니다. VMware Cloud Director 10.2.x 및 이전 버전에서는 로드 밸런서가 동일한 위치에 있는 조직에 대한 요청을 수신할 경우 리디렉션이 발생하지 않고 공용 끝점의 URL(https://us.vcloud.example.com/org1)을 통해 요청이 처리됩니다.
네트워크 연결 요구 사항
다중 사이트 기능을 사용하려면 각 사이트의 각 셀은 모든 사이트의 REST API 끝점에 REST API 요청을 수행할 수 있어야 합니다. 로드 밸런서 요구 사항 섹션의 예를 사용하는 경우 cell1.us.vcloud.example.com 및 cell2.us.vcloud.example.com은 uk.example.com의 REST API 끝점에 도달할 수 있어야 합니다. 그 반대는 uk.example.com의 모든 셀에 적용됩니다. 즉, 셀은 자체 REST API 끝점에 REST API 호출을 수행할 수 있어야 합니다. 즉 cell1.us.vcloud.example.com이 https://us.vcloud.example.com에 REST API 호출을 수행할 수 있어야 합니다.
REST API 팬아웃을 위해 모든 사이트의 REST API 끝점에 REST API 요청을 해야 합니다. 예를 들어 UI 또는API 클라이언트가 모든 사이트에서 조직의 페이지를 가져오기 위해 다중 사이트 요청을 수행하고 cell1.us.vcloud.example.com에서 요청이 처리됩니다. cell1
셀은 REST API를 호출하여 사이트에 대해 구성된 REST API 끝점을 사용하여 각 사이트에서 조직의 페이지를 가져와야 합니다. 모든 사이트가 조직의 페이지를 반환하면 cell1
은 결과를 수집하고 다른 모든 사이트의 데이터가 포함된 단일 결과 페이지를 반환합니다.
사이트 및 인증서
사이트가 다른 사이트와 연결되어 있는 경우 사이트의 인증서를 업데이트하면 다른 사이트에 변경을 알려야 할 수도 있습니다. 인증서 변경을 다른 사이트에 알리지 않으면 다중 사이트 팬아웃이 영향을 받을 수 있습니다.
사이트의 인증서를 잘 서명된 유효한 인증서로 교체하는 경우에는 다른 사이트에 알릴 필요가 없습니다. 인증서가 유효하고 잘 서명된 것이기 때문에 다른 사이트의 셀은 중단 없이 안전하게 인증서에 계속 연결할 수 있습니다.
연결 구성원 상태
Service Provider Admin Portal 및 Tenant Portal에서 상태는 Connected
, Partially Connected
및 Unreachable
로 나타납니다.
구성원 상태 "하트비트" 프로세스는 VMware Cloud Director 설치 중 시스템 조직에서 만들어진 로컬 VMware Cloud Director 사용자 계정인 다중 사이트 시스템 사용자의 ID로 실행됩니다. 이 계정은 시스템 조직의 멤버이지만 시스템 관리자 권한이 없습니다. 사이트 연결의 원격 구성원의 상태를 검색하는 VMware Cloud Director API 요청을 수행하기 위한 사용 권한을 부여하는 단일 권한인 Multisite: System Operations
만 있습니다.