クラスタの作成

このページでは、Google Kubernetes Engine でクラスタを作成する方法を説明します。クラスタの仕組みについては、クラスタのアーキテクチャをご覧ください。

始める前に

このタスクの準備として、次の手順を行います。

  • Google Kubernetes Engine API が有効になっていることを確認します。
  • Google Kubernetes Engine API の有効化
  • Cloud SDK がインストール済みであることを確認します。
  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project [PROJECT_ID]
  • ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone [COMPUTE_ZONE]
  • リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud を最新バージョンに更新します。
    gcloud components update

クラスタのタイプ

GKE では、次の 4 つのタイプのクラスタを作成できます。

ゾーンクラスタ
ゾーンクラスタは、リージョン内の 1 つ以上のコンピューティング ゾーンで稼働します。マルチゾーン クラスタは、単一のリージョン内の複数のコンピューティング ゾーンでノードを実行します。ゾーンクラスタは、単一のクラスタ マスターを実行します。
リージョン クラスタ
リージョン クラスタは、3 つのコンピューティング ゾーンのそれぞれで 1 つのクラスタ マスターを実行し、2 つ以上のコンピューティング ゾーンでノードを実行します。
限定公開クラスタ
限定公開クラスタとは、デフォルトでクラスタ マスターとノードを公共のインターネットから隠すゾーンクラスタまたはリージョン クラスタのことです。
アルファ クラスタ
アルファ クラスタとは、アルファ版の Kubernetes 機能を有効にした状態で稼働する、試験的なゾーンクラスタまたはリージョン クラスタのことです。アルファ クラスタは 30 日後に有効期限が切れ、アップグレードできず、セキュリティ更新プログラムが配信されないため、本番環境での使用はサポートされていません。

リリース チャンネルまたはバージョンの指定

クラスタを作成またはアップグレードする場合は、リリース チャンネルかクラスタの正確なバージョンのいずれかを指定できます。各クラスタのワークロードのニーズに応じて、クラスタを最新の状態に安定して安全に保つことができるため、リリース チャンネルの使用をおすすめします。

VPC ネイティブ クラスタとルートベース クラスタ

Google Kubernetes Engine では、あるポッドから別のポッドにトラフィックをルーティングする方法によってクラスタを区別できます。エイリアス IP を使用するクラスタは、VPC ネイティブ クラスタと呼ばれています。Google Cloud Platform のルートを使用するクラスタは、ルートベースのクラスタと呼ばれています。

VPC ネイティブは、新しいクラスタに推奨されるネットワーク モードです。

デフォルトのクラスタ ネットワーク モードは、クラスタの作成方法によって異なります。詳しくは、こちらのグラフをご覧ください。

クラスタ テンプレート

GCP Console を使用して新しいクラスタを作成する場合は、使用可能なクラスタ テンプレートのすべてが表示されます。デフォルトでは、標準クラスタ テンプレートが選択されます。テンプレートに含まれているプリセットをはじめ、特定のテンプレートについて調べるには、そのエントリをクリックして詳細を表示します。プリセットは、ページの右側にある情報パネルに表示されます。

以下のテンプレートをご利用いただけます。

  • 標準クラスタ: 以前のデフォルトに相当する、新しい 3 ノードのゾーンクラスタです。
  • 最初のクラスタ: それほど強力ではないノードを実行する小規模なクラスタです。自動スケーリングなどの高度な機能のいくつかは無効にされます。
  • CPU 使用率の高いアプリケーション: 標準クラスタよりも強力なマルチコア CPU を提供するノードを実行するクラスタです。
  • メモリ使用量の多いアプリケーション: かなり強力なマルチコア CPU と大量のメモリを提供するノードを実行するクラスタです。
  • GPU による高速コンピューティング: それほど強力ではないノードで構成されたデフォルトのノードプールと、追加の GPU 対応ノードプールを使用するクラスタです。 自動スケーリングはデフォルトで無効にされます。
  • 高可用性: 所定のリージョンのゾーンごとにクラスタ マスターを利用可能なリージョン クラスタとして構成されます。自動スケーリングとメンテナンス時間枠が有効になります。

