デプロイ後にアプリケーションを確認する

このクイックスタートでは、デリバリー パイプラインの一部として、Cloud Deploy を使用してデプロイしたアプリケーションを確認する方法について説明します。

このクイックスタートでは、以下の内容を行います。

  1. GKE クラスタを 1 つ、または Cloud Run サービスを 1 つ作成します。

    GKE 接続クラスタでもデプロイ検証を使用できますが、このクイックスタートでは GKE と Cloud Run のみを使用します。

  2. Cloud Deploy デリバリー パイプラインとデプロイ ターゲットを定義します。

    デリバリー パイプラインには 1 つのステージのみが含まれ、1 つのターゲットのみが使用されます。 デプロイ検証の構成は、stage スタンザで定義します。

  3. リリースに必要な Skaffold 構成と、Kubernetes マニフェストまたは Cloud Run サービス定義のいずれかを作成します。

  4. リリースを作成します。リリースは自動的にターゲットにデプロイされます。

    アプリケーションがデプロイされると、 検証フェーズとして ロールアウトのフェーズとして実行されます。

  5. コンソールで Cloud Deploy の [ロールアウトの詳細] ページを使用して、Cloud Build ログで検証の結果を表示します。Google Cloud

始める前に

  1. アカウントにログインします Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Google Cloud CLI をインストールします。

  6. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  7. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Google Cloud CLI をインストールします。

  12. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  13. gcloud CLI を初期化するには、次のコマンドを実行します:

    gcloud init
  14. CLI がすでにインストールされている場合は、最新バージョンを実行していることを確認してください。

    gcloud components update
    

  15. デフォルトの Compute Engine サービス アカウントに十分な権限があることを確認します。

    このサービス アカウントにはすでに必要な権限が付与されている場合があります。これらの手順は、デフォルトのサービス アカウントの自動的なロール付与を無効にするプロジェクトに含まれています。

    1. 最初に、clouddeploy.jobRunner ロールを追加します。

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/clouddeploy.jobRunner"
      

    2. 特定のランタイム向けのデベロッパー ロールを追加します。
      • GKE の場合:

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
            --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
            --role="roles/container.developer"
        

      • Cloud Run の場合:

        gcloud projects add-iam-policy-binding PROJECT_ID \
            --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
            --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
            --role="roles/run.developer"
        

    3. iam.serviceAccountUser ロールを追加します。これには、ランタイムにデプロイする actAs 権限が含まれます。

      gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
          --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
          --role="roles/iam.serviceAccountUser" \
          --project=PROJECT_ID
      

ランタイム環境を作成する

Cloud Run にデプロイする場合は、以下のコマンドをスキップできます

GKE の場合は、デフォルト設定でクラスタ deploy-verification-cluster を 1 つ作成します。クラスタの Kubernetes API エンドポイントは、公共のインターネットからネットワークに到達可能である必要があります。GKE クラスタには、デフォルトで外部からアクセス可能です。

gcloud container clusters create-auto deploy-verification-cluster \
                 --project=PROJECT_ID \
                 --region=us-central1

デリバリー パイプラインとターゲットの作成

パイプラインとターゲットは、1 つのファイルまたは個別のファイルで定義できます。このクイックスタートでは、1 つのファイルを作成します。

  1. ターミナル ウィンドウを開きます。

  2. 新しいディレクトリを作成し、そのディレクトリに移動します。

    GKE

    mkdir deploy-verification-gke-quickstart
    cd deploy-verification-gke-quickstart
    

    Cloud Run

    mkdir deploy-verification-run-quickstart
    cd deploy-verification-run-quickstart
    
  3. デリバリー パイプラインとターゲット定義を作成:

    GKE

    deploy-verification-gke-quickstart ディレクトリに、次の内容を含む新しい clouddeploy.yaml ファイルを作成します。

    apiVersion: deploy.cloud.google.com/v1
    kind: DeliveryPipeline
    metadata:
      name: deploy-verification-demo-app-gke-1
    description: main application pipeline
    serialPipeline:
      stages:
      - targetId: verify-staging
        profiles: []
        strategy:
          standard:
            verify:
              tasks:
              - type: container
                image: ubuntu
                command: ["/bin/sh"]
                args: ["-c", 'echo "Your test or tests would go here."' ]
    ---
    
    apiVersion: deploy.cloud.google.com/v1
    kind: Target
    metadata:
      name: verify-staging
    description: verification staging cluster
    gke:
      cluster: projects/PROJECT_ID/locations/us-central1/clusters/deploy-verification-cluster
    

    Cloud Run

    deploy-verification-run-quickstart ディレクトリに、次の内容を含む新しい clouddeploy.yaml ファイルを作成します。

    apiVersion: deploy.cloud.google.com/v1
    kind: DeliveryPipeline
    metadata:
      name: deploy-verification-demo-app-run-1
    description: main application pipeline
    serialPipeline:
      stages:
      - targetId: verify-staging
        profiles: []
        strategy:
          standard:
            verify:
              tasks:
              - type: container
                image: ubuntu
                command: