4.3. 永続ストレージの設定

重要

メータリングは非推奨の機能です。非推奨の機能は依然として OpenShift Container Platform に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。

OpenShift Container Platform で非推奨となったか、または削除された主な機能の最新の一覧については、OpenShift Container Platform リリースノートの 非推奨および削除された機能セクションを参照してください。

メータリングでは、メータリング Operator によって収集されるデータを永続化し、レポートの結果を保存するための永続ストレージが必要です。数多くの異なるストレージプロバイダーおよびストレージ形式がサポートされています。ストレージプロバイダーを選択し、設定ファイルのサンプルを変更して、メータリングのインストール用に永続ストレージを設定します。

4.3.1. Amazon S3 でのデータの保存

メータリングは既存の Amazon S3 バケットを使用するか、またはストレージのバケットを作成できます。

注記

メータリングは S3 バケットデータを管理したり、削除したりしません。メータリングデータを保存するために使用される S3 バケットを手動でクリーンアップする必要があります。

手順

  1. s3-storage.yaml ファイルの spec.storage セクションを編集します。

    例: s3-storage.yaml ファイル

    apiVersion: metering.openshift.io/v1
    kind: MeteringConfig
    metadata:
      name: "operator-metering"
    spec:
      storage:
        type: "hive"
        hive:
          type: "s3"
          s3:
            bucket: "bucketname/path/" 1
            region: "us-west-1" 2
            secretName: "my-aws-secret" 3
            # Set to false if you want to provide an existing bucket, instead of
            # having metering create the bucket on your behalf.
            createBucket: true 4

    1
    データを格納するバケットの名前を指定します。オプション: バケット内でパスを指定します。
    2
    バケットのリージョンを指定します。
    3
    data.aws-access-key-id および data.aws-secret-access-key フィールドに AWS 認証情報を含むメータリング namespace のシークレットの名前。詳細は、以下の Secret オブジェクトのサンプルを参照してください。
    4
    既存の S3 バケットを指定する必要がある場合や、CreateBucket パーミッションを持つ IAM 認証情報を指定する必要がない場合は、このフィールドを false に設定します。
  2. 以下の Secret オブジェクトをテンプレートとして使用します。

    AWS Secret オブジェクトの例

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-aws-secret
    data:
      aws-access-key-id: "dGVzdAo="
      aws-secret-access-key: "c2VjcmV0Cg=="

    注記

    aws-access-key-id および aws-secret-access-key の値は base64 でエンコードされる必要があります。

  3. シークレットを作成します。

    $ oc create secret -n openshift-metering generic my-aws-secret \
      --from-literal=aws-access-key-id=my-access-key \
      --from-literal=aws-secret-access-key=my-secret-key
    注記

    このコマンドは、aws-access-key-idaws-secret-access-key の値を自動的に base64 でエンコードします。

aws-access-key-id および aws-secret-access-key 認証情報には、バケットへの読み取りおよび書き込みアクセスがなければなりません。以下の aws/read-write.json ファイルは、必要なパーミッションを付与する IAM ポリシーを示しています。

aws/read-write.json ファイルの例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:HeadBucket",
                "s3:ListBucket",
                "s3:ListMultipartUploadParts",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::operator-metering-data/*",
                "arn:aws:s3:::operator-metering-data"
            ]
        }
    ]
}

spec.storage.hive.s3.createBuckettrue に設定しているか、または s3-storage.yaml ファイルで未設定にされている場合、バケットの作成および削除のためのパーミッションが含まれる aws/read-write-create.json ファイルを使用する必要があります。

aws/read-write-create.json ファイルの例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:HeadBucket",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:ListMultipartUploadParts",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::operator-metering-data/*",
                "arn:aws:s3:::operator-metering-data"
            ]
        }
    ]
}