1.2.2. 可観測性の有効化

MultiClusterObservability カスタムリソース (CR) を作成して可観測性サービスを有効にします。可観測性を有効にする前に、「 可観測性 Pod の容量要求 」を参照してください。可観測性サービスを有効にするには、以下の手順を実行します。

  1. Red Hat Advanced Cluster Management ハブクラスターにログインします。
  2. 以下のコンマを使用して可観測性サービスの namespace を作成します。

    oc create namespace open-cluster-management-observability
  3. プルシークレットを生成します。Red Hat Advanced Cluster Management が open-cluster-management namespace に インストールされている場合は、以下のコマンドを実行します。

    DOCKER_CONFIG_JSON=`oc extract secret/multiclusterhub-operator-pull-secret -n open-cluster-management --to=-`

    multiclusterhub-operator-pull-secret が namespace に定義されていない場合には、pull-secretopenshift-config namespace から open-cluster-management-observability namespace にコピーします。以下のコマンドを実行します。

    DOCKER_CONFIG_JSON=`oc extract secret/pull-secret -n openshift-config --to=-`

    次に open-cluster-management-observability namespace でプルリクエストを作成して、以下のコマンドを実行します。

    oc create secret generic multiclusterhub-operator-pull-secret \
        -n open-cluster-management-observability \
        --from-literal=.dockerconfigjson="$DOCKER_CONFIG_JSON" \
        --type=kubernetes.io/dockerconfigjson
  4. お使いのクラウドプロバイダーのオブジェクトストレージのシークレットを作成します。シークレットには、ストレージソリューションへの認証情報を追加する必要があります。たとえば、以下のコマンドを実行します。

    oc create -f thanos-object-storage.yaml -n open-cluster-management-observability
    1. サポートされるオブジェクトストアのシークレットの例を以下に示します。

      • Red Hat Advanced Cluster Management では、以下のファイルのようになります。

        apiVersion: v1
        kind: Secret
        metadata:
          name: thanos-object-storage
          namespace: open-cluster-management-observability
        type: Opaque
        stringData:
          thanos.yaml: |
            type: s3
            config:
              bucket: YOUR_S3_BUCKET
              endpoint: YOUR_S3_ENDPOINT
              insecure: true
              access_key: YOUR_ACCESS_KEY
              secret_key: YOUR_SECRET_KEY
      • Amazon S3 または S3 と互換性のある場合には、シークレットは以下のファイルのようになります。

        apiVersion: v1
        kind: Secret
        metadata:
          name: thanos-object-storage
          namespace: open-cluster-management-observability
        type: Opaque
        stringData:
          thanos.yaml: |
            type: s3
            config:
              bucket: YOUR_S3_BUCKET
              endpoint: YOUR_S3_ENDPOINT
              insecure: true
              access_key: YOUR_ACCESS_KEY
              secret_key: YOUR_SECRET_KEY

        詳細は、『Amazon Simple Storage Service ユーザーガイド』を参照してください。

      • Google の場合は、以下のファイルのようになります。

        apiVersion: v1
        kind: Secret
        metadata:
          name: thanos-object-storage
          namespace: open-cluster-management-observability
        type: Opaque
        stringData:
          thanos.yaml: |
            type: GCS
            config:
              bucket: YOUR_GCS_BUCKET
              service_account: YOUR_SERVICE_ACCOUNT

        詳細は、「Google Cloud Storage とは」を参照してください。

      • Azure の場合は、以下のファイルのようになります。

        apiVersion: v1
        kind: Secret
        metadata:
          name: thanos-object-storage
          namespace: open-cluster-management-observability
        type: Opaque
        stringData:
          thanos.yaml: |
            type: AZURE
            config:
              storage_account: YOUR_STORAGE_ACCT
              storage_account_key: YOUR_STORAGE_KEY
              container: YOUR_CONTAINER
              endpoint: blob.core.windows.net
              max_retries: 0

        詳細は、Azure Storage のドキュメント を参照してください。

      • OpenShift Container Storage の場合は、以下のファイルのようになります。

        apiVersion: v1
        kind: Secret
        metadata:
          name: thanos-object-storage
          namespace: open-cluster-management-observability
        type: Opaque
        stringData:
          thanos.yaml: |
            type: s3
            config:
              bucket: YOUR_OCS_BUCKET
              endpoint: YOUR_OCS_ENDPOINT
              insecure: true
              access_key: YOUR_OCS_ACCESS_KEY
              secret_key: YOUR_OCS_SECRET_KEY

        詳細は、「OpenShift Container Storage のインストール」を参照してください。

    2. 以下のコマンドを使用して、クラウドプロバイダーの S3 アクセスキーおよびシークレットキーを取得できます。

      ACCESS_KEY=$(oc -n <your-object-storage> get secret <object-storage-secret> -o yaml | grep AccessKey | awk '{print $2}' | base64 --decode)
      
      echo $ACCESS_KEY
      
      SECRET_KEY=$(oc -n <your-object-storage> get secret <object-storage-secret> -o yaml | grep SecretKey | awk '{print $2}' | base64 --decode)
      
      echo $SECRET_KEY

