exo-compute-sks
Manage Exoscale SKS clusters
TLDR
List the supported SKS cluster versions
Create a new SKS cluster
List all SKS clusters
Generate a Kubernetes kubeconfig file for an SKS cluster that expires in 1800 seconds
Create and add a Nodepool containing 3 nodes to an SKS cluster
Remove a Nodepool from an SKS cluster
Evict a Node from a Nodepool in an SKS cluster
Enable the Exoscale CSI driver for an existing SKS cluster
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.