テンプレートを選択した後、クラスタをカスタマイズできます。

テンプレートを使用できるだけでなく、既存のクラスタのクローンを作成することもできます。

テンプレートのプリセットをカスタマイズする

クラスタをカスタマイズするには、まず、特定のユースケースに最も適合するテンプレートをクリックします。編集可能なフィールドを変更してから、クラスタを作成できます。

  • クラスタ全体に適用される詳細設定を構成するには、フォームの下の方にある [詳細オプション] をクリックします。
  • 特定のノードプールに含まれるノードの CPU またはメモリを構成するには、そのノードプールに対応する [カスタマイズ] をクリックします。
  • 特定のノードプールの詳細設定を構成するには、[高度な編集] をクリックします。

既存のクラスタのクローンを作成する

既存のクラスタの構成をベースに新しいクラスタを作成する場合は、クラスタ テンプレートを使用するのではなく、[既存クラスタのクローンを作成する] をクリックします。クローンを作成するクラスタをプルダウン メニューから選択します。

複数のクラスタを操作する

ご自身で作成したクラスタ、プロジェクト内で別のユーザーが作成したクラスタ、Google Cloud Platform Console を使用して作成されたクラスタなど、複数のクラスタを使用する場合は、それらのクラスタを操作できるように kubectl コマンドライン ツールを構成する必要があります。

詳細については、kubectl 用のクラスタ アクセスの構成をご覧ください。

ゾーンクラスタ

デフォルトでは、クラスタは単一のコンピューティング ゾーン内に作成されます。マルチゾーン クラスタは、同じリージョン内の複数のゾーンでノードを実行します。単一のゾーンクラスタまたはマルチゾーン クラスタに含まれるすべてのノードは、同じクラスタ マスターによって制御されます。

複数のゾーンでノードを実行するマルチゾーン クラスタを使用して、複数のノード上でアプリケーションを実行すると、アプリケーションの可用性が向上します。この場合、万一ゾーン全体が停止したとしてもダウンタイムを防ぐことができます。

マルチゾーン クラスタの仕組み

マルチゾーン クラスタを初めて作成する場合や、既存のクラスタにゾーンを追加してマルチゾーン クラスタを作成する場合、GKE はすべてのゾーンのリソースサイズを同じにします。

たとえば、それぞれ 4 コアが割り当てられた 2 つのノードをリクエストし、クラスタが 3 つのゾーンにまたがるように設定したとします。この場合、ゾーンごとに 8 コアずつ、合計 24 コアを使用できます。

マルチゾーン クラスタは、ポッドがゾーン間で均等にスケジュールされるよう、複数のゾーンに均等にリソースを分散させます。このようにすることで、可用性と障害復旧性が向上します。コンピューティング リソースがゾーン間で均等に分散していないと、スケジューラがポッドを均等にスケジュールできない場合があります。ポッドの反アフィニティを指定することで、リソースの均等な分散を保証できます。

マルチゾーン クラスタ内のノードプールには、自動的にマルチゾーンの可用性が備わります。これらのノードには、障害ドメインを示す Kubernetes のラベルが適用されます。これにより、Kubernetes スケジューラはこれらのノードを考慮できるようになります。

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

gcloud

gcloud コマンドライン ツールを使用してクラスタを作成するには、gcloud container clusters コマンドのいずれかを使用します。コマンドの最初のバリアントはリリース チャンネルを使用し、2 つ目のバリアントはデフォルトのバージョンを使用します。正確なバージョンを指定するには、--release-channel フラグの代わりに --cluster-version フラグを使用します。

[CLUSTER_NAME] などのプレースホルダ値を適切な値に置き換えます。

リリース チャンネルの使用:

[CHANNEL] を、stableregularrapid のいずれかのリリース チャンネルの名前に置き換えます。本番環境のワークロードでは、rapid チャンネルに登録されているクラスタはサポートされません。

