環境の設定とアップグレードの準備

以前の Knative serving のインストールをアップグレードするための準備を行い、コマンドライン環境の設定、環境変数の作成、移行スクリプトのダウンロードを行って、ワークロードを移行します。

始める前に

  • アップグレードの前に要件を満たしていることをまずレビューし、確認する必要があります。

  • Cloud Shell には、デフォルトで gcloud コマンドと kubectl コマンドの最新バージョンが含まれています。ローカルマシンのコマンドライン環境を使用する場合は、次の最小要件を満たしている必要があります。

    • gcloud バージョン 346.0.0 以降
    • kubectl クライアント バージョン 1.21 以降

    コマンドライン ツールの設定の詳細を確認する

  • このページの準備の手順は、アップグレードと移行プロセス全体で行う必要があります。

    重要: このプロセス中に使用されるすべてのコマンドは、以下に設定する環境変数に依存します。たとえば、Cloud Shell やセッション タイムアウトを閉じる場合は、必要な環境変数がリセットされるようにする必要があります。

環境の設定

  1. Cloud Shell を使用するには、Google Cloud コンソールで Cloud Shell を開きます。

    Cloud Shell をアクティブにする

    重要: Cloud Shell には使用上限があり、タイムアウトする可能性があります。セッションがタイムアウトした場合は、必要な環境変数がリセットされるようにする必要があります。

  2. 次の必要な環境変数を作成します。

    1. Google Cloud プロジェクトとクラスタの詳細用の変数を設定します。

      export PROJECT_ID=PROJECT_ID
      export CLUSTER_NAME=CLUSTER_NAME
      export CLUSTER_LOCATION=CLUSTER_LOCATION
      

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

      • PROJECT_ID: Google Cloud プロジェクトの ID。
      • CLUSTER_NAME: クラスタの ID またはクラスタの完全修飾識別子。
      • CLUSTER_LOCATION: クラスタが配置されているリージョンまたはゾーン
    2. 構成によっては、クラスタ内のトラフィックを処理している Ingress ゲートウェイを特定する必要があります。実際に構成され、トラフィックを処理している Istio のバージョンを特定することが重要です。

      • バンドル バージョンの Istio を使用している場合は、gke-system 名前空間で Ingress サービス名が istio-ingress であることを確認します。

        kubectl get svc istio-ingress -n gke-system
        

        結果: 構成の詳細情報が返されます。

      • Istio アドオン」をインストールした場合は、IP を取得して、どの Ingress ゲートウェイが構成され、実際にトラフィックを処理しているかを決定する必要があります。サービスのアドレスを確認し、ドメインで構成されているものを特定します。

        1. 各 Ingress サービスの EXTERNAL-IP アドレスを取得します。

          「Istio のバンドル バージョン」(istio-ingress)と「Istio アドオン」(istio-ingressgateway)の両方の Ingress サービスの構成の詳細情報を取得するには、次のコマンドを実行します。

          kubectl get svc istio-ingress -n gke-system
          kubectl get svc istio-ingressgateway -n istio-system
          

          出力例:

          各サービスの EXTERNAL-IP の値をメモします。

           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                     AGE
           istio-ingress        LoadBalancer 11.11.1.111 12.345.678.910 15020:31265/TCP,80:30059/TCP,443:32004/TCP  8d
          
           NAME                 TYPE         CLUSTER-IP  EXTERNAL-IP    PORT(S)                                                                     AGE
           istio-ingressgateway LoadBalancer 22.22.2.222 10.987.654.321 15021:32747/TCP,80:30695/TCP,443:32695/TCP,15012:32369/TCP,15443:30909/TCP  88d
          
        2. カスタム ドメインの DNS レコードを使用して、トラフィックを処理するように構成されている外部 IP アドレスを特定します。

          1. Knative serving ドメイン マッピング ページに移動します。

            [ドメイン マッピング] に移動

          2. サービスの右側にある縦に並んだ 3 つの点のアイコンをクリックして [DNS レコード] をクリックし、すべての DNS レコードを表示します。

            DNS レコードを選択

            上記の例を使用すると、DNSレコード構成が istio-ingressgateway サービスの 10.987.654.321 IPアドレスに設定されている場合、Istioアドオン入力ゲートウェイが使用されてトラフィックを処理しています。

    3. クラスタのトラフィックを処理している Ingress サービスの名前と名前空間を変数に設定します。

      export INGRESS_NAME=INGRESS_NAME
      export INGRESS_NAMESPACE=INGRESS_NAMESPACE
      

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

      • INGRESS_NAME は、前のステップで特定した Ingress サービスの名前に置き換えます。

      • INGRESS_NAMESPACE は、前のステップで特定した Ingress サービスの名前空間に置き換えます。

  3. Google Cloud CLI を構成します。

    gcloud config set project ${PROJECT_ID}
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION}
    
  4. 限定公開クラスタの場合:

    • 移行スクリプトを実行するクライアントからすでに限定公開クラスタにアクセスできる場合は、次のステップにスキップできます。

    • 限定公開クラスタで master-authorized-network が有効になっている場合、クライアントの IP アドレスを master-authorized-networks 許可リストに追加することで、移行スクリプトを実行するクライアントからのアクセスを有効にできます。

      gcloud container clusters update ${CLUSTER_NAME} \
          --region=${CLUSTER_LOCATION} \
          --enable-master-authorized-networks \
          --master-authorized-networks $(curl ifconfig.me)/32
      
  5. Knative serving 移行スクリプトをダウンロードします。

    TMP_DIR=$(mktemp -d)
    gsutil cp gs://crfa-to-hub-upgrade/migration-addon.sh $TMP_DIR
    cd $TMP_DIR
    chmod +x ./migration-addon.sh
    
  6. 次のコマンドを実行して「ゼロへのスケーリング」を無効にします。無効にしない場合は、マスターノードの更新時にスケーリングが失敗し、エラーが発生します。

    kubectl patch cm config-autoscaler -n knative-serving -p '{"data":{"enable-scale-to-zero": "false"}}'
    

    このアップグレードと移行プロセスの最終ステップは、「ゼロへのスケーリング」を再度有効にすることです。

次のステップ

GKE アドオンをアンインストールする