1.3. サブスクリプションレポート
サブスクリプションレポートは、フリート内のすべてのマネージドクラスターからのアプリケーションステータスのコレクションです。具体的には、親アプリケーションリソースは、スケーラブルなマネージドクラスターからのレポートを保持できます。
詳細なアプリケーションステータスはマネージドクラスターで利用できますが、ハブクラスターの subscriptionReports は軽量でスケーラブルです。以下の 3 種類のサブ状態レポートを参照してください。
-
パッケージレベルの
SubscriptionStatus: これは、マネージドクラスター上のアプリケーションパッケージのステータスであり、アプリケーションによってappsubnamespace にデプロイされるすべてのリソースの詳細なステータスが含まれます。 -
クラスターレベルの
SubscriptionReport: 特定のクラスターにデプロイされているすべてのアプリケーションに関する全体的なステータスレポートです。 アプリケーションレベルの
SubscriptionReport: これは、特定のアプリケーションがデプロイされたすべてのマネージドクラスターの全体的なステータスレポートです。
1.3.1. SubscriptionStatus パッケージレベル リンクのコピーリンクがクリップボードにコピーされました!
パッケージレベルのマネージドクラスターのステータスは、マネージドクラスターの <namespace:<your-appsub-namespace> にあり、アプリケーションでデプロイされたすべてのリソースの詳細ステータスが含まれます。マネージドクラスターにデプロイされるすべての appsub に対して、マネージドクラスターの appsub namespace に SubscriptionStatus CR が作成されます。エラーが存在する場合は、すべてのリソースが詳細エラーと共に報告されます。
以下の 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
1.3.2. SubscriptionReport クラスターレベル リンクのコピーリンクがクリップボードにコピーされました!
クラスターレベルのステータスはハブクラスターの <namespace:<your-managed-cluster-1> にあり、そのマネージドクラスターの各アプリケーションの全体的なステータスのみが含まれます。ハブクラスターの各クラスター namespace の subscriptionReport は、以下のステータスのいずれかを報告します。
-
Deployed -
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 アプリケーションレベル リンクのコピーリンクがクリップボードにコピーされました!
各アプリケーションのアプリケーションレベルの 1 つである subscriptionReport が、ハブクラスターの appsub namespace の <namespace:<your-appsub-namespace> にあり、以下の情報が含まれています。
- 各マネージドクラスターのアプリケーション全体のステータス
- アプリケーションのすべてのリソースのリスト
- クラスターの合計数を含むレポートサマリー
-
アプリケーションがステータスにあるクラスターの合計数 (
deployed、failed、propagationFailed、およびinProgress) のレポートサマリー。
注記: inProcess ステータスは、合計マイナス deployed、さらに 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 は、最初の failed クラスターについて報告されます。リソースのデプロイに失敗した複数のクラスターにアプリケーションがデプロイされた場合、ハブクラスターで最初に失敗したクラスター namespace に対して managedClusterView CR が 1 つだけが作成されます。managedClusterView CR は、障害が発生したクラスターから詳細なサブスクリプションステータスを取得するため、アプリケーションの所有者は障害が発生したリモートクラスターにアクセスする必要がありません。
以下のコマンドを実行してステータスを取得できます。
% oc get managedclusterview -n <failing-clusternamespace> "<app-name>-<app name>"
1.3.5. CLI アプリケーションレベルのステータス リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターにアクセスしてサブスクリプションステータスを取得できない場合は、CLI を使用できます。クラスターレベルまたはアプリケーションレベルのサブスクリプションレポートは、全体のステータスは含まれますが、アプリケーションの詳細なエラーメッセージは含まれません。
- multicloud-operators-subscription から CLI をダウンロードします。
-
以下のコマンドを実行して
managedClusterViewリソースを作成し、エラーを特定できるようにマネージドクラスターアプリケーションのSubscriptionStatusを表示します。
% getAppSubStatus.sh -c <your-managed-cluster> -s <your-appsub-namespace> -n <your-appsub-name>
1.3.6. CLI 最終更新時間 リンクのコピーリンクがクリップボードにコピーされました!
また、各マネージドクラスターにログインしてこの情報を取得する場合は、指定のマネージドクラスターでの AppSub の最終更新時間を取得することもできます。そのため、マネージドクラスターの AppSub の最終更新時間の取得を簡素化するために、ユーティリティースクリプトが作成されました。このスクリプトは、ハブクラスターで実行するように設計されています。これは、マネージドクラスターから AppSub を取得するための managedClusterView リソースを作成し、データを解析して最終更新時刻を取得します。
- multicloud-operators-subscription から CLI をダウンロードします。
-
以下のコマンドを実行して、マネージドクラスターの
AppSubの最終更新時間を取得します。このスクリプトは、ハブクラスターで実行するように設計されています。managedClusterViewリソースを作成してマネージドクラスターから AppSub を取得し、データを解析して最終更新時間を取得します。
% getLastUpdateTime.sh -c <your-managed-cluster> -s <your-appsub-namespace> -n <your-appsub-name>