このページでは、Google Kubernetes Engine(GKE)クラスタのライフサイクルの概要について説明します。自分で実行できるタスクと Google Cloud によって管理されるタスクのほか、使用を開始するための詳細なガイドへのリンクも示します。
このページを読む前に、次のことと Kubernetes の基本コンセプトを理解しておく必要があります。
クラスタの作成
クイックスタートのいずれかを完了した場合は、GKE で Kubernetes クラスタを作成するのは非常に簡単です。Google Cloud コンソールでデフォルトのオプションをすべて使用する場合は特に簡単です。実際のクラスタの作成は、組織や技術のニーズに合わせてクラスタ オプションを選択する場合など、少し複雑になることがあります。クラスタ オプションの一部は、クラスタを再作成しない限り構成後に変更できないため、クラスタを作成する前に、ネットワーク、セキュリティ、その他の担当者と相談して決めることが必要になる場合があります。
クラスタは、Google Cloud コンソール、gcloud CLI、または GKE 用の Terraform プロバイダを使用して作成できます。
- クラスタ構成オプションの詳細(クラスタの作成後に変更できないオプションを含む)については、クラスタ構成の概要をご覧ください。
- Autopilot クラスタの作成方法(推奨)については、Autopilot クラスタを作成するをご覧ください。
- Standard クラスタの作成方法については、Standard クラスタを作成するをご覧ください。
- 複数のクラスタを作成する必要があるかどうかについては、マルチクラスタのユースケースをご覧ください。
クラスタの操作
クラスタ管理者の作業の多くは、実行中のクラスタの操作に関連しています。こうしたタスクには、クラスタの状態のモニタリングとトラブルシューティングが含まれます。また、大規模な組織(特に GKE のエンタープライズ ティアを使用する組織)では、フリートの一部として複数のクラスタをまとめて管理することも含まれます。セキュリティ スペシャリストまたはネットワーク スペシャリストであれば、セキュリティ ポリシーの適用やネットワーク インフラストラクチャの構成など、より専門的なタスクを担当しているでしょう。GKE を使用するデベロッパーは、クラスタの作成や管理は必要ありませんが、ワークロードをクラスタにデプロイしたり、ワークロードに関する問題のトラブルシューティングを行う場合があります。
使用できるツールは次のとおりです。
- Google Cloud ツール。クラスタの作成、管理、表示を行います。Google Cloud コンソール、gcloud CLI などがあります。
- Kubernetes コマンドライン ツール
kubectl
。ワークロードのデプロイや Kubernetes ロールベース アクセス制御(RBAC)ポリシーの適用など、クラスタ内部のタスクに使用します。 - Terraform。クラスタとワークロードを宣言的にプロビジョニングします。
GKE はマネージド サービスであるため、クラスタノードを実行する仮想マシンや Kubernetes コントロール プレーン コンポーネントの状態など、基盤となるインフラストラクチャについて心配する必要はありません。これらは GKE が管理します。
クラスタの操作と、その操作に使用するツールやワークフローの詳細については、クラスタ管理の概要をご覧ください。クラスタ アーキテクチャと GKE コントロール プレーンの詳細については、GKE クラスタ アーキテクチャをご覧ください。
クラスタのアップグレード
クラスタのアップグレードでは、クラスタのコントロール プレーンとノードで実行されている GKE システム ソフトウェアのバージョンが更新されます。デフォルトでは、GKE はクラスタを自動的にアップグレードして、クラスタにセキュリティ アップデート、既知の問題の修正、新機能を適用し、サポートされているバージョンの Kubernetes が実行されるようにします。
アップグレード プロセスをより細かく制御するため、GKE にはリリース チャンネルが用意されています。リリース チャンネルを使用すると、機能の可用性と安定性のバランスを考慮してクラスタのバージョンを選択できます。メンテナンスの時間枠と除外を使用すると、アップグレードなどのクラスタ メンテナンスのタイミングを選択できます。
デフォルトでは、すべてのクラスタが Regular リリース チャンネルに登録されます。ワークロードの中断を最小限に抑えながらリリース チャンネルを最大限に活用する方法については、クラスタのアップグレードに関するベスト プラクティスをご覧ください。
クラスタのアップグレードを自分で開始することもできます。詳細については、クラスタまたはノードプールの手動アップグレードをご覧ください。
クラスタの更新
クラスタの作成に関する前のセクションで説明したように、クラスタの作成後にその構成に変更を行うことができます。クラスタに対して可能な更新には、次のようなものがあります。
- Standard クラスタのサイズを変更します(Autopilot クラスタは、ワークロードのニーズに基づいて自動的にサイズ変更されます)。
- クラスタをフリートに追加します。
- クラスタのリリース チャンネルを変更します。
- Standard クラスタのゾーンを更新します。
- クラスタのメンテナンス ポリシーを更新します。
- ネットワーキング オプションのサブセットを更新します。
- バックアップ、ロギング、モニタリングなどのクラスタ機能を有効または無効にします。
クラスタの作成後に変更できる内容と変更できない内容の詳細については、クラスタ構成の概要をご覧ください。
クラスタのサイズ変更
Autopilot クラスタは、Pod の仕様に基づいて自動的にサイズが調整されます。そのため、クラスタのサイズを変更する必要はありません。たとえば、Pod のレプリカの数や、リクエストするリソースを変更すると、クラスタのサイズに応じて適切なサイズが設定されます。
Standard モードを使用する場合は、クラスタのサイズを手動で変更して、ノードの数を増減できます。たとえば、クラスタを削除せずにクラスタでリソースを消費しないようにするには、ノードをゼロにスケールダウンします。サイズ変更の詳細については、クラスタのサイズ変更をご覧ください。クラスタの自動スケーリングを使用すると、ワークロードの需要に基づいて GKE がクラスタのノードプールのサイズを自動的に変更します。また、ノード自動プロビジョニングを使用すると、GKE がノードプールを自動的に作成および削除します。
クラスタをさらに効率的に最適化するために、垂直 Pod 自動スケーリング(VPA)も使用できます。オートスケーラーは、CPU およびメモリのリクエストと上限の値を推奨します。また、それらの値を自動的に更新できます。
クラスタの削除
必要に応じて、クラスタを削除できます。詳細については、クラスタの削除をご覧ください。
フリートへのクラスタの追加
組織で複数のクラスタを使用している場合は、Kubernetes クラスタの論理グループであるフリートにクラスタを追加することで、マルチクラスタ管理を簡素化できます。フリートを作成すると、組織は個々のクラスタを管理する体制から、クラスタ グループ全体を管理する体制にレベルアップでき、マルチクラスタ Ingress、Config Sync、Policy Controller などのフリート対応機能を使用できます。
フリートに GKE クラスタを追加するには、Google Cloud コンソールまたは gcloud CLI を使用するか、Terraform または Config Connector を宣言的に使用します。
フリートの仕組みについては、フリートの管理をご覧ください。フリートの作成については、フリートを作成してマルチクラスタ管理を簡素化するをご覧ください。
次のステップ
- クラスタの管理の詳細を確認する。クラスタ管理の概要をご覧ください。
- クラスタ構成オプションの詳細を確認する。
- ワークロードのデプロイについて確認する。