Skip to content

Reset (Uninstall)#

Resetting k0s nodes essentially reverts them to a pre-k0s state. This operation is particularly useful in scenarios where you need to cleanly remove k0s from nodes, either for troubleshooting purposes or as a precursor to a fresh installation. It is designed to remove all components, configurations, and data associated with k0s from a node. This includes, but is not limited to, the following:

  • Processes and containers: Terminates all running k0s processes to ensure that there are no active components left. This includes all container processes managed by the Container Runtime.
  • Data stored on the node: Deletes the whole k0s data directory, which includes
    • all k0s-related configuration files, including those used for cluster setup and node-specific settings,
    • all data stores managed by k0s, including etcd or kine data for cluster state and any temporary files created during operation,
    • and all certificates and other key material generated by k0s for node authentication and communication within the cluster.
  • Network settings: Reverts any network configurations made by k0s, such as network interfaces or iptables rules set up specifically for cluster communication. This is done on a best effort basis. It's recommended that you reboot the host after a reset to ensure that there are no k0s remnants in the host's network configuration. Custom CNI plugins are not cleaned up.
  • Registration with the host's init system: Reverts the registration done by k0s install. After a reset, k0s won't be automatically started when the host boots.

After a successful reset, the k0s binary itself remains. It can then be used to join another cluster or create a new one.

It's important to understand that performing a reset is a destructive operation that will result in the loss of all data and configurations related to k0s on the affected nodes. Therefore, it should be performed with care, ideally after ensuring that all necessary data has been backed up or that the cluster can be safely disassembled without data loss.

K0s can be reset locally on a host using the k0s reset command. Whole clusters can be reset remotely with the k0sctl reset command.

Reset a k0s node locally#

To ensure operational safety, k0s reset includes a safeguard that prevents it from being executed while k0s is running, so it must be stopped first:

  1. Stop the service:

    sudo k0s stop
    
  2. Invoke the reset command:

    $ sudo k0s reset
    WARN[2024-03-28 09:15:36] To ensure a full reset, a node reboot is recommended.
    

Reset a k0s cluster remotely using k0sctl#

K0sctl can be used to connect and reset all cluster nodes in a single command.

  1. Invoke k0sctl reset command:
    $ k0sctl reset --config k0sctl.yaml
    k0sctl v0.17.4 Copyright 2023, k0sctl authors.
    Anonymized telemetry of usage will be sent to the authors.
    By continuing to use k0sctl you agree to these terms:
    https://k0sproject.io/licenses/eula
    ? Going to reset all of the hosts, which will destroy all configuration and data, Are you sure? Yes
    INFO ==> Running phase: Connect to hosts
    INFO [ssh] 13.53.43.63:22: connected
    INFO [ssh] 13.53.218.149:22: connected
    INFO ==> Running phase: Detect host operating systems
    INFO [ssh] 13.53.43.63:22: is running Ubuntu 22.04.4 LTS
    INFO [ssh] 13.53.218.149:22: is running Ubuntu 22.04.4 LTS
    INFO ==> Running phase: Acquire exclusive host lock
    INFO ==> Running phase: Prepare hosts
    INFO ==> Running phase: Gather k0s facts
    INFO [ssh] 13.53.43.63:22: found existing configuration
    INFO [ssh] 13.53.43.63:22: is running k0s controller version v1.31.2+k0s.0
    INFO [ssh] 13.53.218.149:22: is running k0s worker version v1.31.2+k0s.0
    INFO [ssh] 13.53.43.63:22: checking if worker  has joined
    INFO ==> Running phase: Reset workers
    INFO [ssh] 13.53.218.149:22: reset
    INFO ==> Running phase: Reset controllers
    INFO [ssh] 13.53.43.63:22: reset
    INFO ==> Running phase: Reset leader
    INFO [ssh] 13.53.43.63:22: reset
    INFO ==> Running phase: Release exclusive host lock
    INFO ==> Running phase: Disconnect from hosts
    INFO ==> Finished in 8s