:original_name: cce_10_0430.html
.. _cce_10_0430:
Basic Cluster Information
=========================
`Kubernetes `__ is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications.
For developers, Kubernetes is a cluster operating system. Kubernetes provides service discovery, scaling, load balancing, self-healing, and even leader election, freeing developers from infrastructure-related configurations.
When using Kubernetes, it is like you run a large number of servers as one and the method for deploying applications in Kubernetes is always the same.
Kubernetes Cluster Architecture
-------------------------------
A Kubernetes cluster consists of master nodes (Masters) and worker nodes (Nodes). Applications are deployed on worker nodes, and you can specify the nodes for deployment.
.. note::
For a cluster created on CCE, the master node is hosted by CCE. You only need to create a node.
The following figure shows the architecture of a Kubernetes cluster.
.. figure:: /_static/images/en-us_image_0000001568822869.png
:alt: **Figure 1** Kubernetes cluster architecture
**Figure 1** Kubernetes cluster architecture
**Master node**
A master node is the machine where the control plane components run, including API server, Scheduler, Controller manager, and etcd.
- API server: functions as a transit station for components to communicate with each other, receives external requests, and writes information to etcd.
- Controller manager: performs cluster-level functions, such as component replication, node tracing, and node fault fixing.
- Scheduler: schedules containers to nodes based on various conditions (such as available resources and node affinity).
- etcd: serves as a distributed data storage component that stores cluster configuration information.
In a production environment, multiple master nodes are deployed to ensure high cluster availability. For example, you can deploy three master nodes for your CCE cluster.
**Worker node**
A worker node is a compute node in a cluster, that is, a node running containerized applications. A worker node has the following components:
- kubelet: communicates with the container runtime, interacts with the API server, and manages containers on the node.
- kube-proxy: serves as an access proxy between application components.
- Container runtime: functions as the software for running containers. You can download images to build your container runtime, such as Docker.
Master Nodes and Cluster Scale
------------------------------
When you create a cluster on CCE, you can have one or three master nodes. Three master nodes can create a cluster in HA mode.
The master node specifications decide the number of nodes that can be managed by a cluster. You can select the cluster management scale, for example, 50 or 200 nodes.
Cluster Network
---------------
From the perspective of the network, all nodes in a cluster are located in a VPC, and containers are running on the nodes. You need to configure node-node, node-container, and container-container communication.
A cluster network can be divided into three network types:
- Node network: IP addresses are assigned to nodes in a cluster.
- Container network: IP addresses are assigned to containers in a cluster for communication. Currently, multiple container network models are supported, and each model has its own working mechanism.
- Service network: A Service is a Kubernetes object used to access containers. Each Service has a fixed IP address.
When you create a cluster, select a proper CIDR block for each network. Ensure that the CIDR blocks do not conflict with each other and have sufficient available IP addresses. **You cannot change the container network model after the cluster is created.** Plan the container network model properly in advance.
You are advised to learn about the cluster network and container network models before creating a cluster. For details, see :ref:`Container Network Models `.
Cluster Lifecycle
-----------------
.. table:: **Table 1** Cluster status
+-------------+-------------------------------------------------------------------+
| Status | Description |
+=============+===================================================================+
| Creating | A cluster is being created and is requesting for cloud resources. |
+-------------+-------------------------------------------------------------------+
| Running | A cluster is running properly. |
+-------------+-------------------------------------------------------------------+
| Scaling-out | A node is being added to a cluster. |
+-------------+-------------------------------------------------------------------+
| Scaling-in | A node is being deleted from a cluster. |
+-------------+-------------------------------------------------------------------+
| Hibernating | A cluster is hibernating. |
+-------------+-------------------------------------------------------------------+
| Awaking | A cluster is being woken up. |
+-------------+-------------------------------------------------------------------+
| Upgrading | A cluster is being upgraded. |
+-------------+-------------------------------------------------------------------+
| Unavailable | A cluster is unavailable. |
+-------------+-------------------------------------------------------------------+
| Deleting | A cluster is being deleted. |
+-------------+-------------------------------------------------------------------+