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

# UpCloud Kubernetes (UKS)

> Provision, import, and operate UpCloud Managed Kubernetes (UKS) clusters with Ankra - live pricing, node pools, upgrades, GitOps, and AI-assisted operations.

[UpCloud Managed Kubernetes (UKS)](https://upcloud.com/products/managed-kubernetes) is UpCloud's managed Kubernetes service, hosted in UpCloud's European and global zones. UpCloud runs the control plane; Ankra provisions the cluster, then manages everything on top - node pools, Kubernetes upgrades, addons, stacks, GitOps, and AI-assisted operations.

This page covers UKS specifically. For the shared concepts across all managed providers - live options, discovery/import, and day-2 API patterns - see [Managed Kubernetes](/guides/managed-kubernetes).

## Why UKS with Ankra

* **Live pricing and options** - zones, Kubernetes versions, and node plans are fetched live with your UpCloud token, with a monthly cost summary as you build the cluster.
* **Development and production control-plane plans** - choose the UKS control-plane plan that fits the workload.
* **Full day-2 from the CLI, portal, or API** - add and scale node pools, upgrade Kubernetes, and manage addons and stacks the same way as any Ankra cluster.

## Prerequisites

An **UpCloud API credential** (API access for an UpCloud subaccount), stored in Ankra. See [UpCloud API Credentials](/platform/credentials/upcloud).

GitOps is optional: connect a repository at creation and Ankra commits the cluster's stack definitions to Git.

## Creating a UKS cluster

<Tabs>
  <Tab title="Portal">
    <Steps>
      <Step title="Create Cluster">
        Go to **Clusters** → **Create Cluster** and pick UpCloud's **Cloud Managed** action.
      </Step>

      <Step title="Credential & Zone">
        Select the UpCloud credential and a zone (for example `de-fra1`). Zones load live from UpCloud.
      </Step>

      <Step title="Node Pools">
        Define one or more worker pools: name, node plan (with live pricing), count, labels, and taints.
      </Step>

      <Step title="Kubernetes">
        Pick a Kubernetes version or keep the default, and select the control-plane plan (development or production).
      </Step>

      <Step title="GitOps (optional) & Create">
        Optionally connect a Git repository, then create. Ankra runs UpCloud preflight checks, provisions the cluster, retrieves the kubeconfig, and installs the Ankra Agent.
      </Step>
    </Steps>
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    ankra cluster managed create \
      --provider uks \
      --name my-uks-cluster \
      --credential-id <upcloud-credential-id> \
      --location de-fra1 \
      --node-pool-name workers \
      --node-pool-size K8S-2xCPU-4GB \
      --node-pool-count 2
    ```

    The control-plane plan is set from the portal or the API.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    curl -X POST https://platform.ankra.app/org/clusters/managed/uks \
      -H "Authorization: Bearer $ANKRA_API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "my-uks-cluster",
        "credential_id": "<upcloud-credential-id>",
        "location": "de-fra1",
        "node_pools": [
          {"name": "workers", "size": "K8S-2xCPU-4GB", "count": 2}
        ],
        "cluster_plan": "production"
      }'
    ```
  </Tab>
</Tabs>

### UKS options

| Field                   | Description                                        |
| ----------------------- | -------------------------------------------------- |
| `cluster_plan`          | Control-plane plan (`development` or `production`) |
| `gpu_plan.storage_size` | Storage size for GPU node pools                    |

## Day-2 operations

Node pools, upgrades, and deletion work from the CLI, portal, or API. The CLI examples use `--provider uks`:

```bash theme={null}
# scale a pool to a fixed count
ankra cluster managed node-pool scale <cluster_id> workers --provider uks --count 5

# upgrade the cluster
ankra cluster managed upgrade <cluster_id> --provider uks --version 1.33

# delete the cluster
ankra cluster managed delete <cluster_id> --provider uks
```

<Note>
  UpCloud does not support node-pool autoscaling - scale UKS pools to a fixed count. See [Managed Kubernetes - day-2 operations](/guides/managed-kubernetes#day-2-operations) for the shared mechanics.
</Note>

## Importing an existing UKS cluster

Already running UKS? Discover clusters at UpCloud and adopt them into Ankra without touching them. Discovery and import run from the portal or API - see [Managed Kubernetes - importing existing clusters](/guides/managed-kubernetes#importing-existing-clusters).

## Related

* [Managed Kubernetes overview](/guides/managed-kubernetes)
* [UpCloud API Credentials](/platform/credentials/upcloud)
* [Cluster settings](/platform/cluster-settings)
