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

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

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

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

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

始める前に

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

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

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

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

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

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

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

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

  3. knative-serving 名前空間を作成します。

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

    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 名前空間のサービス アカウントの 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 機能コンポーネントが有効になっていることを確認します。

    コンソール

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

    GKE Enterprise の [機能] に移動

    コマンドライン

    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 Enterprise クラスタに移動

    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 のインストールを設定する