このページでは、Google Kubernetes Engine(GKE)のアルファ クラスタを作成する方法について説明します。アルファ クラスタとは、Kubernetes アルファ版の API と機能が有効になっている GKE クラスタです。アルファ クラスタでは、Kubernetes バージョンで使用可能なすべてのアルファ フィーチャー ゲートがデフォルトで有効になっています。Kubernetes がデフォルトで有効にするベータ フィーチャー ゲートも有効になります。GKE のデフォルトをどのフィーチャー ゲートを有効にするかを変更できます。特定のバージョンで使用可能なフィーチャー ゲートと、デフォルトで有効になっているベータ版機能の詳細については、Kubernetes ドキュメントのアルファ版機能またはベータ版機能のフィーチャー ゲートをご覧ください。
GKE クラスタの仕組みと、作成する GKE クラスタのタイプを選択する方法については、GKE クラスタのアーキテクチャとクラスタ構成の選択肢についてをご覧ください。
始める前に
作業を始める前に、次のことを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
- クラスタを作成するための適切な権限があることを確認します。少なくとも、Kubernetes Engine Cluster 管理者である必要があります。
- アルファ クラスタの制限事項について理解しておいてください。
GKE 用の IAM サービス アカウントを設定する
GKE は、ノードに接続されている IAM サービス アカウントを使用して、ロギングやモニタリングなどのシステムタスクを実行します。これらのノード サービス アカウントには、プロジェクトに対する Kubernetes Engine デフォルト ノード サービス アカウント(roles/container.defaultNodeServiceAccount
)ロールが最低限必要です。デフォルトでは、GKE はプロジェクトに自動的に作成される Compute Engine のデフォルトのサービス アカウントをノード サービス アカウントとして使用します。
Compute Engine のデフォルト サービス アカウントに roles/container.defaultNodeServiceAccount
ロールを付与する手順は次のとおりです。
コンソール
- [ようこそ] ページに移動します。
- [プロジェクト番号] フィールドで、 [クリップボードにコピー] をクリックします。
- [IAM] ページに移動します。
- [ アクセスを許可] をクリックします。
- [新しいプリンシパル] フィールドに次の値を指定します。
PROJECT_NUMBER-compute@developer.gserviceaccount.com
PROJECT_NUMBER
は、コピーしたプロジェクト番号に置き換えます。 - [ロールを選択] メニューで、[Kubernetes Engine デフォルト ノード サービス アカウント] ロールを選択します。
- [保存] をクリックします。
gcloud
- Google Cloud プロジェクト番号を確認します。
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。出力は次のようになります。
12345678901
- Compute Engine のデフォルト サービス アカウントに
roles/container.defaultNodeServiceAccount
ロールを付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role="roles/container.defaultNodeServiceAccount"
PROJECT_NUMBER
は、前の手順のプロジェクト番号に置き換えます。
アルファ クラスタを作成する
アルファ クラスタを作成するには、 Google Cloud コンソールまたは gcloud CLI を使用します。デフォルト値とは異なる方法で有効または無効にするフィーチャー ゲートを指定するクラスタを作成するには、gcloud CLI を使用します。
コンソール
Google Cloud コンソールで、[Kubernetes クラスタを作成する] ページに移動します。
[クラスタの基本] セクションで、次の操作を行います。
- クラスタの名前を [名前] に入力します。
- [ロケーション タイプ] には [ゾーン] を選択し、クラスタに使用するゾーンを選択します。
- マルチゾーン クラスタを作成する場合は、[デフォルトのノードのロケーションを指定する] チェックボックスをオンにして、ノードプールを実行する追加のゾーンを選択します。
[リリース チャンネル] プルダウン リストで、[チャンネルなし] を選択します。
省略可: [バージョン] プルダウン リストからコントロール プレーンのバージョンを指定します。
省略可: 新しいクラスタの他の設定を構成します。
省略可(GKE Enterprise で利用可能): 新しいクラスタをフリートに登録する場合は、[フリート登録] セクションに移動し、 Google Cloud コンソールで新しいクラスタを作成して登録するの手順に沿ってクラスタの登録を完了します。
ナビゲーション ペインの [ノードプール] で [default-pool] をクリックします。
[ノードプールの詳細] セクションで、次の操作を行います。
- [名前] に、デフォルトのノードプールの名前を入力します。
- 省略可: ノードのバージョンを選択します。
- [ノード数] に、クラスタ内に作成するノードの数を入力します。ノードとそのリソース(ファイアウォール ルートなど)に使用できるリソース割り当てが必要です。
- 省略可: ノードの自動アップグレードを無効にすることもできますが、このオプションを選択する前に、ノードの自動アップグレードを無効にする際の考慮事項を確認することをおすすめします。
- [自動アップグレードを有効化] と [自動修復を有効化] をオフにします。
ナビゲーション パネルで、[ノードプール] の下の [ノード] をクリックします。
[イメージの種類] プルダウン リストから、ノードイメージを選択します。
インスタンスに使用するデフォルトのマシンの構成を選択します。マシンタイプごとに課金方法は異なります。デフォルトのマシンタイプは
e2-medium
です。マシンタイプごとの料金については、マシンタイプの料金表をご覧ください。[ブートディスクの種類] プルダウン リストから、ディスクの種類を選択します。
[ブートディスクのサイズ] を入力します。
省略可: ナビゲーション パネルで、[ノードプール] の下の [セキュリティ] をクリックします。
- 必要に応じて、ノードにカスタム IAM サービス アカウントを指定します。
- [詳細設定] ページで、[セキュリティ] セクションを開きます。
- [サービス アカウント] メニューで、目的のサービス アカウントを選択します。
Compute Engine のデフォルトのサービス アカウントの代わりに、ノードで使用できる最小権限の IAM サービス アカウントを指定することを強くおすすめします。最小権限のサービス アカウントを作成する方法については、最小権限のサービス アカウントを使用するをご覧ください。
ナビゲーション パネルの [クラスタ] の下の [機能] をクリックします。
[このクラスタで Kubernetes アルファ版の機能を有効にする] をクリックします。
[影響について理解しました] を選択して、警告を受け入れます。
[作成] をクリックします。
gcloud
次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \
--enable-kubernetes-alpha \
--no-enable-autorepair \
--no-enable-autoupgrade \
--location CONTROL_PLANE_LOCATION [\
--alpha-cluster-feature-gates FEATURE_GATES_LIST]
次のように置き換えます。
CLUSTER_NAME
: クラスタに付ける名前。CONTROL_PLANE_LOCATION
: クラスタのコントロール プレーンの Compute Engine のロケーション。リージョン クラスタの場合はリージョン、ゾーンクラスタの場合はゾーンを指定します。--cluster-version VERSION
: (省略可)クラスタで実行する GKE のバージョンを指定します。省略した場合、クラスタは 現在のバージョンの表に示すように、チャンネルなしのクラスタ作成のデフォルト パッチ バージョンを実行します。FEATURE_GATES_LIST
: デフォルト値とは異なる方法で有効または無効にするフィーチャー ゲートの一覧。各文字列は、フィーチャー ゲートの有効化または無効化を表します。例:featureX=true, featureY=false
このフラグを省略すると、GKE は GKE のデフォルト値を使用してクラスタを作成します。つまり、Kubernetes バージョンで使用可能なすべてのアルファフィーチャー ゲートが有効になります。Kubernetes によってデフォルトで有効になっているベータ版フィーチャー ゲートも有効になります。特定のバージョンで使用可能なフィーチャー ゲートと、デフォルトで有効になっているベータ版機能の詳細については、Kubernetes ドキュメントのアルファ版機能またはベータ版機能のフィーチャー ゲートをご覧ください。このフラグを含めると、GKE によってデフォルトで設定されたフィーチャー ゲートから、有効にするフィーチャー ゲートが変更されます。詳細については、フィーチャー ゲートとアルファ クラスタをご覧ください。
Compute Engine のデフォルトのサービス アカウントの代わりに、ノードで使用できる最小権限の IAM サービス アカウントを指定することを強くおすすめします。最小権限のサービス アカウントを作成する方法については、最小権限のサービス アカウントを使用するをご覧ください。
gcloud CLI でカスタム サービス アカウントを指定するには、コマンドに次のフラグを追加します。
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
SERVICE_ACCOUNT_NAME は、最小権限のサービス アカウントの名前に置き換えます。
アルファ クラスタはアップグレードされず、30 日後に削除されるという警告が表示され、確認を求められます。
This will create a cluster with 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.
kubectl を使用してクラスタを操作する
クラスタを作成した後、コマンドラインからクラスタとやり取りするには、その前に kubectl
を構成する必要があります。
アルファ クラスタのフィーチャー ゲートの状態を確認する
アルファ クラスタでは、フィーチャー ゲートを選択的に有効または無効にできます。詳細については、フィーチャー ゲートとアルファ クラスタをご覧ください。
クラスタのフィーチャー ゲートの状態を確認するには、フィーチャー ゲートの状態を確認するをご覧ください。
アルファ クラスタの有効期限を確認する
アルファ クラスタの有効期限を確認するには、次のコマンドを実行します。
gcloud container clusters list
フィーチャー ゲートを使用してアルファ クラスタを作成する際のトラブルシューティング
無効なフィーチャー ゲートまたはクラスタの Kubernetes バージョンでサポートされていないフィーチャー ゲートを使用してクラスタを作成しようとすると、クラスタがエラー状態で作成されることがあります。
Cloud Logging に次のようなメッセージが表示されます。
failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME
このエラーが発生した場合は、失敗したクラスタを削除します。フィーチャー ゲートのスペルと、指定された Kubernetes バージョンとの互換性を確認します。解決後、クラスタをもう一度更新してみてください。
次のステップ
- 作成できるクラスタのタイプについて確認する。
- クラスタの管理について学習する。
- クラスタを削除する方法を理解する。