RKE supports additional service arguments, volume binds, and environment variables.
For any of the Kubernetes services, you can update the
extra_args to change the existing defaults.
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.
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
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.
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_argsare added to services, users must perform any additional steps necessary manually to ensure these changes are compatible with RKE.
cpu-manager-policyarguments require the removal of the
cpu_manager_statefile 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.
Additional volume binds can be added to services using the
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
services: kubelet: extra_env: - "HTTP_PROXY=http://your_proxy"