1.2.2.1. MultiClusterObservability CR の作成

以下の手順を実行して MultiClusterObservability カスタムリソース (CR) を削除します。

  1. 以下の手順を実行して、マネージドクラスターの MultiClusterObservability カスタムリソース (mco CR) を作成します。

    1. multiclusterobservability_cr.yaml という名前の MultiClusterObservability カスタムリソースの YAML ファイルを作成します。

      可観測性については、以下のデフォルト YAML ファイルを確認してください。

      apiVersion: observability.open-cluster-management.io/v1beta1
      kind: MultiClusterObservability
      metadata:
        name: observability #Your customized name of MulticlusterObservability CR
      spec:
        availabilityConfig: High # Available values are High or Basic
        enableDownSampling: false # The default value is false. This is not recommended as querying long-time ranges without non-downsampled data is not efficient and useful.
        imagePullPolicy: Always
        imagePullSecret: multiclusterhub-operator-pull-secret
        observabilityAddonSpec: # The ObservabilityAddonSpec defines the global settings for all managed clusters which have observability add-on enabled
          enableMetrics: true # EnableMetrics indicates the observability addon push metrics to hub server
          interval: 30 # Interval for the observability addon push metrics to hub server
        retentionResolution1h: 30d # How long to retain samples of 1 hour in bucket
        retentionResolution5m: 14d
        retentionResolutionRaw: 5d
        storageConfigObject: # Specifies the storage to be used by Observability
          metricObjectStorage:
            name: thanos-object-storage
            key: thanos.yaml
          statefulSetSize: 10Gi # The amount of storage applied to the Observability StatefulSets, i.e. Amazon S3 store, Rule, compact and receiver.
          statefulSetStorageClass: gp2

      retentionResolution パラメーターの値を変更する必要がある場合があります。デフォルトでは、downsampling は無効になっています。詳細は、Thanos Downsampling resolution and retention を参照してください。マネージドクラスターの数によっては、statefulSetSize を更新する必要がある場合があります。詳細は、「Observability API」を参照してください。

    2. インフラストラクチャーマシンセットにデプロイするには、MultiClusterObservability YAML の nodeSelector を更新して、セットのラベルを設定する必要があります。YAML の内容は以下のようになります。

      nodeSelector:
          node-role.kubernetes.io/infra:

      詳細は、「インフラストラクチャーマシンセットの作成」を参照してください。

    3. 以下のコマンドを実行して可観測性 YAML をクラスターに適用します。

      oc apply -f multiclusterobservability_cr.yaml

      Thanos、Grafana および AlertManager の open-cluster-management-observability namespace に全 Pod を作成します。Red Hat Advanced Cluster Management ハブクラスターに接続されたマネージドクラスターはすべて、メトリクスを Red Hat Advanced Cluster Management の可観測性サービスに送信できます。

  2. 可観測性サービスが有効になっていることを確認するには、Grafana ダッシュボードを起動して、データが追加されていることを確認します。以下の手順を実行します。

    1. Red Hat Advanced Cluster Management コンソールにログインします。
    2. ナビゲーションメニューから Observe environments > Overview を選択します。
    3. コンソールヘッダーの近くにある Grafana リンクをクリックして、マネージドクラスターからメトリクスを表示します。

      注記: 可観測性データを収集しないように特定のマネージドクラスターを除外するには、クラスターに observability: disabled のクラスターラベルを追加します。