LinuxCommandLibrary

exo-compute-sks

Manage Exoscale SKS clusters

TLDR

List the supported SKS cluster versions

$ exo compute sks versions
copy

Create a new SKS cluster
$ exo compute sks create [cluster_name] [[-z|--zone]] [zone]
copy

List all SKS clusters
$ exo compute sks list
copy

Generate a Kubernetes kubeconfig file for an SKS cluster that expires in 1800 seconds
$ exo compute sks kubeconfig [cluster_name|id] [user] --ttl 1800 [[-z|--zone]] [zone]
copy

Create and add a Nodepool containing 3 nodes to an SKS cluster
$ exo compute sks nodepool add [cluster_name|id] [nodepool_name] --size 3 [[-z|--zone]] [zone]
copy

Remove a Nodepool from an SKS cluster
$ exo compute sks nodepool delete [cluster_name|id] [nodepool_name|id]
copy

Evict a Node from a Nodepool in an SKS cluster
$ exo compute sks nodepool evict [cluster_name|id] [nodepool_name|id] [node_name|id]
copy

Enable the Exoscale CSI driver for an existing SKS cluster
$ exo compute sks update [cluster_name|id] --enable-csi-addon [[-z|--zone]] [zone]
copy

SYNOPSIS

exo-compute sks command [options] [arguments]

Common commands include:
list: List SKS clusters.
show <cluster-id|name>: Show details of an SKS cluster.
create <name>: Create a new SKS cluster.
delete <cluster-id|name>: Delete an SKS cluster.
update <cluster-id|name>: Update an SKS cluster.
kubeconfig <cluster-id|name>: Generate Kubeconfig for an SKS cluster.
nodepool add <cluster-id|name>: Add a node pool to an SKS cluster.
nodepool remove <cluster-id|name> <nodepool-id|name>: Remove a node pool.
nodepool scale <cluster-id|name> <nodepool-id|name> <node-count>: Scale a node pool.
nodepool show <cluster-id|name> <nodepool-id|name>: Show details of a node pool.

PARAMETERS

--zone <zone>
    Specify the Exoscale zone for the operation (e.g., 'ch-dk-2'). This is often required for zone-specific resources.

--json
    Output the command's result in JSON format.

--output <format>
    Specify the output format for the command. Supported formats include 'table', 'json', and 'yaml'.

--profile <name>
    Use a specific named profile from the Exoscale CLI configuration file. Useful for managing multiple Exoscale accounts or configurations.

--config <path>
    Specify an alternative path to the Exoscale CLI configuration file. By default, it looks for ~/.exoscale/exoscale.ini or similar.

--help
    Display help information for the command or subcommand.

--name <name>
    Specify the name of the SKS cluster or node pool for operations like creation, showing details, or updates.

--id <id>
    Specify the unique ID of the SKS cluster or node pool. Can be used interchangeably with --name for some commands.

--version <version>
    Specify the Kubernetes version for cluster creation or upgrade (e.g., '1.27.x').

--instance-type <type>
    Define the instance type for nodes in a node pool (e.g., 'standard.medium').

--node-count <count>
    Set the desired number of nodes in a node pool. Used for creation and scaling.

--description <text>
    Provide a descriptive text for the SKS cluster or node pool.

DESCRIPTION

exo-compute-sks is a subcommand group within the exoscale-cli tool, designed to manage Scalable Kubernetes Service (SKS) clusters on the Exoscale cloud platform. It provides a comprehensive set of functionalities to interact with SKS clusters, allowing users to provision, configure, and operate their Kubernetes environments directly from the command line.

This includes operations such as creating new clusters, listing existing ones, showing detailed information about a specific cluster, updating cluster settings, and deleting clusters. Furthermore, it facilitates the management of node pools associated with SKS clusters, enabling actions like adding or removing node pools, scaling their size, and configuring specific properties such as instance types, disk sizes, and labels. As part of the exo-compute namespace, it works in conjunction with other `exo-compute` commands for managing various compute-related resources on Exoscale. Its primary purpose is to simplify Kubernetes cluster lifecycle management for Exoscale users, offering automation capabilities and integration into scripts.

CAVEATS

The exoscale-cli must be installed and properly configured with Exoscale API keys and secrets to use exo-compute-sks.
Operations performed by exo-compute-sks (e.g., creating clusters, adding node pools) will incur costs on your Exoscale account.
Requires an active internet connection to communicate with the Exoscale API endpoints.
Some operations, like cluster deletion, are irreversible. Exercise caution when executing destructive commands.
The availability of specific Kubernetes versions, instance types, and features may vary by Exoscale zone.

PREREQUISITES

Before using exo-compute-sks, ensure you have the exoscale-cli installed. Installation instructions are typically available on the Exoscale documentation website. After installation, configure the CLI by setting up your Exoscale API key and secret, usually via exo configure or by manually editing the configuration file.

USAGE EXAMPLES

To list all SKS clusters:
exo compute sks list

To create a new SKS cluster named 'my-cluster' in 'ch-dk-2' with Kubernetes version '1.27.x' and a default node pool:
exo compute sks create my-cluster --zone ch-dk-2 --version 1.27.x --instance-type standard.medium --node-count 2

To generate the kubeconfig for 'my-cluster':
exo compute sks kubeconfig my-cluster > ~/.kube/config_my_cluster

To delete an SKS cluster:
exo compute sks delete my-cluster

HISTORY

The exo-compute-sks command group is an integral part of the official exoscale-cli, developed and maintained by Exoscale. Its development closely parallels the evolution and expansion of Exoscale's Scalable Kubernetes Service (SKS) offering, which was introduced to provide managed Kubernetes capabilities to its cloud users. As Exoscale continually updates and enhances its SKS platform with new features, Kubernetes versions, and instance types, the exoscale-cli and consequently exo-compute-sks are updated to support these changes. This command-line interface facilitates automation and scripting for cloud engineers and developers managing Kubernetes deployments on Exoscale.

SEE ALSO

exoscale-cli(1): The overarching command-line interface for Exoscale., exo-compute(1): The parent command group for managing compute resources., exo-compute-instance(1): Manages individual compute instances., kubectl(1): The official Kubernetes command-line tool, used to interact with Kubernetes clusters after they are provisioned by exo-compute-sks., helm(1): A package manager for Kubernetes, often used alongside kubectl for deploying applications.

Copied to clipboard