アルファ クラスタは 、Kubernetes アルファ版の API と機能を有効にし、今後のマイナー バージョンのアルファ版を実行できる、存続期間の短い Google Kubernetes Engine(GKE)クラスタです。このドキュメントでは、アルファ クラスタを作成し、特定のフィーチャー ゲートを有効または無効にして、Rapid リリース チャンネルでアルファ パッチ バージョンを実行する方法について説明します。アルファ クラスタは、今後の Kubernetes の機能とバージョンを試したいアーリー アドプターとプラットフォーム管理者を対象としています。
GKE クラスタの仕組みと、作成する GKE クラスタのタイプを選択する方法については、GKE クラスタのアーキテクチャとクラスタ構成の選択肢についてをご覧ください。
始める前に
始める前に、次のタスクが完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、
インストールして
初期化する
gcloud CLI。gcloud CLI をインストール済みの場合は、最新の
バージョンを
gcloud components updateコマンドを実行して取得します。以前のバージョンの gcloud CLI では、このドキュメントのコマンドを実行できない場合があります。
- アルファ クラスタの 制限事項を確認する。
必要なロール
アルファ クラスタを作成して操作するために必要な権限を取得するには、プロジェクトに対するKubernetes Engine Cluster 管理者 (roles/container.clusterAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
GKE 用の IAM サービス アカウントを設定する
GKE は、ノードに接続されている IAM サービス アカウントを使用して、ロギングやモニタリングなどのシステムタスクを実行します。これらのノードサービス アカウントには、プロジェクトに対する Kubernetes Engine デフォルト ノードサービス アカウント(roles/container.defaultNodeServiceAccount)ロールが最低限必要です。デフォルトでは、GKE はプロジェクトに自動的に作成される Compute Engine のデフォルトのサービス アカウントをノード サービス アカウントとして使用します。
Compute Engine のデフォルト サービス アカウントに roles/container.defaultNodeServiceAccount ロールを付与する手順は次のとおりです。
コンソール
- [ようこそ] ページに移動します。
- [プロジェクト番号] フィールドで、 [クリップボードにコピー] をクリックします。
- [IAM] ページに移動します。
- [ アクセスを許可] をクリックします。
- [新しいプリンシパル] フィールドに次の値を指定します。
PROJECT_NUMBER-compute@developer.gserviceaccount.comPROJECT_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 を使用することをおすすめします。
- アルファ クラスタにおすすめの Rapid リリース チャンネルにクラスタを登録できます。
デフォルト値とは異なる方法で有効または無効にするアルファ版またはベータ版のフィーチャー ゲートを指定できます。
コンソール
Google Cloud コンソールで、[Kubernetes クラスタを作成する] ページに移動します。
[クラスタの基本] セクションで、次の操作を行います。
省略可: 新しいクラスタの他の設定を構成します。
省略可: 新しいクラスタをフリートに登録する場合は、[フリート登録] セクションに移動し、 Google Cloud コンソールで新しいクラスタを作成して登録するの手順に沿ってクラスタの登録を完了します。
ナビゲーション パネルの [ノードプール] で [default-pool] をクリックします。
[ノードプールの詳細] セクションで、次の操作を行います。
- [名前] に、デフォルトのノードプールの名前を入力します。
- 省略可: ノードのバージョンを選択します。
- [ノード数] に、クラスタ内に作成するノードの数を入力します。ノードとそのリソース(ファイアウォール ルートなど)に使用できるリソース割り当てが必要です。
- 省略可: ノードの自動アップグレードを無効にすることもできますが、このオプションを選択する前に、ノードの自動アップグレードを無効にする際の考慮事項を確認することをおすすめします。
- [自動アップグレードを有効化] と [自動修復を有効化] をオフにします。
ナビゲーション パネルで、[ノードプール] の下の [ノード] をクリックします。
[イメージの種類] プルダウン リストから、ノードイメージを選択します。
インスタンスに使用するデフォルトのマシンの構成を選択します。マシンタイプごとに課金方法は異なります。デフォルトのマシンタイプは
e2-mediumです。マシンタイプごとの料金については、マシンタイプの料金表をご覧ください。[ブートディスクの種類] プルダウン リストから、ディスクの種類を選択します。
[ブートディスクのサイズ] を入力します。
省略可: ナビゲーション パネルで、[ノードプール] の下の [セキュリティ] をクリックします。
- 必要に応じて、ノードにカスタム IAM サービス アカウントを指定します。
- [詳細設定] ページで、[セキュリティ] セクションを開きます。
- [サービス アカウント] メニューで、目的のサービス アカウントを選択します。
Compute Engine のデフォルトのサービス アカウントの代わりに、ノードで使用できる最小権限の IAM サービス アカウントを指定することを強くおすすめします。最小権限のサービス アカウントを作成する方法については、最小権限のサービス アカウントを使用するをご覧ください。
ナビゲーション パネルの [クラスタ] の下の [機能] をクリックします。
[このクラスタで Kubernetes アルファ版の機能を有効にする] をクリックします。
[影響について理解しました] を選択して、警告を受け入れます。
[作成] をクリックします。
gcloud
次のコマンドを実行します。
gcloud container clusters create CLUSTER_NAME \
--release-channel=CHANNEL \
--enable-kubernetes-alpha \
--no-enable-autorepair \
--no-enable-autoupgrade \
--location CONTROL_PLANE_LOCATION [\
--alpha-cluster-feature-gates FEATURE_GATES_LIST]
次のように置き換えます。
CLUSTER_NAME: クラスタに付ける名前。CHANNEL: リリース チャンネルのタイプ。この値は次のいずれかである必要があります。rapid: Rapid リリース チャンネルに登録します。これはアルファ クラスタにおすすめのチャンネルです。regular: Regular リリース チャンネルに登録します。stable: Stable リリース チャンネルに登録します。none: リリース チャンネルに登録しません。このオプションは 非推奨 であり、削除されます。
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.comSERVICE_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 を構成する必要があります。
アルファ クラスタのフィーチャー ゲートの状態を確認する
アルファ クラスタでは、フィーチャー ゲートを選択的に有効または無効にできます。詳細については、フィーチャー ゲートとアルファ クラスタをご覧ください。
クラスタのフィーチャー ゲートの状態を確認するには、フィーチャー ゲート の状態を確認するをご覧ください。
アルファ クラスタでアルファ パッチ バージョンを実行する
Rapid リリース チャンネルに登録したアルファ クラスタは、今後の Kubernetes マイナー バージョンの アルファ パッチ バージョンを実行できます。これらのアルファ版では、GKE が Rapid チャンネルのすべてのクラスタでそのマイナー バージョンを使用可能にする前に、次のマイナー バージョンの機能と変更をテストできます。
アルファ クラスタでアルファ パッチ バージョンを特定して実行する手順は次のとおりです。
Rapid チャンネルで利用可能なアルファ版を特定します。
gcloud container get-server-config \ --flatten="channels" --filter="channels.channel=RAPID" \ --location=LOCATION \ --format="yaml(channels.channel,channels.previewVersions)"LOCATIONは、アルファ クラスタを作成する予定のリージョン(us-central1など)に置き換えます。出力は次のようになります。
channels: channel: RAPID previewVersions: - 1.37.0-gke.1173000+preview出力が空の場合、そのリージョンではアルファ版は使用できません。別のリージョンを試すか、 Rapid チャンネルのリリースノート でバージョン情報を確認してください。
アルファ クラスタを作成します。
gcloud container clusters create CLUSTER_NAME \ --release-channel=rapid \ --enable-kubernetes-alpha \ --no-enable-autorepair \ --no-enable-autoupgrade \ --location=CONTROL_PLANE_LOCATION \ --cluster-version=ALPHA_VERSION次のように置き換えます。
CLUSTER_NAME: アルファ クラスタの名前。CONTROL_PLANE_LOCATION: クラスタのコントロール プレーンのリージョンまたはゾーン。前の手順でアルファ版の可用性を確認したリージョン、またはそのリージョン内のゾーンを使用します。ALPHA_VERSION: 前の手順の出力から、クラスタで実行する特定のアルファ パッチ バージョン。
アルファ クラスタの有効期限を確認する
アルファ クラスタの有効期限を確認するには、次のコマンドを実行します。
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 バージョンとの互換性を確認します。解決後、クラスタをもう一度更新してみてください。
次のステップ
- 作成できるクラスタのタイプについて確認する。
- クラスタの管理について学習する。
- クラスタを削除する方法を理解する。