Config Connector を使ってみる

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

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

始める前に

このページの演習を完了するには:

  • GKE アドオンを使用したインストールのすべての手順を完了して、Config Connector をインストールします。

  • デフォルトのプロジェクトを使用するように Config Connector を構成します。

  • Config Connector は Resource Manager API を使用してサービス API を有効にします。この手順を行うには、Resource Manager API を有効にする必要があります。この API は、次の gcloud コマンドで有効にできます。
    gcloud services enable cloudresourcemanager.googleapis.com

利用可能な 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 Build API を有効にするには、次のコマンドを実行します。

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

    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 NAMESPACE

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

リソースの説明

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

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

kubectl describe storagebuckets

このリストには、前の手順で作成した Cloud Storage バケットが表示されます。

リソースの準備ができていることを確認する

Cloud Storage バケットを作成した後、その status.condition を確認できます。たとえば、Cloud Storage バケット リソースが準備できているかを確認するには、次のコマンドを実行します。

kubectl --namespace NAMESPACE wait --for=condition=READY storagebuckets BUCKET_NAME

以下を置き換えます。

  • NAMESPACE は、リソースを管理する Namespace Config Connector に置き換えます。
  • BUCKET_NAME: バケット名。

リソースの更新

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 リソースを削除します。このリソースを保持する場合は、リソースの管理と削除の手順をご覧ください。

次のステップ