Google Cloud の外部での Knative serving サービスのインストール

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

VMware 上の Knative serving については、一般提供レベルのインストール ガイドをご覧ください。

次の GKE クラスタのサポートがプレビュー版で利用できます。

このページで説明する手順に沿って、Knative serving の新規インストールを構成するか、既存のフリート インストールを更新します。

始める前に

インストールの前提条件を満たしていることを確認してください。

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

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

Google Cloud の外部にある GKE クラスタ用に CloudRun カスタム リソースを手動で作成するには、以下の操作を行います。

  1. 必要なモニタリング指標の書き込みロールmonitoring.metricWriter)が付与されたサービス アカウントを作成するか、既存のサービス アカウントが必要です。

    • 新しいサービス アカウントを作成して鍵をダウンロードするには、サービス アカウントの使用をご覧ください。

    • 必要な権限を持つ既存のサービス アカウントがある場合は、そのサービス アカウントを作成したときにダウンロードしたキーを探します。

  2. 使用中の GKE クラスタで Cloud Monitoring が有効になっていることを確認します。

  3. knative-serving Namespace を作成します。

    kubectl create namespace knative-serving
    
  4. monitoring.metricWriter 権限を持つサービス アカウントを保持する Secret を knative-serving Namespace に作成します。

    kubectl create secret -n knative-serving generic SECRET_NAME --from-file=PATH_TO_KEY_FILE/SECRET_KEY
    

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

    • SECRET_NAME: Secret に選択した名前。
    • SECRET_KEY: 認証情報が含まれるファイルの名前。例: key.json
    • PATH_TO_KEY_FILE: SECRET_KEY のディレクトリのパス。

    オプション フラグなどの詳細については、kubectl create secret リファレンスをご覧ください。

  5. 次の属性を使用して YAML ファイル(cloudrunanthos.yaml など)を作成します。

    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    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 --kubeconfig=KUBECONFIG --context=CONTEXT --config=CONFIG_FILE
    

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

    • KUBECONFIG: kubectl 構成ファイルの絶対パス。
    • CONTEXT: kubectl 構成ファイル内の接続に使用するコンテキスト名。
    • 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 のインストールを設定する