Server Configuration Reference
This is a reference to all parameters that can be used to configure the rke2 server. Note that while this is a reference to the command line arguments, the best way to configure RKE2 is using the configuration file.
Critical Configuration Values
The following options must be set to the same value on all servers in the cluster. Failure to do so will cause new servers to fail to join the cluster.
agent-token
cluster-cidr
cluster-dns
cluster-domain
disable-cloud-controller
disable-kube-proxy
egress-selector-mode
service-cidr
Common
Flag | Description | Default | Enviroment Variable |
---|---|---|---|
config | Path to config file | /etc/rancher/rke2/config.yaml | RKE2_CONFIG_FILE |
debug | Turn on debug logs | RKE2_DEBUG | |
data-dir | Folder to hold state | "/var/lib/rancher/rke2" |
Listener
Flag | Description | Default |
---|---|---|
bind-address | rke2 bind address | 0.0.0.0 |
advertise-address | IPv4/IPv6 address that apiserver uses to advertise to members of the cluster | node-external-ip/node-ip |
tls-san | Add additional hostnames or IPv4/IPv6 addresses as Subject Alternative Names on the server TLS cert | |
tls-san-security | Protect the server TLS cert by refusing to add Subject Alternative Names not associated with the kubernetes apiserver service, server nodes, or values of the tls-san option | true |
Networking
Flag | Description | Default | Enviroment Variable |
---|---|---|---|
cluster-cidr | IPv4/IPv6 network CIDRs to use for pod IPs | 10.42.0.0/16 | |
service-cidr | IPv4/IPv6 network CIDRs to use for service IPs | 10.43.0.0/16 | |
service-node-port-range | Port range to reserve for services with NodePort visibility | "30000-32767" | |
cluster-dns | IPv4 Cluster IP for coredns service. Should be in your service-cidr range | 10.43.0.10 | |
cluster-domain | Cluster Domain | "cluster.local" | |
egress-selector-mode | One of 'agent', 'cluster', 'pod', 'disabled' | "agent" | |
servicelb-namespace | Namespace of the pods for the servicelb component | "kube-system" | |
cni | CNI Plugins to deploy, one of none, calico, canal, cilium; optionally with multus as the first value to enable the multus meta-plugin | canal | RKE2_CNI |
Client
Flag | Description | Enviroment Variable |
---|---|---|
write-kubeconfig | Write kubeconfig for admin client to this file | RKE2_KUBECONFIG_OUTPUT |
write-kubeconfig-mode | Write kubeconfig with this mode | RKE2_KUBECONFIG_MODE |
Helm
Flag | Description |
---|---|
helm-job-image | Default image to use for helm jobs |
Cluster
Flag | Description | Enviroment Variable |
---|---|---|
token | Shared secret used to join a server or agent to a cluster | RKE2_TOKEN |
token-file | File containing the token | RKE2_TOKEN_FILE |
agent-token | Shared secret used to join agents to the cluster, but not servers | RKE2_AGENT_TOKEN |
agent-token-file | File containing the agent secret | RKE2_AGENT_TOKEN_FILE |
server | Server to connect to, used to join a cluster | RKE2_URL |
cluster-reset | Forget all peers and become sole member of a new cluster | RKE2_CLUSTER_RESET |
Database
Flag | Description | Default | Enviroment Variable |
---|---|---|---|
cluster-reset-restore-path | Path to snapshot file to be restored | ||
etcd-expose-metrics | Expose etcd metrics to client interface. | false | |
etcd-disable-snapshots | Disable automatic etcd snapshots | ||
etcd-snapshot-name | Set the base name of etcd snapshots | etcd-snapshot-<unix-timestamp>) | |
etcd-snapshot-schedule-cron | Snapshot interval time in cron spec. eg. every 5 hours '0 */5 * * *' | "0 */12 * * *" | |
etcd-snapshot-retention | Number of snapshots to retain | 5 | |
etcd-snapshot-dir | Directory to save db snapshots. | ${data-dir}/db/snapshots | |
etcd-snapshot-compress | Compress etcd snapshot | ||
etcd-s3 | Enable backup to S3 | ||
etcd-s3-endpoint | S3 endpoint url | "s3.amazonaws.com" | |
etcd-s3-endpoint-ca | S3 custom CA cert to connect to S3 endpoint | ||
etcd-s3-skip-ssl-verify | Disables S3 SSL certificate validation | ||
etcd-s3-access-key | S3 access key | AWS_ACCESS_KEY_ID | |
etcd-s3-secret-key | S3 secret key | AWS_SECRET_ACCESS_KEY | |
etcd-s3-bucket | S3 bucket name | ||
etcd-s3-region | S3 region / bucket location (optional) | "us-east-1" | |
etcd-s3-folder | S3 folder | ||
etcd-s3-insecure | Disables S3 over HTTPS | ||
etcd-s3-timeout | S3 timeout | 5m0s |
Flags
Flag | Description |
---|---|
kube-apiserver-arg | Customized flag for kube-apiserver process |
etcd-arg | Customized flag for etcd process |
kube-controller-manager-arg | Customized flag for kube-controller-manager process |
kube-scheduler-arg | Customized flag for kube-scheduler process |
kube-cloud-controller-manager-arg | Customized flag for kube-cloud-controller-manager process |
Components
Flag | Description | Enviroment Variable |
---|---|---|
disable | Do not deploy packaged components and delete any deployed components (valid items: rke2-coredns, rke2-ingress-nginx, rke2-metrics-server) | |
disable-scheduler | Disable Kubernetes default scheduler | |
disable-cloud-controller | Disable rke2 default cloud controller manager | |
disable-kube-proxy | Disable running kube-proxy | |
enable-servicelb | Enable rke2 default cloud controller manager's service controller | RKE2_ENABLE_SERVICELB |
control-plane-resource-requests | Control Plane resource requests | RKE2_CONTROL_PLANE_RESOURCE_REQUESTS |
control-plane-resource-limits | Control Plane resource limits | RKE2_CONTROL_PLANE_RESOURCE_LIMITS |
control-plane-probe-configuration | Control Plane Probe configuration | RKE2_CONTROL_PLANE_PROBE_CONFIGURATION |
kube-apiserver-extra-mount | kube-apiserver extra volume mounts | RKE2_KUBE_APISERVER_EXTRA_MOUNT |
kube-scheduler-extra-mount | kube-scheduler extra volume mounts | RKE2_KUBE_SCHEDULER_EXTRA_MOUNT |
kube-controller-manager-extra-mount | kube-controller-manager extra volume mounts | RKE2_KUBE_CONTROLLER_MANAGER_EXTRA_MOUNT |
kube-proxy-extra-mount | kube-proxy extra volume mounts | RKE2_KUBE_PROXY_EXTRA_MOUNT |
etcd-extra-mount | etcd extra volume mounts | RKE2_ETCD_EXTRA_MOUNT |
cloud-controller-manager-extra-mount | cloud-controller-manager extra volume mounts | RKE2_CLOUD_CONTROLLER_MANAGER_EXTRA_MOUNT |
kube-apiserver-extra-env | kube-apiserver extra environment variables | RKE2_KUBE_APISERVER_EXTRA_ENV |
kube-scheduler-extra-env | kube-scheduler extra environment variables | RKE2_KUBE_SCHEDULER_EXTRA_ENV |
kube-controller-manager-extra-env | kube-controller-manager extra environment variables | RKE2_KUBE_CONTROLLER_MANAGER_EXTRA_ENV |
kube-proxy-extra-env | kube-proxy extra environment variables | RKE2_KUBE_PROXY_EXTRA_ENV |
etcd-extra-env | etcd extra environment variables | RKE2_ETCD_EXTRA_ENV |
cloud-controller-manager-extra-env | cloud-controller-manager extra environment variables | RKE2_CLOUD_CONTROLLER_MANAGER_EXTRA_ENV |
Image
Flag | Description | Enviroment Variable |
---|---|---|
kube-apiserver-image | Override image to use for kube-apiserver | RKE2_KUBE_APISERVER_IMAGE |
kube-controller-manager-image | Override image to use for kube-controller-manager | RKE2_KUBE_CONTROLLER_MANAGER_IMAGE |
cloud-controller-manager-image | Override image to use for cloud-controller-manager | RKE2_CLOUD_CONTROLLER_MANAGER_IMAGE |
kube-proxy-image | Override image to use for kube-proxy | RKE2_KUBE_PROXY_IMAGE |
kube-scheduler-image | Override image to use for kube-scheduler | RKE2_KUBE_SCHEDULER_IMAGE |
pause-image | Override image to use for pause | RKE2_PAUSE_IMAGE |
runtime-image | Override image to use for runtime binaries (containerd, kubectl, crictl, etc) | RKE2_RUNTIME_IMAGE |
etcd-image | Override image to use for etcd | RKE2_ETCD_IMAGE |
Cloud Provider
Flag | Description | Enviroment Variable |
---|---|---|
cloud-provider-name | Cloud provider name | RKE2_CLOUD_PROVIDER_NAME |
cloud-provider-config | Cloud provider configuration file path | RKE2_CLOUD_PROVIDER_CONFIG |
Security
Flag | Description | Enviroment Variable |
---|---|---|
profile | Validate system configuration against the selected benchmark (valid items: cis, cis-1.23 (deprecated)) | RKE2_CIS_PROFILE |
audit-policy-file | Path to the file that defines the audit policy configuration | RKE2_AUDIT_POLICY_FILE |
pod-security-admission-config-file | Path to the file that defines Pod Security Admission configuration | RKE2_POD_SECURITY_ADMISSION_CONFIG_FILE |
Experimental
Flag | Description | Enviroment Variable |
---|---|---|
embedded-registry | Enable embedded distributed container registry; requires use of embedded containerd | |
enable-pprof | Enable pprof endpoint on supervisor port | |
kubelet-path | Override kubelet binary path | RKE2_KUBELET_PATH |
Agent/Node
Flag | Description | Default | Enviroment Variable |
---|---|---|---|
node-name | Node name | RKE2_NODE_NAME | |
with-node-id | Append id to node name | ||
node-label | Registering and starting kubelet with set of labels | ||
node-taint | Registering kubelet with set of taints | ||
image-credential-provider-bin-dir | The path to the directory where credential provider plugin binaries are located | "/var/lib/rancher/credentialprovider/bin" | |
image-credential-provider-config | The path to the credential provider plugin config file | "/var/lib/rancher/credentialprovider/config.yaml" | |
protect-kernel-defaults | Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults. | ||
selinux | Enable SELinux in containerd | RKE2_SELINUX | |
lb-server-port | Local port for supervisor client load-balancer. If the supervisor and apiserver are not colocated an additional port 1 less than this port will also be used for the apiserver client load-balancer. | 6444 | RKE2_LB_SERVER_PORT |
Agent/Runtime
Flag | Description | Default | Enviroment Variable |
---|---|---|---|
container-runtime-endpoint | Disable embedded containerd and use the CRI socket at the given path; when used with --docker this sets the docker socket path | ||
default-runtime | Set the default runtime in containerd | ||
snapshotter | Override default containerd snapshotter | "overlayfs" | |
private-registry | Private registry configuration file | "/etc/rancher/rke2/registries.yaml" | |
system-default-registry | Private registry to be used for all system images | RKE2_SYSTEM_DEFAULT_REGISTRY |
Agent/Containerd
Flag | Description |
---|---|
disable-default-registry-endpoint | Disables containerd's fallback default registry endpoint when a mirror is configured for that registry |
Agent/Networking
Flag | Description | Enviroment Variable |
---|---|---|
node-ip | IPv4/IPv6 addresses to advertise for node | |
node-external-ip | IPv4/IPv6 external IP addresses to advertise for node | |
resolv-conf | Kubelet resolv.conf file | RKE2_RESOLV_CONF |
Agent/Flags
Flag | Description |
---|---|
kubelet-arg | Customized flag for kubelet process |
kube-proxy-arg | Customized flag for kube-proxy process |