説明
default は通常のリソースを配置できる既定の名前空間であり、使用自体が誤りではありません。ただし、複数のアプリケーションをまとめると、権限や運用責任の区分が難しくなる場合があります。kube-system や kube-public など、システム用途の名前空間に一般の業務リソースを混在させないよう注意してください。
名前空間は権限やポリシーの適用範囲を分ける単位です。名前を分けるだけでは通信やアクセス権限は自動的に分離されないため、RBAC や NetworkPolicy なども設定する必要があります。
想定される影響
- 運用リソースとアプリケーションリソースが混在し、管理が難しくなる場合があります。
- 権限やポリシーの適用範囲が不明確になるおそれがあります。
- インシデントの影響範囲の把握や封じ込めが難しくなる場合があります。
対処方法
- 運用要件に応じたアプリケーション専用の名前空間を使用してください。
- システム名前空間の用途を維持し、実際の要件に合わせて RBAC、NetworkPolicy、リソースクォータを適用してください。
- 名前空間の作成基準と担当者を定め、実効権限と通信範囲をテストしてください。
例
例のイメージを実際のアプリケーションイメージに置き換え、先に cosmic-pod 名前空間を作成してください。
変更前
yaml
apiVersion: v1
kind: Pod
metadata:
name: frontend
namespace: default
spec:
containers:
- name: app
image: images.my-company.example/app:v4
変更後
yaml
apiVersion: v1
kind: Pod
metadata:
name: frontend
namespace: cosmic-pod
spec:
containers:
- name: app
image: images.my-company.example/app:v4
補足:
- 変更前:
defaultを使います。有効な構成ですが、アプリケーションごとに権限や運用範囲を分ける必要があるか確認してください。 - 変更後: 有効な小文字の名前を持つ専用の名前空間を使います。必要な RBAC とネットワークポリシーは別途適用してください。