Managed Kubernetes
UpCloud Kubernetes Service (UKS) provides fully managed Kubernetes clusters. Deploy containerized applications with automatic scaling, upgrades, and high availability.
List plans
Returns a list of available Kubernetes node plans.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/plans \
-u your_username:your_password
List clusters
Returns a list of all Kubernetes clusters in the account.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes \
-u your_username:your_password
Get cluster details
Returns detailed information about a specific cluster.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
-u your_username:your_password
Create cluster
Creates a new Kubernetes cluster.
Attributes
- Name
name- Type
- string
- Description
Cluster name. Required.
- Name
zone- Type
- string
- Description
Zone identifier. Required.
- Name
version- Type
- string
- Description
Kubernetes version. Required.
- Name
network_uuid- Type
- string
- Description
Private network UUID. Required.
- Name
node_groups- Type
- array
- Description
Node group configurations. Required.
- Name
control_plane_ip_filter- Type
- array
- Description
IP addresses allowed to access the control plane.
- Name
private_node_groups- Type
- boolean
- Description
Whether node groups are private (no public IPs).
- Name
labels- Type
- array
- Description
Labels for classification.
Request
curl -X POST https://api.upcloud.com/1.3/kubernetes \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"name": "my-cluster",
"zone": "fi-hel1",
"version": "1.28",
"network_uuid": "034c12bc-cf15-4b19-97b2-0ab4e51bb98d",
"node_groups": [
{
"name": "default",
"count": 3,
"plan": "K8S-4xCPU-8GB",
"anti_affinity": true
}
],
"control_plane_ip_filter": ["0.0.0.0/0"]
}'
Modify cluster
Modifies an existing cluster configuration.
Request
curl -X PATCH https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"control_plane_ip_filter": ["10.0.0.0/8"]
}'
Get available upgrades
Returns a list of available Kubernetes versions that the cluster can be upgraded to.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/available-upgrades \
-u your_username:your_password
Upgrade cluster
Upgrades the cluster to a newer Kubernetes version.
Attributes
- Name
version- Type
- string
- Description
Kubernetes version to upgrade to.
- Name
strategy- Type
- object
- Description
Node group upgrade strategy. Manual strategy is used by default.
Request
curl -X POST https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/upgrade \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"version": "1.29",
"strategy": {
"type": "manual"
}
}'
Get kubeconfig
Returns the kubeconfig file for connecting to the cluster.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/kubeconfig \
-u your_username:your_password
Delete cluster
Deletes a Kubernetes cluster and all its resources.
Request
curl -X DELETE https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
-u your_username:your_password
List node groups
Returns a list of node groups in the cluster. A node group is a uniform set of worker nodes attached to a cluster.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups \
-u your_username:your_password
Get node group details
Returns detailed information about a specific node group, including the list of individual nodes.
Request
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/default \
-u your_username:your_password
Create node group
Creates a new node group in the cluster.
Attributes
- Name
name- Type
- string
- Description
Node group name. Required.
- Name
count- Type
- integer
- Description
Number of nodes. Required.
- Name
plan- Type
- string
- Description
Node plan. Required.
- Name
anti_affinity- Type
- boolean
- Description
Enable anti-affinity placement.
- Name
labels- Type
- array
- Description
Kubernetes labels for nodes.
- Name
taints- Type
- array
- Description
Kubernetes taints for nodes.
Request
curl -X POST https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"name": "gpu-nodes",
"count": 2,
"plan": "K8S-8xCPU-32GB",
"labels": [
{"key": "node-type", "value": "gpu"}
],
"taints": [
{"key": "gpu", "value": "true", "effect": "NoSchedule"}
]
}'
Modify node group
Modifies an existing node group. Use this to scale the number of nodes in a group.
Attributes
- Name
count- Type
- integer
- Description
Number of nodes in the group.
Request
curl -X PATCH https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/default \
-u your_username:your_password \
-H "Content-Type: application/json" \
-d '{
"count": 5
}'
Delete node group
Deletes a node group from the cluster.
Request
curl -X DELETE https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/gpu-nodes \
-u your_username:your_password