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


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

作成可能なクラスタのタイプについては、こちらをご覧ください。

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

シングルゾーン クラスタには、1 つのゾーンで動作する 1 つのコントロール プレーンが含まれています。このコントロール プレーンは、同じゾーンで動作するノード上のワークロードを管理します。

マルチゾーン クラスタのノードは複数のゾーンで実行されますが、コントロール プレーンのレプリカは 1 つだけです。コントロール プレーンの可用性を高めるには、代わりにリージョン クラスタを作成することを検討してください。リージョン クラスタでは、コントロール プレーンがリージョン内の複数のゾーンに複製されます。

始める前に

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

  • Google Kubernetes Engine API が有効になっていることを確認します。
  • Google Kubernetes Engine API の有効化
  • Google Cloud CLI がインストールされていることを確認します。
  • 次のいずれかの方法で、プロジェクトにデフォルトの Google Cloud CLI 設定をセットアップします。
    • プロジェクトのデフォルトの設定全般を確認する場合は、gcloud init を使用します。
    • gcloud config を使用して、プロジェクト ID、ゾーン、リージョンを個別に設定します。

    gcloud init

    1. gcloud init を実行して、次の操作を行います。

      gcloud init

      リモート サーバーで SSH を使用している場合は、--console-only フラグを指定して、コマンドがブラウザを起動しないようにします。

      gcloud init --console-only
    2. Google Cloud アカウントを使用できるように、gcloud CLI の承認手順を行います。
    3. 新しい構成を作成するか、既存の構成を選択します。
    4. Google Cloud プロジェクトを選択します。
    5. デフォルトの Compute Engine ゾーンを選択します。
    6. デフォルトの Compute Engine リージョンを選択します。

    gcloud config

    1. デフォルトのプロジェクト ID を設定します。
      gcloud config set project PROJECT_ID
    2. デフォルトの Compute Engine リージョン(例: us-central1)を設定します。
      gcloud config set compute/region COMPUTE_REGION
    3. デフォルトの Compute Engine ゾーン(例: us-central1-c)を設定します。
      gcloud config set compute/zone COMPUTE_ZONE
    4. gcloud を最新バージョンに更新します。
      gcloud components update

    デフォルトの場所を設定することで、gcloud CLI のエラー(One of [--zone, --region] must be supplied: Please specify location など)を防止できます。

  • マルチゾーン クラスタは、シングルゾーン クラスタよりも多くのリソースを使用します。マルチゾーン クラスタを作成する場合は、十分な割り当てがあることを確認してください。
  • クラスタを作成するための適切な権限があることを確認します。少なくとも、Kubernetes Engine Cluster 管理者である必要があります。

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

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

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

gcloud

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

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

  • CLUSTER_NAME: 新しいクラスタの名前。
  • CHANNEL: リリース チャネルのタイプ。rapidregularstableNone のいずれかに指定できます。--cluster-version--release-channel--no-enable-autoupgrade--no-enable-autorepair の各フラグが指定されていない場合、クラスタは、デフォルトで 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

Console

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

  1. Cloud Console で Google Kubernetes Engine ページに移動します。

    Google Kubernetes Engine に移動

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

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

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

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

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

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

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

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

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

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

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

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

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

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

クラスタ テンプレート

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

次のステップ

使ってみる

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

GKE の無料トライアル