gcloud container clusters create [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] \
    --release-channel [CHANNEL]

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

gcloud container clusters create [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE]

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

[VERSION] を特定のバージョンに置き換えます。

gcloud container clusters create [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] \
    --cluster-version [VERSION]

オプション フラグの完全なリストについては、gcloud container clusters create のドキュメントをご覧ください。

Console

GCP Console を使用してクラスタを作成するには、次の手順を行います。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

  3. [標準クラスタ] テンプレートを選択するか、ワークロードに適切なテンプレートを選択します。

  4. 次のいずれかを選択して、クラスタのバージョンを選択します。

    • クラスタが登録されているリリース チャンネルを選択します。クラスタとノードプールはそのチャンネル内で自動アップグレードされます。
    • 特定の GKE バージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。
    • デフォルトのバージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。

    リリース チャンネルの使用をおすすめします。バージョンを指定する必要がある場合は、自動アップグレードを有効にしておくことをおすすめします。

  5. 必要に応じて、テンプレートをカスタマイズします。次のフィールドに値を入力する必要があります。

    • [名前]: クラスタに付ける名前。プロジェクトとゾーン内で一意にする必要があります。
    • [ロケーション タイプ]: クラスタを構成するすべてのノードを同じゾーン内に作成するか、所定のリージョンの任意のゾーン内に作成できるようにするか。
    • [ゾーン]: [ロケーション タイプ] が [ゾーン] の場合、クラスタを作成する Compute Engine のコンピューティング ゾーン
    • [リージョン]: [ロケーション タイプ] が [リージョン] の場合、クラスタを作成する Compute Engine のコンピューティング ゾーン
    • [ノードプール]:
      • [クラスタサイズ]: クラスタ内に作成するノードの数。ノードとそのリソース(ファイアウォール ルートなど)に使用できるリソース割り当てが必要です。
      • [マシンタイプ]: インスタンスで使用する Compute Engine のマシンタイプ。マシンタイプごとに課金方法は異なります。デフォルトのマシンタイプは n1-standard-1 です。マシンタイプごとの料金については、マシンタイプの料金表をご覧ください。
  6. [作成] をクリックします。

GCP Console でクラスタを作成した後、そのクラスタを操作できるよう kubectl を構成する必要があります。詳細については、kubeconfig エントリの生成をご覧ください。

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

gcloud

マルチゾーン クラスタを作成するには、--zone をクラスタ コントロール プレーンのゾーンに設定し、--node-locations をコントロール プレーンノードが作成されるコンピューティング ゾーンのカンマ区切りリストに設定します。次のいずれかのコマンドを使用します。コマンドの最初のバリアントはリリース チャンネルを使用し、2 つ目のバリアントはデフォルトのバージョンを使用します。正確なバージョンを指定するには、--release-channel フラグの代わりに --cluster-version フラグを使用します。

[CLUSTER-NAME] などのプレースホルダ値を適切な値に置き換えます。

リリース チャンネルの使用:

gcloud container clusters create [CLUSTER_NAME] \
    --release-channel [CHANNEL] \
    --zone [COMPUTE_ZONE] \
    --node-locations [COMPUTE_ZONE],[COMPUTE_ZONE],...]

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

gcloud container clusters create [CLUSTER_NAME] \
    --zone [COMPUTE_ZONE] \
    --node-locations [COMPUTE_ZONE],[COMPUTE_ZONE],[...]

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

[VERSION] を特定のバージョンに置き換えます。

gcloud container clusters create [CLUSTER_NAME] \
    --cluster-version [VERSION] \
    --zone [COMPUTE_ZONE] \
    --zone [COMPUTE_ZONE] \
    --node-locations [COMPUTE_ZONE],[COMPUTE_ZONE],[...]

例:

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

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

Console

