RKE supports additional service arguments, volume binds, and environment variables.

Extra Args

For any of the Kubernetes services, you can update the extra_args to change the existing defaults.

As of v0.1.3, using extra_args will add new arguments and override any existing defaults. For example, if you need to modify the default admission plugins list, you need to include the default list and edit it with your changes so all changes are included.

Before v0.1.3, using extra_args would only add new arguments to the list and there was no ability to change the default list.

All service defaults and parameters are defined per kubernetes_version:

  • For RKE v0.3.0+, the service defaults and parameters are defined per kubernetes_version. The service defaults are located here. The default list of admissions plugins is the same for all Kubernetes versions and is located here.

  • For RKE before v0.3.0, the service defaults and admission plugins are defined per kubernetes_version and located here.

services:
    kube-controller:
      extra_args:
        cluster-name: "mycluster"

Lack of Additional Logic in Additional Arguments

  • RKE will add additional arguments to the Kubernetes cluster components without any additional logic.

  • Because no additional logic is added when extra_args are added to services, users must perform any additional steps necessary manually to ensure these changes are compatible with RKE.

  • Example: Kubelet cpu-manager-policy arguments require the removal of the cpu_manager_state file if they are changed. This action is not performed automatically by RKE and thus will require manual user intervention to remove the file from the cluster nodes. See the upstream documentation for more information on this topic.

Extra Binds

Additional volume binds can be added to services using the extra_binds arguments.

services:
    kubelet:
      extra_binds:
        - "/dev:/host/dev"
        - "/usr/libexec/kubernetes/kubelet-plugins:/usr/libexec/kubernetes/kubelet-plugins:z"

Extra Environment Variables

Additional environment variables can be added to services by using the extra_env arguments.

services:
    kubelet:
      extra_env:
        - "HTTP_PROXY=http://your_proxy"