Config Connector を使ってみる

このガイドでは、Config Connector リソース管理の基本と管理方法を説明します。

  • Google Cloud API を有効にする
  • Cloud Storage バケットの作成と管理

始める前に

このページの手順を完了するには:

利用可能な Google Cloud リソースの検出

Config Connector で作成できる Google Cloud リソースの種類を確認するには、次のコマンドを実行します。

kubectl get crds --selector cnrm.cloud.google.com/managed-by-kcc=true

出力は、Config Connector の使用中のバージョンで作成、管理できるすべてのリソースのリストです。

たとえば、StorageBuckets リソースの API の説明は、kubectl describe で表示できます。

kubectl describe crd storagebuckets.storage.cnrm.cloud.google.com

Config Connector リソースで使用可能なリソースに関する情報を確認することもできます。

Cloud Storage Service を有効にする

Config Connector を使用して Cloud Storage API を有効にするには、YAML 構成をクラスタに適用します。

  1. 次の YAML を enable-storage.yaml というファイルにコピーします。

    apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1
    kind: Service
    metadata:
      name: storage.googleapis.com
    
  2. kubectl apply を使用して、クラスタに構成を適用します。Cloud Storage API を有効にするには、次のコマンドを実行します。

    kubectl --namespace YOUR_NAMESPACE apply -f enable-storage.yaml

    YOUR_NAMESPACE は、リソースを管理するNamespace Config Connector に置き換えます。

Cloud Storage インスタンスを作成する

次の内容のファイルを storage-bucket.yaml という名前で作成します。

  apiVersion: storage.cnrm.cloud.google.com/v1beta1
  kind: StorageBucket
  metadata:
    annotations:
      cnrm.cloud.google.com/project-id : PROJECT_ID
    name: BUCKET_NAME
  spec:
    lifecycleRule:
      - action:
          type: Delete
        condition:
          age: 7

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • BUCKET_NAME: バケット名。

リソースを作成すると、Config Connector によってリソースが作成されます(すでに存在しない場合)。同じ名前の Google Cloud リソースがすでに存在する場合、Config Connector はそのリソースを取得して管理します。既存のリソースの取得について詳しくは、リソースの管理と削除をご覧ください。

kubectl apply コマンドを使用してリソースを作成します。Cloud Storage バケットを作成するには、次のコマンドを実行します。

kubectl apply -f storage-bucket.yaml --namespace YOUR_NAMESPACE

YOUR_NAMESPACE は、リソースを管理する Namespace Config Connector に置き換えます。

リソースの説明

kubectl describe を使用して、リソースの詳細を取得します。

たとえば、すべての Cloud Storage バケットを表示するには、次のコマンドを実行します。

kubectl describe storagebuckets

リソースの更新

YAML ファイルを更新して kubectl で再適用することにより、リソースのメタデータを更新できます。以前に作成したストレージ バケットのメタデータを更新するには:

  1. storage-bucket.yaml ファイルの metadata セクションを変更して、force-destroy ディレクティブと値のラベルを追加します。

    apiVersion: storage.cnrm.cloud.google.com/v1beta1
    kind: StorageBucket
    metadata:
      annotations:
        cnrm.cloud.google.com/force-destroy: "true"
        cnrm.cloud.google.com/project-id : PROJECT_ID
      labels:
        label-one: "my_bucket" 
      name: BUCKET_NAME
    spec:
      lifecycleRule:
        - action:
            type: Delete
          condition:
            age: 7
    

    以下を置き換えます。

    • PROJECT_ID: プロジェクト ID。
    • BUCKET_NAME: バケット名。
  2. kubectl apply を使用してリソースを更新します。次のコマンドを実行します。

    kubectl apply -f storage-bucket.yaml
  3. Cloud Storage インスタンスの名前が変更されたことを確認します。

    kubectl describe storagebuckets

    バケットに新しいラベルとアノテーションを含めてください。

    ...
    Labels:       label-one=my_bucket
    Annotations:  cnrm.cloud.google.com/force-destroy: true
    ...
    

リソースの削除

kubectl delete を使用してリソースを削除します。たとえば、前に作成した StorageBucket を削除するには、storage-bucket.yaml ファイルを使用して kubectl delete を実行します。

kubectl delete -f storage-bucket.yaml

リソースが削除されたことを示す確認メッセージが表示されます。

storage.cnrm.cloud.google.com "BUCKET_NAME" deleted

デフォルトでは、Config Connector は StorageBucket リソースを削除します。このリソースを保持する場合は、リソースの管理と削除の手順をご覧ください。

次のステップ