cloud-container-engine/umn/source/namespaces/creating_a_namespace.rst
proposalbot a70a2c8b2e Changes to cce_umn from docs/doc-exports#418 (CCE UMN for 1.23 reuploaded -20221
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: proposalbot <proposalbot@otc-service.com>
Co-committed-by: proposalbot <proposalbot@otc-service.com>
2022-11-10 18:57:33 +00:00

90 lines
15 KiB
ReStructuredText

:original_name: cce_01_0278.html
.. _cce_01_0278:
Creating a Namespace
====================
When to Use Namespaces
----------------------
A namespace is a collection of resources and objects. Multiple namespaces can be created inside a cluster and isolated from each other. This enables namespaces to share the same cluster Services without affecting each other.
For example, you can deploy workloads in a development environment into one namespace, and deploy workloads in a testing environment into another namespace.
Prerequisites
-------------
At least one cluster has been created. For details, see :ref:`Creating a CCE Cluster <cce_01_0028>`.
Notes and Constraints
---------------------
A maximum of 6,000 Services can be created in each namespace. The Services mentioned here indicate the Kubernetes Service resources added for workloads.
Namespace Types
---------------
Namespaces can be created in either of the following ways:
- Created automatically: When a cluster is up, the **default**, **kube-public**, **kube-system**, and **kube-node-lease** namespaces are created by default.
- **default**: All objects for which no namespace is specified are allocated to this namespace.
- **kube-public**: Resources in this namespace can be accessed by all users (including unauthenticated users), such as public add-ons and container charts.
- **kube-system**: All resources created by Kubernetes are in this namespace.
- **kube-node-lease**: Each node has an associated Lease object in this namespace. The object is periodically updated by the node. Both NodeStatus and NodeLease are considered as heartbeats from a node. In versions earlier than v1.13, only NodeStatus is available. The NodeLease feature is introduced in v1.13. NodeLease is more lightweight than NodeStatus. This feature significantly improves the cluster scalability and performance.
- Created manually: You can create namespaces to serve separate purposes. For example, you can create three namespaces, one for a development environment, one for joint debugging environment, and one for test environment. You can also create one namespace for login services and one for game services.
Creating a Namespace
--------------------
#. Log in to the CCE console. In the navigation pane, choose **Resource Management** > **Namespaces**. Click **Create Namespace**.
#. Set the parameters listed in :ref:`Table 1 <cce_01_0278__table5523151617575>`. The parameters marked with an asterisk (*) are mandatory.
.. _cce_01_0278__table5523151617575:
.. table:: **Table 1** Parameters for creating a namespace
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Parameter | Description |
+===================================+==========================================================================================================================================================================================================================================================================================================+
| \* Namespace | Unique name of the created namespace. |
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| \* Cluster | Cluster to which the namespace belongs. |
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Node Affinity | If this parameter is set to on, workloads in this namespace will be scheduled only to nodes with specified labels. To add labels to a node, choose **Resource Management** > **Nodes** > **Manage Labels**. |
| | |
| | This parameter is displayed only for clusters of v1.13.10-r0 and later. |
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Description | Description about the namespace. |
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Set Resource Quotas | Resource quotas can limit the amount of resources available in namespaces, achieving resource allocation by namespace. |
| | |
| | .. important:: |
| | |
| | NOTICE: |
| | **You are advised to set resource quotas in the namespace as required to prevent cluster or node exceptions caused by resource overload.** |
| | |
| | For example, the default number of pods that can be created on each node in a cluster is 110. If you create a cluster with 50 nodes, you can create a maximum of 5,500 pods. Therefore, you can set a resource quota to ensure that the total number of pods in all namespaces does not exceed 5,500. |
| | |
| | Quotas can be configured for the following resources: |
| | |
| | - CPU (cores) |
| | - Memory (MiB) |
| | - StatefulSet |
| | - Deployment |
| | - Job |
| | - Cron job |
| | - Pod |
| | - Service |
| | |
| | Enter an integer. If the quota of a resource is set to **0**, no limit is posed on the resource. |
| | |
| | If you want to limit the CPU or memory quota, you must specify the CPU or memory request value when creating a workload. |
+-----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
#. When the configuration is complete, click **OK**.