3.3. 永続ストレージの設定
メータリングでは、metering-operator によって収集されるデータを永続化し、レポートの結果を保存するための永続ストレージが必要です。数多くの異なるストレージプロバイダーおよびストレージ形式がサポートされています。ストレージプロバイダーを選択し、設定ファイルのサンプルを変更して、メータリングのインストール用に永続ストレージを設定します。
3.3.1. Amazon S3 でのデータの保存 リンクのコピーリンクがクリップボードにコピーされました!
メータリングは既存の Amazon S3 バケットを使用するか、またはストレージのバケットを作成できます。
メータリングは S3 バケットデータを管理または削除しません。メータリングをアンインストールする際に、メータリングデータを保存するために使用される S3 バケットは手動でクリーンアップする必要があります。
ストレージに Amazon S3 を使用するには、以下のサンプル s3-storage.yaml ファイルの spec.storage セクションを編集します。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
storage:
type: "hive"
hive:
type: "s3"
s3:
bucket: "bucketname/path/"
region: "us-west-1"
secretName: "my-aws-secret"
# Set to false if you want to provide an existing bucket, instead of
# having metering create the bucket on your behalf.
createBucket: true
テンプレートとして以下のシークレットサンプルを使用します。
aws-access-key-id および aws-secret-access-key の値は base64 でエンコードされる必要があります。
apiVersion: v1
kind: Secret
metadata:
name: your-aws-secret
data:
aws-access-key-id: "dGVzdAo="
aws-secret-access-key: "c2VjcmV0Cg=="
以下のコマンドを使用してシークレットを作成できます。
このコマンドは、aws-access-key-id と aws-secret-access-key の値を自動的に base64 でエンコードします。
oc create secret -n openshift-metering generic your-aws-secret --from-literal=aws-access-key-id=your-access-key --from-literal=aws-secret-access-key=your-secret-key
aws-access-key-id および aws-secret-access-key 認証情報には、バケットへの読み取りおよび書き込みアクセスがなければなりません。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.createBucket を true に設定しているか、または未設定にしている場合、以下の 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"
]
}
]
}
3.3.2. S3 互換ストレージへのデータの保存 リンクのコピーリンクがクリップボードにコピーされました!
Noobaa などの S3 互換ストレージを使用するには、以下のサンプルの s3-compatible-storage.yaml ファイルの spec.storage セクションを編集します。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
storage:
type: "hive"
hive:
type: "s3Compatible"
s3Compatible:
bucket: "bucketname"
endpoint: "http://example:port-number"
secretName: "my-aws-secret"
テンプレートとして以下のシークレットサンプルを使用します。
apiVersion: v1
kind: Secret
metadata:
name: your-aws-secret
data:
aws-access-key-id: "dGVzdAo="
aws-secret-access-key: "c2VjcmV0Cg=="
3.3.3. Microsoft Azure へのデータの保存 リンクのコピーリンクがクリップボードにコピーされました!
Azure Blob ストレージにデータを保存するには、既存のコンテナーを使用する必要があります。以下のサンプルの azure-blob-storage.yaml ファイルで spec.storage セクションを編集します。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
storage:
type: "hive"
hive:
type: "azure"
azure:
container: "bucket1"
secretName: "my-azure-secret"
rootDirectory: "/testDir"
テンプレートとして以下のシークレットサンプルを使用します。
apiVersion: v1
kind: Secret
metadata:
name: your-azure-secret
data:
azure-storage-account-name: "dGVzdAo="
azure-secret-access-key: "c2VjcmV0Cg=="
以下のコマンドを使用してシークレットを作成できます。
oc create secret -n openshift-metering generic your-azure-secret --from-literal=azure-storage-account-name=your-storage-account-name --from-literal=azure-secret-access-key-your-secret-key
3.3.4. Google Cloud Storage へのデータの保存 リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud Storage にデータを保存するには、既存のバケットを使用する必要があります。以下のサンプルの gcs-storage.yaml ファイルで spec.storage セクションを編集します。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
storage:
type: "hive"
hive:
type: "gcs"
gcs:
bucket: "metering-gcs/test1"
secretName: "my-gcs-secret"
以下のサンプルのシークレットをテンプレートとして使用します。
apiVersion: v1
kind: Secret
metadata:
name: your-gcs-secret
data:
gcs-service-account.json: "c2VjcmV0Cg=="
以下のコマンドを使用してシークレットを作成できます。
oc create secret -n openshift-metering generic your-gcs-secret --from-file gcs-service-account.json=/path/to/your/service-account-key.json