Kubernetes on Karios

Karios Managed Kubernetes (k8s) lets you create and run production-grade Kubernetes clusters directly from Control Center. Karios provisions the control-plane and worker nodes, installs Kubernetes, and gives you a single place to view, connect to, scale, and test each cluster.

Overview

k8s and k3s on Karios

Karios offers Kubernetes in two forms, shown side by side as cards on the same Kubernetes dashboard. This page covers k8s (managed); the lightweight k3s has its own guide.

Option

What it is

Choose it when

k8s

Fully managed Kubernetes. Karios provisions the control-plane and worker VMs, installs Kubernetes, and runs the control plane for you.

You want a production-grade cluster with high availability, autoscaling, and built-in cluster tests.

k3s

A lightweight, self-managed Kubernetes distribution you run yourself.

You want a small, low-overhead cluster for development, edge, or lightweight production.

How to access Kubernetes

  1. Sign in to Control Center (the Karios web console).

  2. Open Kubernetes from the left sidebar.

  3. The Kubernetes dashboard opens with two cards, Kubernetes (k8s) and k3s. All managed-Kubernetes work in this guide starts from the k8s card.

Kubernetes dashboard showing the k8s and k3s cards

What you’ll see in the screenshot above:

On each card you also see a Ready badge once it is initialized, Clusters / Control nodes / Worker nodes counts, and View clusters / Create cluster actions.

Who can access it (RBAC)

Access to Kubernetes is governed by role-based access control (RBAC): your Karios role must carry Kubernetes permissions.

  • View clusters - Kubernetes and Node view permissions.

  • Create, scale, and delete clusters - Kubernetes and Node manage permissions.

These are typically carried by the DevOps and Admin roles. If the Kubernetes sidebar item or the k8s card is missing, your role does not have Kubernetes access yet - ask an administrator to enable it.

See also

Before creating clusters:

Key concepts

  • Cluster - the control-plane and worker nodes Karios provisions to run your workloads.

  • Control nodes - run the cluster control plane; Karios uses a single control node by default, or an odd number when HA is enabled.

  • Worker nodes - run your application workloads; you set and scale their count.

  • Kubernetes version - the Kubernetes release Karios installs, chosen on the create form.

  • Zone - the Karios zone the cluster is deployed in.

Prerequisites

Before you create your first cluster, make sure the following are in place. Access (RBAC) is covered in Who can access it (RBAC) above.

Instance profile

Cluster nodes are sized by an instance profile. Before creating a cluster, make sure an instance profile is available that meets the minimum of 2 cores, 1000 MHz CPU, and 2048 MB RAM (create a dedicated k8s profile if your environment does not have one). The chosen profile’s CPU and memory are shown on the cluster’s Details tab.

Zone must be initialized

Kubernetes must be initialized once per zone before the first cluster can be created there. On the Kubernetes dashboard, use Initialize Kubernetes (k8s) on the k8s card and select the zone. Karios downloads and configures the Kubernetes Boot Image and control components; this can take several minutes and progress is shown on screen. The k8s card shows Setup required until it is ready and Ready when clusters can be created. (This is the k8s equivalent of the k3s initialization in k3s on Karios.)

Note

If all Kubernetes versions are being destroyed, wait for that process to finish before re-initializing.

Getting Started

The end-to-end flow for a first-time user is:

  1. Initialize Kubernetes in your zone (one-time, from the k8s card).

  2. Create a cluster (see Managing Clusters).

  3. Fetch the kubeconfig from the cluster’s Access tab and connect with kubectl (a successful kubectl get nodes lists your cluster’s nodes).

From the k8s card, Create cluster opens the create form and View clusters opens the Kubernetes cluster list.

Managing Clusters

Creating a cluster

From the k8s card (or the + K8s cluster button on the cluster list), choose Create cluster and fill in the Create Kubernetes Cluster form.

Field

Required

Notes

Cluster Name

Yes

Name for the cluster; used to name each node VM (<name>-control-…, <name>-node-…).

Description

Yes

Short description shown in the cluster list and overview.

Zone

Yes

Must be initialized for Kubernetes.

Kubernetes Version

Yes

The Kubernetes release to install (for example v1.30.3); pick the latest stable for new clusters.

Instance Profile

Yes

Compute size for the nodes; must meet the minimum (2 cores / 1000 MHz / 2048 MB).

Network

Yes

The guest network the cluster attaches to.

