Skip to main content

Key Concepts

The key concepts of the Kubernetes Engine service are as follows.

Cluster

A cluster is the fundamental resource of the Kubernetes Engine, where all Kubernetes objects, including containerized applications, are run. The clusters provided by Kubernetes Engine are highly available, consisting of the control plane deployed and managed by KakaoCloud in its VPC and nodes deployed in the user's VPC, which users can manage directly.
The architecture of a Kubernetes Engine cluster is as follows.

Image. Cluster architecture
Cluster architecture

Control plane

The control plane is the master node that manages the cluster and serves as the unified endpoint for the cluster. All interactions with the cluster are made by calling APIs on the Kubernetes API server in the control plane. You can manage the cluster by executing commands via HTTP, gRPC protocols, or the Kubernetes command-line tool (kubectl), or by using the console UI to communicate with the Kubernetes API server. The control plane of the cluster is deployed and managed in KakaoCloud's VPC, with only the endpoint exposed to the user.

Node

The servers where containerized applications are executed are called nodes or worker nodes. A cluster consists of one or more nodes, which are VM instances provided by the Virtual Machine service. When creating a cluster in the Kubernetes Engine service, users can directly create a node pool. Based on the conditions of the created node pool, nodes are automatically generated and run in a specific subnet within the user-specified VPC.

A node supports the resources and services necessary for running containerized applications and includes the Kubernetes node agent (kubelet), which enables communication with the control plane, allowing the control plane to schedule containers on the node.

Node pool

A node pool is a group of nodes with the same instance type, and in Kubernetes Engine, nodes are managed in units of node pools. The node pool created when the cluster is created becomes the first node pool. Afterward, additional node pools with different instance types can be added to the cluster. Each node in the node pool is labeled with the Kubernetes node label kakaoi.io/kke-nodepool, which holds the name of the node pool as its value.

  • You can adjust the number of nodes in the node pool through node pool settings, but it is not possible to delete individual nodes from the node pool.
  • During the initial node pool creation, the latest Kubernetes version set for the cluster is selected. After that, each node pool can be independently updated and managed.

CNI

Kubernetes Engine supports CNI (Container Network Interface) plugins. CNI is the standard interface responsible for Kubernetes network communications, managing the configuration and communication of the node and pod network within the cluster. KakaoCloud's Kubernetes Engine supports the Calico and Cilium CNI plugins, and the CNI plugin selected during cluster creation is installed with the cluster. This allows you to efficiently optimize the network for your service environment by choosing the appropriate CNI plugin.

info

The CNI used by the cluster cannot be changed after the initial creation.

IAM role management

IAM role management in Kubernetes Engine follows role-based access control (RBAC) and integrates with IAM project roles to manage cluster resources. Therefore, users with permissions within a project can manage both the project and the cluster resources within it. All resources are created and managed under the project. Project roles are divided into Project Admin, Project Member, and Project Reader, and users with project permissions can create and manage all resources under the project.

IAM roleProject AdminProject MemberProject Reader
Manage project members✓               
Create clusters
Delete clusters
Configure clusters
View clusters
Add node pools
Delete node pools
Configure node pools
View node pools
Delete nodes
View nodes

Kubernetes RBAC

Kubernetes supports RBAC functionality, allowing the creation of fine-grained roles within the cluster. This functionality is also available in Kubernetes Engine. For more details on Kubernetes RBAC, please refer to the Kubernetes reference.

Resource status information

In Kubernetes Engine, the resource status can be checked for clusters, node pools, and nodes. The status information for each resource is as follows.

Cluster lifecycle and status

Image. Cluster lifecycle
Cluster lifecycle

Cluster statusDescription
ProvisionedCluster provisioning completed
PendingCluster provisioning preparation
ProvisioningCluster provisioning in progress
DeletingCluster deletion in progress
FailedFailed state requiring user intervention

Node pool lifecycle and status

Image. Node pool lifecycle
Node pool lifecycle

Node pool statusDescription
RunningNode pool running normally (regardless of node status)
Running (Scheduling Disable)All nodes in the node pool are in a scheduling-disabled state
UpdatingNode pool settings are being updated
ScalingUpNode count increasing
ScalingDownNode count decreasing
DeletingNode pool deletion in progress
FailedFailed state requiring user intervention

Node lifecycle and status

Image. Node lifecycle
Node lifecycle

Node statusDescription
RunningNode is ready and running
Running (Scheduling Disable)New scheduling on this node is disabled (unrelated to running pods)
ProvisionedNode provisioning completed
DeletedNode deletion completed
PendingNode provisioning preparation
ProvisioningNode provisioning in progress
DeletingNode deletion in progress
FailedFailed state requiring user intervention

Automatically generated resources during cluster/node pool creation

When creating a cluster or node pool in Kubernetes Engine, certain resources are automatically generated. These resources are also deleted when the cluster is deleted.

Automatically generated resources during cluster/node pool creation
TypeDescription
InstanceVM instances used as nodes
VolumeAll volumes used by VM instances or created by the NFS Client Provisioner
Security groupSecurity groups applied to nodes
caution

Automatically generated resources (instances, volumes, security groups) cannot have their names or settings changed, nor can they be deleted. Modifying the information of these related resources may cause the Kubernetes Engine service to operate abnormally, so please exercise caution.

Support information

The Kubernetes Engine service provides stable and tested updates for the latest Kubernetes versions.

Supported Kubernetes versions

Kubernetes Engine provides the latest Kubernetes versions after stabilization and testing. Please refer to Update cluster for updates when new versions are released.

Kubernetes versionKubernetes Engine support start dateNew cluster creationExisting cluster usage
1.28May 28, 2024AvailableAvailable
1.27March 18, 2024AvailableAvailable
1.26August 16, 2023AvailableAvailable
1.25August 16, 2023Not availableAvailable
1.24February 1, 2023Not availableAvailable
1.23July 7, 2022Not availableAvailable
1.22July 7, 2022Not availableAvailable

Supported node images

The worker node images provided in Kubernetes Engine are based on Ubuntu and optimized for the Kubernetes version. Please refer to Update node for updating node images when new versions are released.

Supported instances

The instances available for use as nodes in Kubernetes Engine are the same as the instance types provided by the Virtual Machine service. For more details on instance types, please refer to Instance type.