Google Cloud インストールのカスタマイズ

Google Cloud 上の GKE クラスタに Knative serving をインストールする方法について説明します。Knative serving では、Cloud Service Mesh と GKE Enterprise フリートが使用されるようになりました。Knative serving フリートのインストールの新機能と変更点はこちらをご覧ください

このページは、新規インストールをカスタマイズするため、または Knative serving の既存のフリート インストールを構成するために使用します。たとえば、限定公開クラスタの構成や、Cloud Monitoring の認証情報の設定を行うことができます。

デフォルトのインストール手順では、次の CloudRun カスタム リソースを自動的にデプロイします。これにより、GKE Enterprise on Google Cloud クラスタで指標が有効になります。

  apiVersion: operator.run.cloud.google.com/v1alpha1
  kind: CloudRun
  metadata:
    name: cloud-run

カスタム リソースの概要については、カスタム リソースをご覧ください。

始める前に

  • インストールの前提条件を満たしていることを確認する必要があります。

  • Knative serving がクラスタにインストールされている場合、これらのフリート コンポーネントのインストール手順を行う前に、「GKE アドオン」が存在しないことを確認する必要があります。「アドオン」がインストールされている場合は、GKE Enterprise フリートのアップグレード手順を行う必要があります。

    GKE アドオン」がインストールされているかどうかを確認します。

    Knative serving のインストールが「GKE アドオン」であるかどうかを確認するには、次のコマンドを実行します。

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
    

    次のように置き換えます。

    • CLUSTER_NAME は、使用するクラスタの名前に置き換えます。
    • CLUSTER_LOCATION は、クラスタが配置されているロケーションに置き換えます。
    • PROJECT_ID は、Google Cloud プロジェクトの ID です。

    結果:

    • 「GKE アドオンがインストールされていない」:
      • アドオンがインストールされていない場合、ターミナルにはなにも返されません。
      • アドオンがすでにアンインストールされている場合、disabled=true が返されます。
    • 「GKE アドオンがインストールされている」: アドオンがクラスタにインストールされている場合は、アドオンの構成の詳細が返されます。例: loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    例:
    次の例では、「GKE アドオン」によって my-addon-cluster クラスタに Knative serving がインストールされ、外部トラフィックを処理するように構成されていることを示します。
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'
    

    レスポンス:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    

CloudRun カスタム リソースを構成する

インストールを構成するには、CloudRun カスタム リソースを手動で作成して構成する必要があります。

Google Cloud の GKE クラスタ用に CloudRun カスタム リソースを手動で作成するには:
  1. YAML ファイルを作成し、デフォルトの構成(例: cloudrunanthos.yaml)を指定します。

    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    
  2. cloudrunanthos.yaml では、spec セクションに次の属性を 1 つ以上構成することで、インストールをカスタマイズできます。

    • 限定公開クラスタ: Knative serving を Google Cloud で限定公開クラスタにインストールするには、clusterConfigisPrivate の属性セットを追加する必要があります。

      clusterConfig 属性と isPrivate 属性:

      spec:
        clusterConfig:
          isPrivate: true
      

      デフォルトでは、限定公開クラスタは認証局と通信できないため、この設定によってマネージド TLS が無効になります。

    • 指標: metricscollector 属性セットを追加して、Cloud Monitoring を構成します。Google Cloud クラスタ上の GKE Enterprise の指標はデフォルトで有効になっています。

      spec:
        metricscollector:
          stackdriver:
            projectid: PROJECT_ID
            gcpzone: CLUSTER_LOCATION
            clustername: CLUSTER_NAME
            secretname: SECRET_NAME
            secretkey: SECRET_KEY
      

      次のように置き換えます。

      • PROJECT_ID: Google Cloud プロジェクトの ID。
      • CLUSTER_LOCATION: クラスタが配置されているリージョンまたはゾーン
      • CLUSTER_NAME: クラスタの ID またはクラスタの完全修飾識別子。
      • SECRET_NAME: knative-serving 名前空間のサービス アカウントの Secret の名前。
      • SECRET_KEY: knative-serving 名前空間のサービス アカウントの Secret のキー。例: key.json

        サービス アカウントの詳細については、以下をご覧ください。

例:

この CloudRun カスタム リソースの例では、my-gcp-logging-secret シークレットと key.json キーを使用するように Cloud Monitoring の構成の詳細が指定されています。

 apiVersion: operator.run.cloud.google.com/v1alpha1
 kind: CloudRun
 metadata:
   name: cloud-run
 spec:
   metricscollector:
     stackdriver:
       projectid: my-gcp-project-id
       gcpzone: us-central1-c
       clustername: my-anthos-cluster-name
       secretname: my-gcp-logging-secret
       secretkey: key.json
 ```

Knative serving を有効にしてインストールする

GKE Enterprise フリートで Knative serving コンポーネントを有効にして、CloudRun カスタム リソースをデプロイします。

  1. フリートで Knative serving を有効にします。

    gcloud container fleet cloudrun enable --project=PROJECT_ID
    

    PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。

    詳細とその他のオプションについては、gcloud container fleet cloudrun enable のリファレンスをご覧ください。

  2. 省略可: Knative serving 機能コンポーネントが有効になっていることを確認します。

    Console

    Google Cloud コンソールで Knative serving コンポーネントが有効になっているかどうかを確認します。

    機能マネージャーに移動

    コマンドライン

    appdevexperience の状態が ACTIVE であるかどうかを確認します。

    gcloud container fleet features list  --project=PROJECT_ID
    

    PROJECT_ID は、Google Cloud プロジェクトの ID に置き換えます。

    詳細と他のオプションについては、gcloud container fleet features list をご覧ください。

    結果:

    NAME               STATE
    appdevexperience   ACTIVE
    
  3. Knative serving をインストールする GKE Enterprise クラスタごとに、CloudRun カスタム リソースをデプロイする必要があります。

    gcloud

    gcloud container fleet cloudrun apply --gke-cluster=CLUSTER_LOCATION/CLUSTER_NAME --config=CONFIG_FILE
    

    以下を置き換えます。

    • CLUSTER_LOCATION: クラスタが配置されているリージョンまたはゾーン
    • CLUSTER_NAME: クラスタの ID またはクラスタの完全修飾識別子。
    • CONFIG_FILE: cloudRun カスタム リソースへのファイル名の相対パス。(例: cloudrunanthos.yaml)。

    詳細とその他のオプションについては、gcloud container fleet cloudrun apply のリファレンスをご覧ください。

    kubectl

    kubectl apply --kubeconfig=KUBECONFIG --filename CONFIG_FILE
    

    以下を置き換えます。

    • KUBECONFIG: kubectl 構成ファイルへの絶対パス。
    • CONFIG_FILE は、cloudRun カスタム リソース定義のファイル名と相対パスに置き換えます(例: cloudrunanthos.yaml)。

    詳細と他のオプションについては、kubectl apply のリファレンスをご覧ください。

  4. クラスタで Knative serving が有効になっていることを確認します。
    1. Google Cloud コンソールを開きます。

      [GKE クラスタ] に移動

    2. クラスタの名前をクリックして、詳細ペインを開きます。

    3. 次のコマンドを実行して、Knative serving バージョンの詳細が表示されるかどうかを確認します。kubectl get namespace knative-serving -o 'go-template={{index .metadata.labels "serving.knative.dev/release"}}'
    4. knative-servingappdevexperience の名前空間で、Knative serving 固有のデプロイがすべて実行中であることを確認します。

次のステップ

Knative serving のインストールを設定する