単一リージョンの GKE クラスタとワークロード

単一のロケーションでリソース管理に最適化された費用対効果の高い Google Kubernetes Engine(GKE)クラスタとワークロードを作成します。このガイドでは、基本的なウェブ アプリケーションのデプロイに使用できる次のテンプレートについて説明します。

  • 単一リージョン GKE クラスタ テンプレート: 単一リージョン アプリケーションに必要な基盤となる インフラストラクチャを作成します。このテンプレートは、リソース管理に最適化された安全なプライベート GKE クラスタを設定します。

  • 単一リージョン GKE ワークロードプレビュー): 基本的なウェブ アプリケーションの構成を含む Helm チャートをデプロイします。 ワークロードは、CPU 負荷に基づいてスケーリングし、自発的な中断中にアプリケーションの可用性を確保するように構成されています。

たとえば、クラスタ テンプレートとワークロード テンプレートをデプロイして、次のようなビジネスニーズに対応できます。

ビジネスニーズ 実装
社内基幹業務アプリケーション 内部アプリケーションには、特定のリージョンでの厳格なデータ所在地、予測可能な内部使用の費用対効果、高い信頼性が必要です。 単一リージョン デプロイを使用して、データの局所性を確保します。自動スケーリングを使用して、内部ユーザーの需要に合わせてリソースを効率的に管理します。
リージョン e コマース バックエンド e コマース プラットフォームには、継続的なサービスを確保するための特定のリージョンでの高可用性、販売イベント中のトラフィックの急増に対応するためのスケーラビリティ、顧客の取引とデータの堅牢なセキュリティが必要です。 マルチゾーン クラスタ構成を作成すると、リージョンでの高可用性が実現します。セキュアブート構成を使用して、機密性の高い顧客データのセキュリティ体制を強化します。
リージョン データ処理および分析プラットフォーム 大規模なデータセットを処理して分析するためのプラットフォームには、コンプライアンスとパフォーマンスのためのデータの局所性、断続的なバッチジョブの費用対効果の高いコンピューティング、データへの安全なアクセスが必要です。 単一リージョン デプロイにより、データが地理的境界内に保持されます。大規模な処理タスクとアイドル期間のリソースをスケーリングします。

アーキテクチャ

次の図は、テンプレートのコンポーネントと接続を示しています。

設計キャンバスでノードプールに接続されたクラスタ

このテンプレートのコンポーネント構成について説明します。

  • GKE Standard クラスタ: ワークロードが実行される費用対効果の高い単一リージョン クラスタ。

    次の表に、このテンプレートのクラスタ構成を示します。

    構成 目的
    locationus-central1 に設定されています。 クラスタ リソースを単一の地理的領域に限定し、データの局所性を確保して、リージョン間のデータ転送コストとレイテンシを最小限に抑えます。
    initial_node_count1 に設定されています。 クラスタが最初にプロビジョニングされるときに、クラスタのデフォルトのノードプールに作成する初期ノードを定義します。リージョン クラスタの場合、これはゾーンあたりのノード数です。
    release_channel{"channel":"REGULAR"} に設定されています。 GKE クラスタが安定した予測可能な更新を受け取り、新機能と信頼性のバランスが取れるようにします。
    enable_intranode_visibilitytrue に設定されています。 VPC フローログでノード内トラフィックの可視性を有効にします。これは、ネットワーク モニタリング、トラブルシューティング、セキュリティ分析に必要です。
    control_plane_endpoints_config{"dns_endpoint_config":{"allow_external_traffic":true}} に設定されています。 GKE コントロール プレーンは、Virtual Private Cloud(VPC)ネットワークの外部からクラスタを管理できるように、一般公開されるように構成されています。
  • GKE ノードプール: アプリケーションのコンテナを実行するワーカーノードのグループ。

    次の表に、このテンプレートのノードプール構成を示します。

    構成 目的
    locationus-central1 に設定されています。 このノードプールが作成されるリージョンを指定します。クラスタのロケーションと同様に、ノードプール リソースが単一の地理的領域に配置されます。
    autoscaling{"max_node_count":3, "min_node_count":1} に設定されています。 このノードプールのクラスタ オートスケーラーを構成します。 ノードプールに常に 1 つ以上のノードが維持され、上限を 3 つのノードに設定して、コストとリソース消費を制御します。
    node_config{"machine_type":"e2-medium", "oauth_scopes":["https://www.googleapis.com/auth/cloud-platform"], "shielded_instance_config":{"enable_secure_boot":true}} に設定されています。 このプール内のノードの構成をグループ化します。マシンタイプは、汎用ワークロードに適した CPU とメモリのバランスです。サービス アカウントに付与されるアクセス権を定義します。Shielded VM インスタンスのセキュアブートを有効にし、ブートレベルのマルウェアから保護します。