マルチゾーン クラスタを作成する手順は次のとおりです。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

  3. [標準クラスタ] テンプレートを選択するか、ワークロードに適切なテンプレートを選択します。

  4. 次のいずれかを選択して、クラスタのバージョンを選択します。

    • クラスタが登録されているリリース チャンネルを選択します。クラスタとノードプールはそのチャンネル内で自動アップグレードされます。
    • 特定の GKE バージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。
    • デフォルトのバージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。

    リリース チャンネルの使用をおすすめします。バージョンを指定する必要がある場合は、自動アップグレードを有効にしておくことをおすすめします。

  5. [ゾーン] プルダウン メニューから、クラスタ コントロール プレーンに必要なゾーンus-central1-a など)を選択します。

  6. 必要に応じてクラスタを構成してから、[詳細オプション] をクリックします。

  7. [その他のゾーンのロケーション] セクションで、クラスタを実行する追加のゾーンを選択します。

  8. [保存] をクリックして [詳細オプション] オーバーレイを閉じます。

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

GCP Console でクラスタを作成した後、そのクラスタを操作できるよう kubectl を構成する必要があります。詳細については、kubeconfig エントリの生成をご覧ください。

リージョン クラスタ

リージョン クラスタは、Kubernetes リソースをリージョン内の複数ゾーンに配分します。リージョン クラスタは 3 つのゾーン内でそれぞれ 1 つのクラスタ マスターを作成します。デフォルトでは 3 つのゾーンにノードを作成しますが、必要に応じて、必要な数のゾーン内にノードを作成することもできます。

リージョン クラスタについては、リージョン クラスタのコンセプト ページをご覧ください。

リージョン クラスタを作成する

リージョン クラスタを作成するには、GCP Console または gcloud コマンドライン ツールを使用します。

デフォルトでは、リージョン クラスタの作成時に 3 つのゾーンにクラスタのノードプールが複製されます。

gcloud

リージョン クラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create [CLUSTER_NAME] \
    --region [REGION] \
    [--node-locations [COMPUTE_ZONE],[COMPUTE_ZONE]...]]

ここで、[CLUSTER_NAME] はリージョン クラスタに付ける名前、[REGION] は目的のリージョンus-central1 など)です。リージョンに 3 つを超えるゾーンがある場合、または 3 つより少ないゾーンを使用する場合は、オプションの --node-locations フラグを使用して、デフォルトでノードが複製されるゾーンをオーバーライドします。

たとえば、us-west1 内に 9 つのノードからなるリージョン クラスタを作成するには(デフォルトとして、3 つのゾーンのそれぞれに 3 つのノードを作成)、次のコマンドを使用します。

gcloud container clusters create my-regional-cluster --region us-west1

6 つのノードからなるリージョン クラスタを作成するには(3 つのゾーンのそれぞれに 2 つのノードを作成するよう --num-nodes で指定)、次のコマンドを使用します。

gcloud container clusters create my-regional-cluster \
    --num-nodes 2 \
    --region us-west1

2 つのゾーン内の合計 6 つのノードからなるリージョン クラスタを作成するには(--node-locations で指定した 2 つのゾーンのそれぞれに 3 つのノードを作成)、次のコマンドを使用します。

gcloud container clusters create my-regional-cluster \
    --region us-central1 \
    --node-locations us-central1-b,us-central1-c

--release-channel フラグを使用してリリース チャンネルを指定するか、--cluster-version フラグを使用して正確なクラスタ バージョンを指定できます。どちらも使用しない場合、クラスタは現在のデフォルト バージョンを使用します。

Console

