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

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

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

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

  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
    例:
    次の例では、Knative serving が GKE アドオンによって my-addon-cluster クラスタにインストールされ、外部トラフィックを処理するように構成されていることを示します。
    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.yamlspec セクションに次の属性を 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 Namespace のサービス アカウントの Secret の名前。
      • SECRET_KEY: knative-serving Namespace のサービス アカウントの Secret のキー。例: key.json

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

この CloudRun カスタム リソースの例では、my-gcp-logging-secret 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 機能コンポーネントが有効になっていることを確認します。

    コンソール

    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 の Namespace で、Knative serving 固有の Deployment すべて実行中であることを確認します。

次のステップ

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