Helm チャートの構成

次の表に、GKE で基本的なウェブ アプリケーションをデプロイしてスケーリングするためにカスタマイズされた Helm チャートの構成を示します。

構成 目的
replicaCount: 2 初期レベルの冗長性を確立するために、2 つの初期レプリカを作成します。
image.repository: gcr.io/google-samples/hello-app 基本的なウェブサーバーの Docker イメージを使用します。
resources.requests: {"cpu": "100m", "memory": "128Mi"} 各 Pod に予約される CPU とメモリの最小量を指定し、利用可能なリソースと効率的なスケジューリングを確保します。
hpa: {"enabled": true, "minReplicas": 2, "maxReplicas": 10, "targetCPUUtilizationPercentage": 60} 水平 Pod オートスケーラーを有効にして、CPU 使用率に基づいて Pod の数を 2 ~ 10 の間で自動的に調整し、パフォーマンスと費用対効果を確保します。
service: {"type": "ClusterIP", "port": 80} 標準の HTTP ポートでクラスタ内の内部アクセス用にサービスを構成します。
pdb: {"enabled": true, "minAvailable": 1} Pod Disruption Budget を有効にして、自発的な中断中に少なくとも 1 つのレプリカが使用可能な状態を維持し、高可用性を維持します。

ウェブ アプリケーションを作成する

ウェブ アプリケーションをデプロイするには、 単一リージョン GKE クラスタとワークロード テンプレートを使用します。

ウェブ インフラストラクチャをデプロイする

単一リージョン GKE クラスタ テンプレートを構成してデプロイし、ウェブ ワークロードが実行される基盤となるインフラストラクチャを作成します。

  1. 単一リージョン GKE クラスタ テンプレートを複製して、アプリケーションとしてデプロイします。

    選択したデプロイ プロジェクトに GKE クラスタが作成されます。

  2. コンポーネントを構成します。詳しくは以下をご覧ください。

  3. [デプロイ] をクリックします。数分後にアプリケーションがデプロイされます。

  4. [アプリケーションの詳細] パネルで、[出力] タブをクリックします。

  5. アプリケーションの cluster_id を確認します。この情報は、Helm チャートをデプロイするときに使用します。

ウェブ ワークロードをデプロイする

単一リージョン GKE ワークロード テンプレートを使用して、作成したクラスタにウェブ ワークロードをデプロイします。ウェブ ワークロード構成を含む Helm チャートをデプロイします。

  1. [Google カタログ] ページの [単一リージョン GKE ワークロード] テンプレートで、[新しいアプリケーションを作成] をクリックします。

  2. [名前] フィールドに、アプリケーションの一意の名前を入力します。

  3. [GKE デプロイ ターゲット] 領域で、次の操作を行います。

    1. [**プロジェクト リスト**] から、 _単一リージョン GKE クラスタ_ アプリケーションから GKE クラスタをデプロイしたプロジェクトを選択します。

    2. [リージョン] リストから、GKE クラスタをデプロイしたリージョンを選択します。

    3. [クラスタ] リストから、デプロイされた GKE クラスタを選択します。

    4. [Namespace] リストに、GKE クラスタをデプロイした Namespace を入力します。名前を変更していない場合は、「default」と入力します。

    5. [アプリケーションを作成] をクリックします。

    アプリケーションが作成され、構成ファイルが表示されます。

  4. [Helm チャート] パネルで、次の操作を行います。

    1. 構成の詳細を確認します。

    2. 省略可: 独自のニーズに合わせて構成をカスタマイズします。

    3. Helm チャートをクラスタにデプロイするには、[デプロイ] をクリックします。

      詳細な手順については、アプリケーションをデプロイするをご覧ください。

    数分後、Helm チャートの構成が GKE クラスタにデプロイされます。

次のステップ