ゾーンクラスタを作成する


このドキュメントでは、Google Kubernetes Engine(GKE)のデフォルトの機能を使用して標準のゾーンクラスタを作成する方法について説明します。ゾーンクラスタには、1 つのゾーン内に 1 つのコントロール プレーンが含まれています。可用性の要件に応じて、ゾーンクラスタのノードを単一のゾーンに分散するか、複数のゾーンに分散するかを選択できます。

クラスタの可用性のタイプについては、クラスタ構成の選択についてをご覧ください。

シングルゾーンとマルチゾーン

シングルゾーン クラスタには、1 つのゾーンで動作する 1 つのコントロール プレーンが含まれています。このコントロール プレーンは、同じゾーンで動作するノード上のワークロードを管理します。ワークロードを単一のゾーンで実行する場合、ゾーンが停止した場合、このワークロードは使用できません。

マルチゾーン クラスタのノードは複数のゾーンで実行されますが、コントロール プレーンのレプリカは 1 つだけです。複数のゾーンでワークロードを実行していて、ゾーンが停止した場合、そのゾーンではワークロードが中断されますが、他のゾーンで引き続き実行可能です。

コントロール プレーンの可用性を高めるには、これらに代えてリージョン クラスタを作成することを検討してください。リージョン クラスタでは、コントロール プレーンがリージョン内の複数のゾーンに複製されます。

始める前に

作業を始める前に、次のことを確認してください。

  • Google Kubernetes Engine API を有効にします。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化します。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得します。
  • マルチゾーン クラスタは、シングルゾーン クラスタよりも多くのリソースを使用します。マルチゾーン クラスタを作成する場合は、十分な割り当てがあることを確認してください。
  • クラスタを作成するための適切な権限があることを確認します。少なくとも、Kubernetes Engine Cluster 管理者である必要があります。
  • 新しいクラスタをフリート(制限付きアクセスのみ)に登録する場合は、必要な API と権限があることを確認してください。

ゾーンクラスタを作成する

gcloud CLI または Google Cloud コンソールを使用して、ゾーンクラスタを作成できます。

Cloud Code for VS Code を使用して GKE アプリケーションを開発している場合は、Cloud Code でクラスタを作成してみてください。

gcloud

gcloud CLI でゾーンクラスタを作成するには、次のいずれかのコマンドを使用します。

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

  • CLUSTER_NAME: 新しいクラスタの名前。
  • CHANNEL: リリース チャネルのタイプ。rapidregularstableNone のいずれかに指定できます。--cluster-version--release-channel--no-enable-autoupgrade--no-enable-autorepair のうち少なくとも 1 つのフラグが指定されていない限り、デフォルトではクラスタは regular リリース チャネルに登録されます。
  • COMPUTE_ZONE: クラスタ コントロール プレーンのコンピューティング ゾーン
  • VERSION: クラスタに指定するバージョン
  • COMPUTE_ZONE,COMPUTE_ZONE1,[...]: ノードが作成されるゾーン。クラスタに必要な数だけゾーンを指定できます。すべてのゾーンは、--zone フラグで指定された、クラスタのコントロール プレーンと同じリージョンに存在する必要があります。ゾーンクラスタの場合、--node-locations にはクラスタのプライマリ ゾーンが含まれている必要があります。

次のコマンドでは、必要に応じて --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com フラグを使用して、Compute Engine のデフォルト サービス アカウントの代わりに、クラスタの最初のノードプール内のノードが使用する別の IAM サービス アカウントを指定できます。このフラグは省略可能ですが、ノードに必要以上の権限が付与されないように、最小限の権限を持つサービス アカウントを作成して使用することを強くおすすめします。

特定のリリース チャネルを使用する場合:

特定のリリース チャネルを使用して新しいクラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --zone COMPUTE_ZONE \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

特定のバージョンを使用する場合:

特定のクラスタ バージョンを使用して新しいクラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create CLUSTER_NAME \
    --cluster-version VERSION \
    --zone COMPUTE_ZONE \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

静的なデフォルト バージョンを使用する場合:

静的デフォルト クラスタ バージョンを使用して新しいクラスタを作成するためにクラスタ バージョンを指定する必要はありませんが、リリース チャネルを None に設定する必要があります。

gcloud container clusters create CLUSTER_NAME \
    --release-channel None \
    --zone COMPUTE_ZONE \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

次のコマンドは、example-cluster という名前のマルチゾーン クラスタを作成します。クラスタ コントロール プレーンは us-central-a ゾーンにあり、3 つのノードのロケーションがあります。クラスタは、regular リリース チャンネルに登録されます。

--num-nodes フラグを省略した場合、クラスタがデフォルトでゾーンごとに作成するノードの数は 3 つです。ゾーンが 3 つ指定されているため、このコマンドは us-central1-aus-central1-bus-central1-c のそれぞれにノードが 3 つずつ含まれる、9 ノードのクラスタを作成します。

gcloud container clusters create example-cluster \
    --zone us-central1-a \
    --node-locations us-central1-a,us-central1-b,us-central1-c

コンソール

Google Cloud コンソールでゾーンクラスタを作成するには、次のタスクを実行します。

  1. Google Cloud コンソールで Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. [ 作成] をクリックします。

  3. [クラスタの基本] セクションで、次の操作を行います。

    1. クラスタの名前を [名前] に入力します。
    2. [ロケーション タイプ] には [ゾーン] を選択し、クラスタに使用するゾーンを選択します。
    3. マルチゾーン クラスタを作成する場合は、[デフォルトのノードのロケーションを指定する] チェックボックスをオンにして、ノードプールを実行する追加のゾーンを選択します。
    4. [コントロール プレーンのバージョン] を選択します。デフォルトの [リリース チャンネル] を選択することをおすすめします。静的バージョンを指定する必要がある場合は、ノードプールの自動アップグレードが有効になっていることを確認してください。

  4. 省略可(GKE Enterprise で利用可能): 新しいクラスタをフリートに登録する場合は、[フリート登録] セクションに移動し、Google Cloud コンソールで新しいクラスタを作成して登録するの手順に沿ってクラスタの登録を完了します。

  5. ナビゲーション ペインの [ノードプール] で [default-pool] をクリックします。

  6. [ノードプールの詳細] セクションで、次の操作を行います。

    1. [名前] に、デフォルトのノードプールの名前を入力します。
    2. 静的バージョン ノードの場合は、ノードのバージョンを選択します。
    3. [ノード数] に、クラスタ内に作成するノードの数を入力します。ノードとそのリソース(ファイアウォール ルートなど)に使用できるリソース割り当てが必要です。
  7. ナビゲーション パネルで、[ノードプール] の下の [ノード] をクリックします。

  8. [イメージの種類] プルダウン リストから、目的のノードイメージを選択します。

  9. インスタンスに使用するデフォルトの [マシンの構成] を選択します。マシンタイプごとに課金方法は異なります。デフォルトのマシンタイプは e2-medium です。マシンタイプごとの料金については、マシンタイプの料金表をご覧ください。

  10. [ブートディスクの種類] プルダウン リストから、目的のディスクの種類を選択します。

  11. [ブートディスクのサイズ] を入力します。

  12. 省略可: ナビゲーション パネルで、[ノードプール] の下の [セキュリティ] をクリックします。

  13. 省略可: [サービス アカウント] プルダウン リストから、Google Cloud APIs を呼び出すときにアプリケーションが使用する Identity and Access Management(IAM)サービス アカウントを選択します。デフォルトのサービス アカウントではなく、最小限の権限を持つサービス アカウントを使用して、ノードに必要以上の権限が付与されないようにすることをおすすめします。

  14. [作成] をクリックします。

kubectl を使用してクラスタを操作する

クラスタを作成した後、コマンドラインからクラスタとやり取りするには、その前に kubectl を構成する必要があります。

クラスタ テンプレート

GKE は以前、クラスタのテンプレートをサポートしていました。これらのテンプレートは Google Cloud コンソールからは削除されましたが、現在も次のリンクからアクセスできます。

次のステップ

使ってみる

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

GKE の無料トライアル