Cluster Size (Number of worker nodes)

Yes

Worker node count; minimum 1. The control plane runs on a single node by default; enable HA in Advanced Settings for multiple control nodes.

Create Kubernetes Cluster form

What you’ll see in the screenshot above:

The Create Kubernetes Cluster form is a right-side drawer with the fields above. At the bottom, use Create Cluster or Cancel. (The create action is hidden while Kubernetes versions are being destroyed.)

Advanced settings (high availability)

The create form includes an Advanced Settings section for running a highly available control plane:

Option

Description

HA Enabled

Enable High Availability mode with multiple control-plane nodes.

Number of Control Nodes

Control-plane node count for HA; must be an odd number >= 3 (3, 5, 7). Only shown when HA is enabled.

External Load Balancer IP

IP that distributes traffic across the control-plane nodes. Must already be allocated in your environment. Required for shared networks when HA is enabled; not needed for isolated networks.

Number of etcd Nodes

Dedicated etcd nodes for cluster state; must be an odd number (1, 3, 5). Leave empty to use the default.

Warning

When enabling HA on a shared network, provide an external load balancer IP that is already allocated and available; an unallocated IP will cause cluster creation to fail. For isolated networks the load balancer IP is not required (the network handles routing internally).

Watching provisioning

After you click Create Cluster, Karios provisions the control-plane and worker VMs and installs Kubernetes. The cluster moves Creating -> Running on success (other states: Starting, Stopping, Stopped, and Destroying). Once it is Running, the cluster appears in the Kubernetes clusters list.

Kubernetes clusters list

What you’ll see in the screenshot above:

The Kubernetes clusters list. Summary cards show Total Clusters, Running, Stopped, and Total Nodes. The table lists each cluster with its name, description, state, zone, version, and created time, row quick actions (view, stop/start, delete), and a + K8s cluster button. Expanding a row lists the cluster’s nodes (for example k8s-control-… and k8s-node-…) with hostname, state, IP, and OS.

Viewing a cluster

Open a cluster (click the row’s eye icon or select it in the sidebar) to see its detail page. It has six tabs, Details, VMs, Access, Services, Pods, and Tests, plus top-right quick actions to stop/start and delete.

Details tab

The Details tab shows four cards:

  • Cluster Overview - name, description, state, created time, and autoscaling status.

  • Network Configuration - network name and IP address.

  • Instance Profiles & Resources - the instance profile, CPU, memory, and VM template.

  • Ceph Storage - persistent-storage configuration status (with a Configure action).

Kubernetes cluster Details tab

What you’ll see in the screenshot above:

The Details tab with the four cards above and the stop/start and delete actions in the top-right.

VMs tab and scaling

The VMs tab lists the cluster’s node VMs (name, hostname, zone, state, IP, network, OS) and a Scale button that opens the Scale Cluster dialog. Scaling changes the number of worker nodes; the control-plane size is fixed at creation (single node, or the HA count set in Advanced Settings).

Kubernetes cluster VMs tab

What you’ll see in the screenshot above:

The VMs tab, Virtual Machines for the cluster, with the node list and the Scale button.

Manual scaling. On the Manual Scale sub-tab, choose Scale Up or Scale Down and a Number of Nodes. The cluster must keep at least 1 worker node (scale-down is blocked below that).

Scale Cluster dialog, Manual Scale

What you’ll see in the screenshot above:

The Scale Cluster dialog on Manual Scale: a Scale Up / Scale Down toggle, the current worker count, the resulting total, and a Number of Nodes input.

Auto-scaling. On the Auto-Scale sub-tab, set Minimum Nodes and Maximum Nodes and choose Enable Autoscaling. The cluster then automatically adjusts worker nodes between the min and max based on workload demand. Autoscaling status is shown on the Details tab.

Scale Cluster dialog, Auto-Scale

What you’ll see in the screenshot above:

The Auto-Scale sub-tab with Minimum Nodes and Maximum Nodes inputs, the resulting autoscaling range, and the Enable Autoscaling button.

Access tab (kubeconfig)

The Access tab shows the cluster’s kubeconfig inline with Copy and Download Kubeconfig actions, plus How to use this kubeconfig and expandable Using CLI and K8S Dashboard UI sections. Wait until the cluster is Running before using it.

# save the downloaded kubeconfig to ~/.kube/config (or point --kubeconfig at it), then:
kubectl --kubeconfig ~/.kube/config get nodes
Kubernetes cluster Access tab

