Environment Variables

As mentioned in the Quick-Start Guide, you can use the installation script available at https://get.k3s.io to install K3s as a service on systemd and openrc based systems.

The simplest form of this command is as follows:

curl -sfL https://get.k3s.io | sh -

When using this method to install K3s, the following environment variables can be used to configure the installation:

Environment Variable Description

INSTALL_K3S_SKIP_DOWNLOAD

If set to true will not download K3s hash or binary.

INSTALL_K3S_SYMLINK

By default will create symlinks for the kubectl, crictl, and ctr binaries if the commands do not already exist in path. If set to 'skip' will not create symlinks and 'force' will overwrite.

INSTALL_K3S_SKIP_ENABLE

If set to true will not enable or start K3s service.

INSTALL_K3S_SKIP_START

If set to true will not start K3s service.

INSTALL_K3S_VERSION

Version of K3s to download from Github. Will attempt to download from the stable channel if not specified.

INSTALL_K3S_BIN_DIR

Directory to install K3s binary, links, and uninstall script to, or use /usr/local/bin as the default.

INSTALL_K3S_BIN_DIR_READ_ONLY

If set to true will not write files to INSTALL_K3S_BIN_DIR, forces setting INSTALL_K3S_SKIP_DOWNLOAD=true.

INSTALL_K3S_SYSTEMD_DIR

Directory to install systemd service and environment files to, or use /etc/systemd/system as the default.

INSTALL_K3S_EXEC

Command with flags to use for launching K3s in the service. If the command is not specified, and the K3S_URL is set, it will default to "agent." If K3S_URL not set, it will default to "server." For help, refer to this example.

INSTALL_K3S_NAME

Name of systemd service to create, will default to 'k3s' if running k3s as a server and 'k3s-agent' if running k3s as an agent. If specified the name will be prefixed with 'k3s-'.

INSTALL_K3S_TYPE

Type of systemd service to create, will default from the K3s exec command if not specified.

INSTALL_K3S_SELINUX_WARN

If set to true will continue if k3s-selinux policy is not found.

INSTALL_K3S_SKIP_SELINUX_RPM

If set to true will skip automatic installation of the k3s RPM.

INSTALL_K3S_CHANNEL_URL

Channel URL for fetching K3s download URL. Defaults to https://update.k3s.io/v1-release/channels.

INSTALL_K3S_CHANNEL

Channel to use for fetching K3s download URL. Defaults to "stable". Options include: stable, latest, testing.

This example shows where to place aforementioned environment variables as options (after the pipe):

curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest sh -

Environment variables which begin with K3S_ will be preserved for the systemd and openrc services to use.

Setting K3S_URL without explicitly setting an exec command will default the command to "agent".

When running the agent, K3S_TOKEN must also be set.

Version Gate

Available as of October 2024 releases: v1.28.15+k3s1, v1.29.10+k3s1, v1.30.6+k3s1, v1.31.2+k3s1.

K3s will now use PATH to find alternative container runtimes, in addition to checking the default paths used by the container runtime packages. In order to use this feature, you must modify the K3s service’s PATH environment variable to add the directories containing the container runtime binaries.

It’s recommended that you modify one of this two environment files:

  • /etc/default/k3s # or k3s-agent

  • /etc/sysconfig/k3s # or k3s-agent

This example will add the PATH in /etc/default/k3s:

echo PATH=$PATH >> /etc/default/k3s

PATH changes should be done with care to avoid placing untrusted binaries in the path of services that run as root.