mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-05-05 20:53:33 +00:00
af77fc8954
Signed-off-by: Sunil Singh <sunil.singh@suse.com>
74 lines
4.5 KiB
Markdown
74 lines
4.5 KiB
Markdown
---
|
|
title: 命名空间
|
|
---
|
|
|
|
在 Rancher 中,你可以将项目进一步划分为多个[命名空间](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/),项目是由物理集群支持的,而命名空间是项目中的虚拟集群。当项目和 `default` 命名空间不能满足你的需求时,你可以在项目中创建多个命名空间来隔离应用和资源。
|
|
|
|
你可以在项目层级分配资源,从而使项目中的每个命名空间可以使用这些资源,也可以单独给某个命名空间显式分配资源。
|
|
|
|
可以直接分配给命名空间的资源包括:
|
|
|
|
- [工作负载](../../pages-for-subheaders/workloads-and-pods.md)
|
|
- [负载均衡器/Ingress](../../pages-for-subheaders/load-balancer-and-ingress-controller.md)
|
|
- [服务发现记录](kubernetes-resources-setup/create-services.md)
|
|
- [持久卷声明](../../pages-for-subheaders/create-kubernetes-persistent-storage.md)
|
|
- [证书](kubernetes-resources-setup/encrypt-http-communication.md)
|
|
- [ConfigMap](kubernetes-resources-setup/configmaps.md)
|
|
- [镜像仓库](kubernetes-resources-setup/kubernetes-and-docker-registries.md)
|
|
- [密文](kubernetes-resources-setup/secrets.md)
|
|
|
|
为了在 vanilla Kubernetes 集群中管理权限,集群管理员要为每个命名空间配置基于角色的访问策略。Rancher 在项目级别上分配用户权限,项目中的命名空间会自动继承项目的权限。
|
|
|
|
:::note
|
|
|
|
如果你使用 `kubectl`创建命名空间,由于 `kubectl` 不要求将新命名空间限定在你可以访问的项目内,因此你可能无法使用该命名空间。如果你的权限仅限于项目级别,则最好[通过 Rancher 创建命名空间](#创建命名空间),以确保你有权访问该命名空间。
|
|
|
|
:::
|
|
|
|
### 创建命名空间
|
|
|
|
创建一个新的命名空间来隔离项目中的应用和资源。
|
|
|
|
:::tip
|
|
|
|
使用可以分配给命名空间的项目资源(例如,[工作负载](kubernetes-resources-setup/workloads-and-pods/deploy-workloads.md)、[证书](kubernetes-resources-setup/encrypt-http-communication.md)、[ConfigMap](kubernetes-resources-setup/configmaps.md) 等)时,你可以动态创建命名空间。
|
|
|
|
:::
|
|
|
|
1. 在左上角,单击 **☰ > 集群管理**。
|
|
1. 在**集群**页面上,转到要在其中创建命名空间的集群,然后单击 **Explore**。
|
|
1. 单击**集群 > 项目/命名空间**。
|
|
1. 转到要添加命名空间的项目,并单击**创建命名空间**。或者,你也可以转到**不在项目内**以创建不与项目关联的命名空间。
|
|
|
|
1. **可选**:如果你的项目具有有效的[资源配额](../../pages-for-subheaders/manage-project-resource-quotas.md),你可以覆盖默认资源**限制**(限制命名空间可以使用的资源)。
|
|
|
|
1. 输入**名称**,然后单击**创建**。
|
|
|
|
**结果**:已将命名空间添加到项目中。你可以开始将集群资源分配给命名空间。
|
|
|
|
### 将命名空间移动到另一个项目
|
|
|
|
在某些情况下(例如希望其他团队使用该应用时),集群管理员和成员可能需要将命名空间移动到另一个项目:
|
|
|
|
1. 在左上角,单击 **☰ > 集群管理**。
|
|
1. 在**集群**页面上,转到需要移动命名空间的集群,然后单击 **Explore**。
|
|
1. 单击**集群 > 项目/命名空间**。
|
|
1. 转到要移动的命名空间,然后单击 **⋮ > 移动**。
|
|
|
|
1. 选择要移动到另一个项目的命名空间。然后单击**移动**。你可以同时移动多个命名空间。
|
|
|
|
:::note 注意事项:
|
|
|
|
- 不要移动 `System` 项目中的命名空间。移动命名空间可能会对集群网络产生不利影响。
|
|
- 你不能将命名空间移动到已配置[资源配额](../../pages-for-subheaders/manage-project-resource-quotas.md)的项目中。
|
|
- 如果你将命名空间从已设置配额的项目移动到未设置配额的项目,则会删除该命名空间的配额。
|
|
|
|
1. 为新命名空间选择一个新项目,然后单击**移动**。你也可以选择**无**,从而将命名空间从所有项目中移除。
|
|
|
|
**结果**:你的命名空间已移至其他项目(或从所有项目中移除)。如果命名空间绑定了项目资源,命名空间会释放这些资源,然后绑定新项目的资源。
|
|
|
|
### 编辑命名空间资源配额
|
|
|
|
你可以覆盖命名空间默认限制,从而为特定命名空间提供对更多(或更少)项目资源的访问权限:
|
|
|
|
有关详细信息,请参阅[编辑命名空间资源配额](../advanced-user-guides/manage-projects/manage-project-resource-quotas/override-default-limit-in-namespaces.md)。 |