このドキュメントでは、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 と権限があることを確認してください。Google Cloud コンソールからの作成時の新しいクラスタの登録は、GKE Enterprise でのみ行えます。
ゾーンクラスタを作成する
gcloud CLI または Google Cloud コンソールを使用して、ゾーンクラスタを作成できます。
Visual Studio Code を使用して GKE アプリケーションを開発している場合は、Cloud Code でクラスタを作成してみてください。
gcloud
gcloud CLI でゾーンクラスタを作成するには、次のいずれかのコマンドを使用します。
次のように置き換えます。
CLUSTER_NAME
: 新しいクラスタの名前。CHANNEL
: リリース チャネルのタイプ。rapid
、regular
、stable
、None
のいずれかに指定できます。--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-a
、us-central1-b
、us-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 コンソールでゾーンクラスタを作成するには、次のタスクを実行します。
Google Cloud コンソールで Google Kubernetes Engine のページに移動します。
[add_box 作成] をクリックします。
[クラスタの基本] セクションで、次の操作を行います。
- クラスタの名前を [名前] に入力します。
- [ロケーション タイプ] には [ゾーン] を選択し、クラスタに使用するゾーンを選択します。
- マルチゾーン クラスタを作成する場合は、[デフォルトのノードのロケーションを指定する] チェックボックスをオンにして、ノードプールを実行する追加のゾーンを選択します。
[コントロール プレーンのバージョン] を選択します。デフォルトの [リリース チャンネル] を選択することをおすすめします。静的バージョンを指定する必要がある場合は、ノードプールの自動アップグレードが有効になっていることを確認してください。
ナビゲーション ペインの [ノードプール] で [default-pool] をクリックします。
[ノードプールの詳細] セクションで、次の操作を行います。
ナビゲーション パネルで、[ノードプール] の下の [ノード] をクリックします。
[イメージの種類] プルダウン リストから、目的のノードイメージを選択します。
インスタンスに使用するデフォルトの [マシンの構成] を選択します。マシンタイプごとに課金方法は異なります。デフォルトのマシンタイプは
e2-medium
です。マシンタイプごとの料金については、マシンタイプの料金表をご覧ください。[ブートディスクの種類] プルダウン リストから、目的のディスクの種類を選択します。
[ブートディスクのサイズ] を入力します。
省略可: ナビゲーション パネルで、[ノードプール] の下の [セキュリティ] をクリックします。
省略可: [サービス アカウント] プルダウン リストから、Google Cloud APIs を呼び出すときにアプリケーションが使用する Identity and Access Management(IAM)サービス アカウントを選択します。デフォルトのサービス アカウントではなく、最小限の権限を持つサービス アカウントを使用して、ノードに必要以上の権限が付与されないようにすることをおすすめします。
省略可(GKE Enterprise で利用可能): 新しいクラスタをフリートに登録する場合、Google Cloud コンソールで新しいクラスタを作成して登録するための手順に沿って、クラスタの登録を完了します。
[作成] をクリックします。
kubectl を使用してクラスタを操作する
クラスタを作成した後、コマンドラインからクラスタとやり取りするには、その前に kubectl
を構成する必要があります。
クラスタ テンプレート
GKE は以前、クラスタのテンプレートをサポートしていました。これらのテンプレートは Google Cloud コンソールからは削除されましたが、現在も次のリンクからアクセスできます。
次のステップ
- 作成可能なクラスタ構成の選択肢について確認する。
- GKE クラスタのアーキテクチャについて学習する。
- クラスタの管理について学習する。
- クラスタを削除する方法を学習する。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオで GKE のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
GKE の無料トライアル