Overview

OneKS provides Elastic Kubernetes as a Service on OpenNebula. It offers a structured way to create, access, operate, upgrade, recover, and deprovision Kubernetes Clusters (K8s Clusters) by combining a user-facing service layer with Cluster API-based infrastructure provisioning through CAPONE, the Cluster API provider for OpenNebula.

OneKS is designed for teams that need a simple and repeatable way to consume Kubernetes inside OpenNebula. Typical use cases include development and test environments, self-service Kubernetes delivery in private cloud environments, and standardized Cluster offerings for different sizes and topologies.

OneKS builds on CAPONE to expose a K8s Cluster-centric lifecycle model for users. Users interact mainly with OneKS K8s Clusters and node groups, while lower-level OpenNebula, Cluster API, and dependency-management details are handled underneath.

How Should I Read this Chapter

If you have not used OneKS before, you should start by reading the Basic Configuration Guide to set up OneKS then follow the Quick-start Guide where you will learn to set up a basic K8s Cluster with OneKS. After completing the Quick-start Guide, move on to Core Concepts to familiarize yourself with key OneKS concepts.

After completing the introductory documentation, you can find more information about managing K8s Clusters with OneKS in the following reference documentation:

Interfaces

OneKS can be accessed through the following interfaces:

  • OneKS CLI: Used for manual K8s Cluster and node-group operations from the command line.
  • OneKS REST API: Exposed under /api/v1 for automation and programmatic integration.
  • Sunstone Web UI: Provides graphical workflows for creating, accessing, and managing OneKS K8s Clusters.

What OneKS Manages

OneKS manages K8s Clusters as top-level resources. A K8s Cluster owns or coordinates:

  • Control Plane: One logical control-plane group, containing one or more control-plane nodes depending on the selected control-plane flavour.
  • Node Groups: Zero or more worker-capacity groups attached to the K8s Cluster.
  • Supporting Infrastructure: Networks, images, VM templates, temporary seed VMs, virtual routers, and related OpenNebula resources.
  • Lifecycle State: The current operational state of the K8s Cluster and its groups.
  • Historical Events: Lifecycle actions and state transitions.
  • Access Information: kubeconfig retrieval for Kubernetes API access.
  • Logs: K8s Cluster-level and group-level lifecycle logs.

OneKS users interact primarily with the K8s Cluster and node-group domains. Lower-level OpenNebula, CAPONE, and Cluster API resources are orchestrated beneath those abstractions.

OneKS should be understood together with the following adjacent components:

  • CAPONE: The Cluster API provider for OpenNebula. It provides the lower-level declarative lifecycle integration between Kubernetes Cluster API and OpenNebula infrastructure.
  • OpenNebula Cloud Resources: VM templates, networks, images, virtual routers, and related infrastructure resources used to provision and operate the K8s Cluster.
  • RKE2: The Kubernetes distribution used by the current OneKS implementation.
  • OneKS API: The programmatic interface for K8s Cluster and node-group lifecycle operations.
  • Kubernetes Cloud Provider: The in-cluster integration layer for OpenNebula infrastructure behavior.
  • OneGate: The OpenNebula service used by Virtual Machines to communicate with OpenNebula during bootstrap and runtime configuration. In a OneKS deployment, OneGate must be configured and reachable so the K8s Cluster bootstrap process can complete successfully.
  • Transparent Proxy tproxy: The OpenNebula networking configuration used to expose required OpenNebula services, such as OneGate and the XML-RPC API, through the Front-end public network OneKS deployments require tproxy rules for ports 5030 and 2633.
  • Cluster API References: Useful when understanding the lower-level declarative lifecycle and CAPONE integration details.

Supported Versions

OneKS supports the K8s versions exposed by the configured K8s Cluster profiles. Refer to the Platform Notes to see the Kubernetes versions currently supported bye OneKS.