このページでは、デフォルトの Namespace で実行されているワークロードを特定し、それらのワークロードを専用の Namespace に移動することで、クラスタの信頼性とパフォーマンスを向上させる方法について説明します。
Namespace について
Kubernetes では、Namespace を使用して、単一クラスタ内のリソースのグループを分離できます。リソース名は Namespace 内で一意であることが必要ですが、Namespace 間全体で一意である必要はありません。
デフォルトの Namespace について
Kubernetes は、クラスタの作成時に default
という名前の Namespace を作成し、デフォルトですべてのリソースにこの Namespace を使用します。本番環境クラスタのワークロードに default
Namespace を使用することはおすすめしません。
ワークロードを default
Namespace にデプロイすると、次のリスクにさらされます。
- 共有されたリソース(CPU、メモリ)とネットワークによるノイジー ネイバーの問題やリソースの枯渇が原因で、ワークロードのパフォーマンスが低下する。
- 環境間の命名の競合や相互作用が原因で発生する中断。
- アクセス権限とネットワークの分離が不十分なため、セキュリティ ポスチャーが脆弱化する。
default
Namespace の過密状態が時間の経過とともに発生し、分離されたクリーンアップが困難になることで、クラスタ リソースの使用効率が低下する。
専用の Namespace にワークロードをデプロイする理由
ワークロードを専用の Namespace にデプロイするメリットには、次のものがあります。
- Namespace にバインドされたメモリと CPU のリソース割り当てによるリソース分離により、信頼性とパフォーマンスの安定性が向上し、ノイジー ネイバーの問題とリソース枯渇のリスクが軽減されます。
- RBAC 認可を使用して最小権限の原則に準拠する Namespace スコープのアクセス制御と、アプリケーション間のネットワーク通信を分離する Namespace スコープのネットワーク ポリシーによるセキュリティの強化。
次の操作を行うことで、管理と運用を簡素化します。
- 同じクラスタを共有する異なるワークロードまたはチーム間の名前の競合を低減します。
- オブザーバビリティを分離します。
- トラブルシューティングとデバッグを絞り込みます。
- 費用を関連付けて最適化する。
- クラスタの残りの部分に影響を与えずに、特定の Namespace を対象とするオペレーション。
アプリケーション、環境、チームごとにクラスタ リソースとポリシーを整理して分離するためのマルチテナンシー。
特定のクラスタの default
Namespace を調べる
特定のクラスタの default
Namespace で実行されているワークロードを確認するには、クラスタの default
Namespace を調べます。
[ワークロード] ページに移動します。
[クラスタ] フィールドに、クラスタの名前を入力します。
[Namespace] フィールドに「
default
」と入力します。
ワークロードを専用の Namespace に移行する
default
Namespace で実行されているワークロードを特定したら、専用の Namespace に移行して、信頼性の向上、パフォーマンスの安定化、セキュリティの強化を実現します。
次のステップ
- 複数の Namespace にオブジェクトを同期する
- Namespace を利用した GKE マルチテナント クラスタの管理
- アクセスを有効にしてクラスタ リソースを Namespace ごとに表示する