What you’ll see in the screenshot above:

The Access tab, Cluster Access, with the kubeconfig content, Copy / Download Kubeconfig buttons, the three-step usage guide, and the Using CLI and K8S Dashboard UI panels.

Note

kubectl must be installed on the machine you connect from.

Services tab

The Services tab lists the Kubernetes Services running on the cluster (name, namespace, cluster IP, external IPs, ports, created), with a namespace filter and search. While the cluster is Running the list is live (Synced just now); when the cluster is Stopped it shows the last-known services.

Kubernetes cluster Services tab

What you’ll see in the screenshot above:

The Services tab with the live service list, namespace filter, and search.

Pods tab

The Pods tab lists the cluster’s Pods (name, namespace, phase, pod IP, node, ready count, restarts, created), with a namespace filter and search. It is live while the cluster is Running and shows the last-known pods when Stopped.

Kubernetes cluster Pods tab

What you’ll see in the screenshot above:

The Pods tab with the live pod list, phase, node placement, ready/restart counts, namespace filter, and search.

Tests tab

The Tests tab runs cluster tests. Choose one or more tests under Select Tests and click Run. Results show the pass rate, status, and a Test Breakdown (passed / failed / skipped / total), a Pass Rate Trend chart, and a Test History table with downloadable reports.

Kubernetes cluster Tests tab

What you’ll see in the screenshot above:

The Tests tab: the test selector and Run button, the latest-run pass rate and breakdown, the pass-rate trend, and the test history with per-run Report downloads.

Starting, stopping, and deleting a cluster

Use the row quick actions or the cluster detail’s top-right actions:

  • Stop gracefully shuts down the cluster’s node VMs (Running -> Stopped) and pauses its workloads; Start powers them back on (Stopped -> Running). While stopped, the Services and Pods tabs show the last-known state.

  • Delete destroys the cluster and its node VMs after a confirmation dialog. This cannot be undone. A cluster in a transitioning state (Starting, Stopping, or Destroying) cannot be deleted.

Warning

Deleting a cluster permanently destroys its nodes and their data. Download any kubeconfig or back up anything you need first.

Node (VM) Management

Each node is a standard Karios instance named <cluster>-control-… or <cluster>-node-…. The cluster’s VMs tab lists them; to manage a node’s console, snapshots, volumes, metrics, or firewall / port-forwarding rules, use the standard Karios areas:

  • Compute -> Instances - console, start/stop/reboot, metrics, snapshots, and volumes.

  • Network - port forwarding, firewall (ingress/egress) rules, and ACLs.

Tip

Filter the Instances list by your cluster name to find all of its nodes quickly.

Troubleshooting

Symptom

What to do

Create is blocked / k8s card shows Setup required

Initialize Kubernetes for the zone first (k8s card -> Initialize Kubernetes (k8s)).

No instance profile can be selected

Create a k8s instance profile meeting the minimum (2 cores / 1000 MHz / 2048 MB).

Cluster does not reach Running / a node fails to provision

Open the cluster Details and VMs tabs to find the failed node; retry, or delete and recreate.

HA cluster creation fails on a shared network

The external load balancer IP is not allocated. Allocate the IP first, or use an isolated network (no load balancer IP needed).

Scale-down rejected

The cluster must keep at least 1 worker node.

Cluster cannot be deleted

Clusters in a transitioning state (Starting, Stopping, Destroying) cannot be deleted; wait for the state to settle.

Services / Pods tabs are empty or stale

They are live only while the cluster is Running; a Stopped cluster shows the last-known state. Start the cluster to refresh.

kubectl cannot reach the cluster

Confirm the cluster is Running and you downloaded the current kubeconfig from the Access tab.

Quick Reference

Setting

Value

Worker nodes

Minimum 1 (manual), or a min/max range (auto-scaling).

Control plane

Single node by default; enable HA in Advanced Settings for an odd number (>= 3) of control nodes.

Minimum instance profile

2 cores / 1000 MHz / 2048 MB.

Kubernetes version

Selected at create time (for example v1.30.3).

Cluster detail tabs

Details, VMs, Access, Services, Pods, Tests.

Scaling

Manual (Scale Up/Down) or Auto-Scale (min/max worker nodes).

Access

kubeconfig from the Access tab (Copy or Download).


→ Next: k3s on Karios