【Day10】Namespaceで領域を分けよ!Kubernetes流チーム戦の極意
「開発チームAとチームBがPod名を取り合ってケンカしてるんですが…」
「リソースがどの環境に属してるか分からなくなってきました…」
そんなあなたに届けたい、Kubernetesの“空間分け”の術=Namespace!
🧭 はじめに:なぜNamespaceが必要なのか?
クラスタが大きくなり、複数のチームや環境が混在してくると、リソースの混乱が始まります。
Namespaceはそんなカオスを論理的に整理する空間です!
- チームごとにリソースを分けたい!
- 開発・本番環境を分けたい!
- アクセス制御を範囲限定で行いたい!
こういった要望を実現するのがNamespaceです。
🧱 Namespaceとは何か?基本のキ
Namespaceとは、Kubernetes上の仮想的なリソースの区切りです。
1つのクラスタ内に、複数のNamespaceを作成することで、以下のような分離が可能になります。
EKS構築時にすでにデフォルトのNamespaceができています。
| 名前 | 用途 |
|---|---|
| default | 何も指定しなかった場合のデフォルト |
| kube-system | Kubernetesのシステムコンポーネント |
| kube-public | 全ユーザーに公開される情報(ほぼ使われない) |
🗂️ Namespaceを使うと何が嬉しいのか?
以下のようなシーンでNamespaceが役立ちます:
- 開発/ステージング/本番の環境を論理的に分離
- チーム単位でのリソース管理(例:team-a、team-b)
- ユーザーごとのアクセス制御(RBAC)
- リソース使用量の制限(ResourceQuota)
🧪 実践編:Namespaceを作ってリソースを分けよう!
🔨 Namespaceを作成する
kubectl create namespace team-a
📦 Namespaceにリソースをデプロイする
簡単なアプリケーションをapp.yamlとして保存
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: my-container
image: nginx
kubectl apply -f app.yaml -n team-a
-n オプションでNamespaceを指定できます!
📂 YAMLでNamespaceを明示的に指定するには?
YAMLマニフェストでも、以下のようにNamespaceを指定可能です:
apiVersion: v1
kind: Pod
metadata:
name: my-app
namespace: team-a #ここでNamespaceを指定!
spec:
containers:
- name: my-container
image: nginx
🛡️ RBACとNamespaceの関係性
RBACでアクセス権を設定する場合、Namespace単位にスコープを絞ることが可能です。
例えば、team-a Namespace内のPodだけを管理できるようにする設定ができます。
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: team-a
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: team-a
subjects:
- kind: User
name: alice
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
✅ まとめ:Namespaceはクラスタ運用の土台!
NamespaceはKubernetesにおける空間の仕切り
初心者でも環境分離にすぐ使える!
RBACやResourceQuotaと連携することで真価を発揮
次回予告 📢:EKSログ監視道場:CloudWatch LogsでPodの声を聞け!
EKSのPodのログを効率的に収集する方法を学んでいきます!
2024年にリリースされた、EKSのアドオン機能も利用して、効率よく学んでいきましょう!
よければフォロー&いいねお願いします🙏
- 「面白かった」「続きが気になる!」と思ったらLGTM👍
- コメントで「聞きたい内容」「つまずきポイント」などもぜひ教えてください!
それではまた明日、EKS道場でお会いしましょう!押忍🔥