リージョン クラスタを作成する手順は次のとおりです。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

  3. [高可用性] クラスタ テンプレートを選択します。

  4. 次のいずれかを選択して、クラスタのバージョンを選択します。

    • クラスタが登録されているリリース チャンネルを選択します。クラスタとノードプールはそのチャンネル内で自動アップグレードされます。
    • 特定の GKE バージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。
    • デフォルトのバージョンを選択します。現在のバージョンが自動アップグレードに選択されると、自動アップグレードがデフォルトで有効になり、クラスタとそのノードプールが自動アップグレードされます。

    リリース チャンネルの使用をおすすめします。バージョンを指定する必要がある場合は、自動アップグレードを有効にしておくことをおすすめします。

  5. [ロケーション タイプ] に [リージョン] が選択されていることを確認します。

  6. [リージョン] プルダウン メニューから、目的のリージョンus-central1 など)を選択します。

  7. 必要に応じてクラスタを構成し、[作成] をクリックします。

GCP Console でクラスタを作成した後、そのクラスタを操作できるよう kubectl を構成する必要があります。詳細については、kubeconfig エントリの生成をご覧ください。

限定公開クラスタ

限定公開クラスタを作成する方法については、限定公開クラスタの入門ガイドをご覧ください。

アルファ クラスタ

アルファ クラスタは有効期限の短いクラスタであり、Kubernetes の安定版リリースを実行します。このクラスタでは、Kubernetes API と機能のすべてを使用できます。

アルファ クラスタとその制限については、アルファ クラスタのトピックをご覧ください。

アルファ クラスタを作成する

アルファ クラスタでは、ノードの自動アップグレードと自動修復は無効になっています。

アルファ クラスタをリリース チャンネルに登録することはできません。

gcloud

アルファ クラスタを作成するには、次のコマンドを実行します。

gcloud container clusters create [CLUSTER_NAME] \
    --enable-kubernetes-alpha \
    [--zone [COMPUTE_ZONE]] \
    [--cluster-version [VERSION]]

ここで

  • [CLUSTER_NAME] は、クラスタに付ける名前です。
  • [COMPUTE_ZONE] は、クラスタを作成する Compute Engine のコンピューティング ゾーンです。オプションの --zone フラグは、gcloud config set compute/zone によって設定されたデフォルトの compute/zone プロパティをオーバーライドします。注: デフォルトのコンピューティング ゾーンは、gcloud config set compute/zone [COMPUTE_ZONE] を使用して設定するか、--zone を使用して指定する必要があります。
  • [VERSION] は、クラスタで実行する GKE のバージョンです。設定しない場合、クラスタは現在のデフォルト バージョンを実行します。現在のデフォルト バージョンについては、バージョニングとアップグレードをご覧ください。

アルファ クラスタはアップグレードされず、30 日後に削除されるという警告が表示され、確認を求められます。

This will create a cluster with all Kubernetes Alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

Console

アルファ クラスタを作成する手順は次のとおりです。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

  3. [標準クラスタ] テンプレートを選択するか、ワークロードに適切なテンプレートを選択します。

  4. [クラスタのバージョン] プルダウン メニューから、クラスタで実行する GKE のバージョンを選択します。

  5. 必要に応じてクラスタを構成します。

  6. [詳細オプション] をクリックします。ページの下の方にある [このクラスタで Kubernetes アルファ版の機能を有効にする] をオンにします。

  7. [影響について理解しました] を選択して、警告を受け入れます。

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

GCP Console でクラスタを作成した後、そのクラスタを操作できるよう kubectl を構成する必要があります。詳細については、kubeconfig エントリの生成をご覧ください。

アルファ クラスタの有効期限

アルファ クラスタの有効期限を確認するには、次のコマンドを実行します。

gcloud container clusters list

Binary Authorization を使用したクラスタ

Binary Authorization は GCP 上のサービスであり、クラウド内で実行されるアプリケーションにソフトウェア サプライ チェーン セキュリティを提供します。Binary Authorization は、Container Registry または他のコンテナ イメージ レジストリから GKE にデプロイするイメージに対して機能します。Binary Authorization を使用すると、アプリケーションを本番環境にデプロイする前に、ソフトウェアの品質と整合性を保護するための内部プロセスを正常かつ確実に完了できます。

Binary Authorization を有効にしたクラスタを作成する方法については、Binary Authorization ドキュメントクラスタの作成をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Kubernetes Engine のドキュメント