Overview

Introduction

A container cluster consists of a set of worker machines, called nodes, that run containerized applications. A node can be a virtual machine (VM) or a physical machine (PM), depending on your service requirements. The components on a node include kubelet, container runtime, and kube-proxy.

A Kubernetes cluster consists of master nodes and node nodes. The nodes described in this section refer to worker nodes, the computing nodes of a cluster that run containerized applications.

CCE uses high-performance Elastic Cloud Servers (ECSs) as nodes to build highly available Kubernetes clusters.

Notes

Node Lifecycle

A lifecycle indicates the node statuses recorded from the time when the node is created through the time when the node is deleted or released.

Table 1 Node statuses

Status

Status Attribute

Description

Available

Stable state

The node is running properly and is connected to the cluster.

Nodes in this state can provide services.

Unavailable

Stable state

The node is not running properly.

Instances in this state no longer provide services. In this case, perform the operations in Resetting a Node.

Creating

Intermediate state

The node has been created but is not running.

Installing

Intermediate state

The Kubernetes software is being installed on the node.

Deleting

Intermediate state

The node is being deleted.

If this state stays for a long time, an exception occurs.

Stopped

Stable state

The node is stopped properly.

A node in this state cannot provide services. You can start the node on the ECS console.

Error

Stable state

The node is abnormal.

Instances in this state no longer provide services. In this case, perform the operations in Resetting a Node.

Mapping between Node OSs and Container Engines

Table 2 Node OSs and container engines in CCE clusters

OS

Kernel Version

Container Engine

Container Storage Rootfs

Container Runtime

CentOS 7.x

3.x

Docker

Clusters of v1.19 and earlier use Device Mapper.

Clusters of v1.21 and later use OverlayFS.

runC

EulerOS 2.5

Device Mapper

Table 3 Node OSs and container engines in CCE Turbo clusters

Node Type

OS

Kernel Version

Container Engine

Container Storage Rootfs

Container Runtime

VM

centos 7.x

3.x

Docker

OverlayFS

Runc

BMS in the shared resource pool

EulerOS 2.9

4.x

containerd

Device Mapper

Kata

Secure Containers and Common Containers

Secure (Kata) containers are distinguished from common containers in a few aspects.

The most significant difference is that each secure container (pod) runs on an independent micro-VM, has an independent OS kernel, and is securely isolated at the virtualization layer. CCE provides container isolation that is more secure than independent private Kubernetes clusters. With isolated OS kernels, computing resources, and networks, pod resources and data will not be preempted and stolen by other pods.

You can run common or secure containers on a single node in a CCE Turbo cluster. The differences between them are as follows:

Category

Secure Container (Kata)

Common Container (Docker)

Common Container (containerd)

Node type used to run containers

Bare-metal server (BMS)

VM

VM

Container engine

containerd

Docker

Default value for common containers created on the console.

containerd

Container runtime

Kata

runC

runC

Container kernel

Exclusive kernel

Sharing the kernel with the host

Sharing the kernel with the host

Container isolation

Lightweight VMs

cgroups and namespaces

cgroups and namespaces

Container engine storage driver

Device Mapper

OverlayFS2

OverlayFS

Pod overhead

Memory: 50 MiB

CPU: 0.1 cores

Pod overhead is a feature for accounting for the resources consumed by the pod infrastructure on top of the container requests and limits. For example, if limits.cpu is set to 0.5 cores and limits.memory to 256 MiB for a pod, the pod will request 0.6-core CPUs and 306 MiB of memory.

None

None

Minimal specifications

Memory: 256 MiB

CPU: 0.25 cores

None

None

Container engine CLI

crictl

docker

crictl

Pod computing resources

The request and limit values must be the same for both CPU and memory.

The request and limit values can be different for both CPU and memory.

The request and limit values can be different for both CPU and memory.

Host network

Not supported

Supported

Supported