> ## Content Index
> Fetch the complete content index at: https://ranchertechblog.stylez.co.jp/llms.txt
> Use this file to discover other available public pages before exploring further.

# RancherのProjectとKubernetesのNamespaceは何が違う？
- URL: https://ranchertechblog.stylez.co.jp/differencebetweenprojectandnamespace/
- Published: 2026-09-18T04:23:34.000Z
- Updated: 2026-09-18T05:29:37.000Z
- Description: Rancherの画面には、ProjectとNamespaceが階層で表示されます。 どちらもアプリケーションや利用者を分けるために使われますが、同じものではありません。
- Author: 大島 皐
- Tags: Rancher, Kubernetes, ブログ

Rancherの画面には、`Project`と`Namespace`が階層で表示されます。

どちらもアプリケーションや利用者を分けるために使われますが、同じものではありません。

## NamespaceはKubernetes標準の分離単位

Namespaceは、Kubernetesリソースを論理的に分けるための仕組みです。

```bash
kubectl get namespaces
kubectl get deployments -n development
kubectl get pods -n production

```

Deployment、Pod、Service、Secret、ConfigMapなど、多くのリソースはNamespaceに所属します。

例えば、`development`と`production`を分けると、同じ名前のDeploymentをそれぞれのNamespaceに作成できます。

```text
Cluster
├── Namespace: development
│   └── Deployment: web
└── Namespace: production
    └── Deployment: web

```

NamespaceはRancherを利用しないKubernetesクラスタにも存在します。

## ProjectはRancherが追加する管理単位

Projectは、複数のNamespaceをまとめて管理するためのRancher独自の概念です。

```text
Cluster
├── Project: shopping-service
│   ├── Namespace: shopping-dev
│   ├── Namespace: shopping-staging
│   └── Namespace: shopping-prod
│
└── Project: platform
    ├── Namespace: monitoring
    └── Namespace: logging

```

Projectを利用すると、同じチームや用途に属するNamespaceをまとめ、その単位でメンバーや権限を整理できます。

![](https://storage.ghost.io/c/3f/4d/3f4df3e5-3c84-490c-9120-6a2d137ad9d4/content/images/2026/09/image-13.png)

# 最大の違いは「どこから見えるか」

| 項目               | Namespace     | Project                   |
| ---------------- | ------------- | ------------------------- |
| 提供元              | Kubernetes    | Rancher                   |
| kubectl getで直接確認 | できる           | 通常のKubernetesリソースとしては扱わない |
| 主な用途             | リソースの論理分離     | 複数Namespaceのグループ化         |
| 権限管理             | RoleBindingなど | Project Roleを配下へ適用        |
| Rancherを外した後     | そのまま残る        | Rancher側の管理概念としては利用しない    |

RancherのProjectを使っていても、実際のワークロードはNamespace内に作成されます。

## Projectは何を基準に分けるべきか

Projectの分け方に一つの正解はありません。次の境界を基準にすると整理しやすくなります。

- 管理するチームが異なる
- 閲覧・変更を許可するユーザーが異なる
- リソース割り当てや運用責任を分けたい
- 同じアプリケーションの複数環境をまとめたい

例えば、同じ開発チームが開発・検証環境を管理する場合は、次の形が考えられます。

```text
Project: application-team
├── Namespace: application-dev
└── Namespace: application-test

```

本番環境だけ運用担当者を分けるなら、Project自体を分ける方が権限を説明しやすくなります。

```text
Project: application-nonprod
├── Namespace: application-dev
└── Namespace: application-test

Project: application-prod
└── Namespace: application-prod

```

## 「環境ごとにProjectを作る」が常に正しいわけではない

Projectを細かく分けすぎると、メンバー設定や運用ルールが増えます。逆に、一つのProjectへ多くのNamespaceを集めすぎると、権限の境界が曖昧になります。

先に次の2点を書き出してから設計すると、過度に複雑になりにくくなります。

1. どのNamespaceが必要か
2. 誰が各Namespaceを管理するか

同じ担当者と同じ運用ルールを適用するNamespaceを、Projectへまとめるのが基本です。

## Namespaceを別Projectへ移すときの注意

Namespaceの所属Projectを変更すると、Rancherから適用されるProject単位の権限やリソース管理の前提が変わります。

本番環境では、移動前に少なくとも次を確認します。

- 移動後に誰が参照・変更できるか
- Project Roleに依存している利用者がいないか
- Project単位のResource Quotaを利用していないか
- 自動化や運用手順がProject名を前提にしていないか

## まとめ

NamespaceはKubernetesが提供するリソースの分離単位です。Projectは、複数のNamespaceをチームや用途ごとにまとめるRancherの管理単位です。

迷ったときは、次の順番で考えます。

1. アプリケーションや環境ごとにNamespaceを整理する
2. そのNamespaceを管理するチームと権限を整理する
3. 同じ運用境界にあるNamespaceをProjectへまとめる