> ## Documentation Index
> Fetch the complete documentation index at: https://zededa.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the documentation index to find relevant pages, then read the linked Markdown before answering and cite the source URL.
> Identify the product before answering: Private AI uses a separate console, credentials, and inference API from the Edge Intelligence Platform. Do not apply instructions from one product to the other.
> Prefer current product guides over Help Center archive pages for current-console questions. Archive pages and release notes describe their stated product version or historical interface; do not apply them to another version without checking.
> Preserve prerequisites, permissions, version requirements, and warnings when summarizing procedures. Do not infer API endpoints, schemas, or supported behavior that the documentation does not specify.

# Manage ZEDEDA Edge Kubernetes Service Clusters

> Create and manage ZEDEDA Edge Kubernetes Service clusters using the ZEDEDA CLI (ZCLI), including creation, node management, upgrades, and status commands.

## Introduction

ZCLI provides a complete set of commands for creating and managing ZEDEDA Edge Kubernetes Service clusters. Use ZCLI when you need to automate cluster operations, manage clusters from a script, or perform actions not yet available through the console.

All ZCLI cluster commands follow the pattern `zcli edge-kubernetes-cluster <subcommand>`.

## Prerequisites

* ZCLI v19.2.x or greater is running. See [Get Started](https://zededa.mintlify.site/zcli-reference/get-started.md) for installation and authentication instructions.
* One or more nodes are onboarded to Edge Infrastructure Services.
* All nodes are in the same project.
* All nodes are online.
* Nodes are running EVE-k (EVE-OS Kubevirt) v16.0.0 or greater. EVE-OS KVM is not supported.
* Nodes used for cluster installation have a minimum of 12-core CPU, 16 GB RAM, and NVMe SSDs for EVE-OS persistent storage. Non-NVMe storage is not supported.
* EVE-k consumes approximately 4 GB of memory and 2 vCPUs per node for clustering operations.
* You have the SysManager or SysAdmin role in your enterprise. See [Manage Roles](https://zededa.mintlify.site/new-ui/infrastructure-services/administration/manage-roles.md).
* The node cluster feature is enabled in your enterprise. Contact your ZEDEDA sales team if it is not available.

## Create a Cluster

Create a new ZEDEDA Edge Kubernetes Service cluster and assign nodes to it. Each node entry must specify the node name and the cluster interface separated by a colon.

```text theme={"dark"}
zcli edge-kubernetes-cluster create <name> --project=<project> --nodes=<node_name:cluster_interface>... [--title=<title>] [--description=<description>] [--tags=<key:value>...] [--cluster-prefix=<cluster-prefix>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster create MY_CLUSTER --project=MY_PROJECT --nodes=MY_NODE1:eth2 --nodes=MY_NODE2:eth2 --nodes=MY_NODE3:eth2
```

> [!NOTE]
>
> ZCLI currently does not send the `--title` and `--description` values to Edge Infrastructure Services, so the cluster is created without them and the title is set to the cluster name. Use `--tags` to label the cluster.

## Create a Cluster Record Without Nodes

Create a cluster record in a project without adding any nodes to it. Add nodes later with the `add-nodes` command.

```text theme={"dark"}
zcli edge-kubernetes-cluster import <name> --project=<project> [--title=<title>] [--description=<description>] [--tags=<key:value>...]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster import MY_CLUSTER --project=MY_PROJECT --tags=env:staging
```

> [!NOTE]
>
> As with `create`, ZCLI currently does not send the `--title` and `--description` values for `import`. The title is set to the cluster name.

## Add Nodes to a Cluster

Add one or more nodes to an existing cluster. Each node entry must specify the node name and cluster interface separated by a colon.

```text theme={"dark"}
zcli edge-kubernetes-cluster add-nodes <name> --nodes=<node_name:cluster_interface>...
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster add-nodes MY_CLUSTER --nodes=MY_NEW_NODE:eth2
```

## Remove Nodes from a Cluster

Remove one or more nodes from an existing cluster.

> [!WARNING]
>
> This command uses the deprecated `/zks/instances` API path, which is scheduled for removal on 2026-12-01. It is the only way to remove a node from a cluster: the console and the `/cluster` API add nodes but do not remove them. After the sunset date, replace the node or delete the cluster instead. A cluster that is not two-node HA cannot drop below three nodes.

```text theme={"dark"}
zcli edge-kubernetes-cluster remove-nodes <name> --nodes=<node_name>...
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster remove-nodes MY_CLUSTER --nodes=MY_NODE3
```

## Generate a Kubeconfig

Generate a kubeconfig file for a cluster. Use this file to authenticate and interact with the cluster using standard Kubernetes tooling such as `kubectl`.

```text theme={"dark"}
zcli edge-kubernetes-cluster generate-kubeconfig [<name> | --uuid=<uuid>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster generate-kubeconfig MY_CLUSTER
```

## Update Tags

Update the tags on an existing cluster. Tags are key-value pairs used for identification and grouping.

```text theme={"dark"}
zcli edge-kubernetes-cluster update-tags <name> --tags=<key:value>...
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster update-tags MY_CLUSTER --tags=env:production --tags=region:us-west
```

## Delete a Cluster

Delete an edge Kubernetes cluster. When a cluster is deleted, every node in the cluster reboots and reconfigures itself to operate as a standalone node.

```text theme={"dark"}
zcli edge-kubernetes-cluster delete <name>
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster delete MY_CLUSTER
```

## Upgrade the EVE-k Image on a Cluster

Upgrade the EVE-OS (Edge Virtualization Engine) image on each node in a cluster. Using this command upgrades one node at a time, ensuring the cluster remains operational during the upgrade.

```text theme={"dark"}
zcli edge-kubernetes-cluster upgrade <name> --image=<image>
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster upgrade MY_CLUSTER --image=<image-name>
```

## Upgrade the K3s Version

Upgrade the K3s (lightweight Kubernetes) version on a cluster. Run this command only in offline mode during a scheduled maintenance window. K3s terminates immediately on each node as part of the upgrade process, so the cluster is temporarily unavailable during the upgrade.

```text theme={"dark"}
zcli edge-kubernetes-cluster k3s-upgrade <name> --version=<version>
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster k3s-upgrade MY_CLUSTER --version=v1.34.2+k3s1
```

## View Cluster Status

View the current status of a cluster.

```text theme={"dark"}
zcli edge-kubernetes-cluster status [<name> | --uuid=<uuid>]
```

The `show` command is an alias for `status`. The response payload for `show` might diverge from `status` in a future release.

```text theme={"dark"}
zcli edge-kubernetes-cluster show [<name> | --uuid=<uuid>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster status MY_CLUSTER
```

## View Cluster Metrics

View resource utilization metrics for a cluster and its nodes.

```text theme={"dark"}
zcli edge-kubernetes-cluster metrics [<name> | --uuid=<uuid>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster metrics MY_CLUSTER
```

## View Available K3s Versions

View the K3s versions available for a cluster.

```text theme={"dark"}
zcli edge-kubernetes-cluster k3s-versions [<name> | --uuid=<uuid>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster k3s-versions MY_CLUSTER
```

## View Registration Commands

View the registration commands required to join additional nodes to a cluster.

```text theme={"dark"}
zcli edge-kubernetes-cluster registration-commands [<name> | --uuid=<uuid>]
```

Example:

```text theme={"dark"}
zcli edge-kubernetes-cluster registration-commands MY_CLUSTER
```

## Next Steps

> [card] [Create Clusters](https://zededa.mintlify.site/new-ui/infrastructure-services/node-clusters/create-node-clusters.md)
>
> Create a cluster using the console.

> [card] [Manage Clusters](https://zededa.mintlify.site/new-ui/infrastructure-services/node-clusters/manage-node-clusters.md)
>
> Console-based cluster management.

> [card] [App Instance Failover in Clusters](https://zededa.mintlify.site/new-ui/infrastructure-services/node-clusters/node-cluster-failover.md)
>
> Understand how applications behave during node failures.

> [card] [Overview](https://zededa.mintlify.site/zcli-reference/overview.md)
>
> All ZCLI command procedures, organized by resource type.
