1.3. 서브스크립션 보고서
서브스크립션 보고서는 플릿에 있는 모든 관리 클러스터의 애플리케이션 상태 컬렉션입니다. 특히 상위 애플리케이션 리소스는 확장 가능한 양의 관리 클러스터의 보고서를 저장할 수 있습니다.
허브 클러스터의 subscriptionReports
는 가볍고 확장 가능한 상태에서 관리 클러스터에서 자세한 애플리케이션 상태를 사용할 수 있습니다. 다음 세 가지 유형의 하위 상태 보고서를 참조하십시오.
-
패키지 수준
SubscriptionStatus
:appsub
네임스페이스의 애플리케이션에서 배포한 모든 리소스에 대한 자세한 상태로 관리 클러스터의 애플리케이션 패키지 상태입니다. -
클러스터 수준
SubscriptionReport
: 특정 클러스터에 배포된 모든 애플리케이션에 대한 전체 상태 보고서입니다. 애플리케이션 수준
SubscriptionReport
: 특정 애플리케이션이 배포된 모든 관리 클러스터에 대한 전체 상태 보고서입니다.
1.3.1. SubscriptionStatus 패키지 수준
패키지 수준 관리 클러스터 상태는 관리 클러스터의 < namespace:<your-appsub-namespace
>에 있으며 애플리케이션에서 배포한 모든 리소스에 대한 세부 상태를 포함합니다. 관리 클러스터에 배포된 모든 appsub
에 대해 관리 클러스터의 appsub
네임스페이스에 생성된 SubscriptionStatus
CR이 있습니다. 오류가 있는 경우 모든 리소스가 자세한 오류와 함께 보고됩니다.
패키지 상태는 개별 패키지의 상태만 나타냅니다. .status.subscription
필드를 참조하여 전체 서브스크립션 상태를 볼 수 있습니다.
다음 SubscriptionStatus
샘플 YAML 파일을 참조하십시오.
apiVersion: apps.open-cluster-management.io/v1alpha1 kind: SubscriptionStatus metadata: labels: apps.open-cluster-management.io/cluster: <your-managed-cluster> apps.open-cluster-management.io/hosting-subscription: <your-appsub-namespace>.<your-appsub-name> name: <your-appsub-name> namespace: <your-appsub-namespace> statuses: packages: - apiVersion: v1 kind: Service lastUpdateTime: "2021-09-13T20:12:34Z" Message: <detailed error. visible only if the package fails> name: frontend namespace: test-ns-2 phase: Deployed - apiVersion: apps/v1 kind: Deployment lastUpdateTime: "2021-09-13T20:12:34Z" name: frontend namespace: test-ns-2 phase: Deployed - apiVersion: v1 kind: Service lastUpdateTime: "2021-09-13T20:12:34Z" name: redis-master namespace: test-ns-2 phase: Deployed - apiVersion: apps/v1 kind: Deployment lastUpdateTime: "2021-09-13T20:12:34Z" name: redis-master namespace: test-ns-2 phase: Deployed - apiVersion: v1 kind: Service lastUpdateTime: "2021-09-13T20:12:34Z" name: redis-slave namespace: test-ns-2 phase: Deployed - apiVersion: apps/v1 kind: Deployment lastUpdateTime: "2021-09-13T20:12:34Z" name: redis-slave namespace: test-ns-2 phase: Deployed subscription: lastUpdateTime: "2021-09-13T20:12:34Z" phase: Deployed
1.3.2. SubscriptionReport 클러스터 수준
클러스터 수준 상태는 hub 클러스터의 < namespace:<your-managed-cluster-1
>에 있으며 해당 관리 클러스터의 각 애플리케이션에 대한 전체 상태만 포함됩니다. hub 클러스터의 각 클러스터 네임스페이스의 subscriptionReport
는 다음 상태 중 하나를 보고합니다.
-
배포됨
-
Failed
-
propagationFailed
다음 SubscriptionStatus
샘플 YAML 파일을 참조하십시오.
apiVersion: apps.open-cluster-management.io/v1alpha1 kind: subscriptionReport metadata: labels: apps.open-cluster-management.io/cluster: "true" name: <your-managed-cluster-1> namespace: <your-managed-cluster-1> reportType: Cluster results: - result: deployed source: appsub-1-ns/appsub-1 // appsub 1 to <your-managed-cluster-1> timestamp: nanos: 0 seconds: 1634137362 - result: failed source: appsub-2-ns/appsub-2 // appsub 2 to <your-managed-cluster-1> timestamp: nanos: 0 seconds: 1634137362 - result: propagationFailed source: appsub-3-ns/appsub-3 // appsub 3 to <your-managed-cluster-1> timestamp: nanos: 0 seconds: 1634137362
1.3.3. SubscriptionReport 애플리케이션 수준
각 애플리케이션에 대한 하나의 애플리케이션 수준 subscriptionReport
는 hub 클러스터의 appsub 네임스페이스의 < namespace:<your-
namespace>에 있으며 다음 정보를 포함합니다.
appsub
-
- 각 관리 클러스터의 애플리케이션 전체 상태
- 애플리케이션의 모든 리소스 목록
- 총 클러스터 수가 포함된 보고서 요약
-
애플리케이션이 상태에 있는 총 클러스터 수(
deployed
,failed
,propagationFailed
,inProgress
)가 포함된 보고서 요약입니다.
참고: inProcess
상태는 배포된 총 - 배치된
값입니다. - failed ', - 'propagationFailed
.
다음 SubscriptionStatus
샘플 YAML 파일을 참조하십시오.
apiVersion: apps.open-cluster-management.io/v1alpha1 kind: subscriptionReport metadata: labels: apps.open-cluster-management.io/hosting-subscription: <your-appsub-namespace>.<your-appsub-name> name: <your-appsub-name> namespace: <your-appsub-namespace> reportType: Application resources: - apiVersion: v1 kind: Service name: redis-master2 namespace: playback-ns-2 - apiVersion: apps/v1 kind: Deployment name: redis-master2 namespace: playback-ns-2 - apiVersion: v1 kind: Service name: redis-slave2 namespace: playback-ns-2 - apiVersion: apps/v1 kind: Deployment name: redis-slave2 namespace: playback-ns-2 - apiVersion: v1 kind: Service name: frontend2 namespace: playback-ns-2 - apiVersion: apps/v1 kind: Deployment name: frontend2 namespace: playback-ns-2 results: - result: deployed source: cluster-1 //cluster 1 status timestamp: nanos: 0 seconds: 0 - result: failed source: cluster-3 //cluster 2 status timestamp: nanos: 0 seconds: 0 - result: propagationFailed source: cluster-4 //cluster 3 status timestamp: nanos: 0 seconds: 0 summary: deployed: 8 failed: 1 inProgress: 0 propagationFailed: 1 clusters: 10
1.3.4. ManagedClusterView
ManagedClusterView
CR은 첫 번째 실패한
클러스터에서 보고됩니다. 애플리케이션이 리소스 배포 실패가 있는 여러 클러스터에 배포된 경우 허브 클러스터에서 첫 번째 실패한 클러스터 네임스페이스에 대해 하나의 managedClusterView
CR만 생성됩니다. managedClusterView
CR은 실패한 클러스터에서 세부 서브스크립션 상태를 검색하여 애플리케이션 소유자가 실패한 원격 클러스터에 액세스할 필요가 없도록 합니다.
상태를 가져오기 위해 실행할 수 있는 다음 명령을 참조하십시오.
% oc get managedclusterview -n <failing-clusternamespace> "<app-name>-<app name>"
1.3.5. CLI 애플리케이션 수준 상태
관리 클러스터에 액세스하여 서브스크립션 상태를 가져올 수 없는 경우 CLI를 사용할 수 있습니다. 클러스터 수준 또는 애플리케이션 수준 구독 보고서는 전체 상태를 제공하지만 애플리케이션에 대한 자세한 오류 메시지는 제공하지 않습니다.
- multicloud-operators-subscription 에서 CLI를 다운로드합니다.
-
다음 명령을 실행하여 오류를 식별할 수 있도록 관리 클러스터 애플리케이션
SubscriptionStatus
를 보려면managedClusterView
리소스를 생성합니다.
% getAppSubStatus.sh -c <your-managed-cluster> -s <your-appsub-namespace> -n <your-appsub-name>
1.3.6. CLI 마지막 업데이트 시간
또한 이 정보를 검색하기 위해 각 관리 클러스터에 로그인하는 것이 실용적이지 않은 경우 지정된 관리 클러스터에서 앱 서브의 마지막 업데이트 시간을 가져올 수도 있습니다. 따라서 관리 클러스터에서 AppSub의 마지막 업데이트 시간 검색을 간소화하기 위해 유틸리티 스크립트가 생성되었습니다. 이 스크립트는 Hub 클러스터에서 실행되도록 설계되었습니다. 관리 클러스터에서 AppSub를 가져오고 마지막 업데이트 시간을 가져오기 위해 데이터를 구문 분석하기 위해 managedClusterView 리소스를 생성합니다.
- multicloud-operators-subscription 에서 CLI를 다운로드합니다.
-
다음 명령을 실행하여 관리 클러스터에서
App
검색합니다. 이 스크립트는 hub 클러스터에서 실행되도록 설계되었습니다. 관리 클러스터에서 AppSub를 가져오고 마지막 업데이트 시간을 가져오기 위해 데이터를 구문 분석하기 위해Sub
의 마지막 업데이트 시간을managedClusterView
리소스를 생성합니다.
% getLastUpdateTime.sh -c <your-managed-cluster> -s <your-appsub-namespace> -n <your-appsub-name>