I am trying to remove privileged mode from init container, when i set to priviliged: false. I am getting above error. I had set readOnlyRootFilesystem: false and lines below at the pod securityContext level
securityContext:
sysctls:
- name: net.ipv4.ip_local_port_range
value: 0 65535The problem is that you cannot run sysctl without the privileged mode due to security reasons. This is expected since docker restricts access to /proc and /sys.
In order for this to work you need to use the privileged mode for the init container and than either:
securityContext for a Pod. For example: securityContext:
sysctls:
- name: kernel.shm_rmid_forced
value: "0"
- name: net.core.somaxconn
value: "1024"
- name: kernel.msgmax
value: "65536"sysctls can be set in pods by specifying lists of sysctls or sysctl patterns in the forbiddenSysctls and/or allowedUnsafeSysctls fields of the PodSecurityPolicy. For example:apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: sysctl-psp
spec:
allowedUnsafeSysctls:
- kernel.msg*
forbiddenSysctls:
- kernel.shm_rmid_forced
Notice that:
If you allow unsafe
sysctlsvia theallowedUnsafeSysctlsfield in aPodSecurityPolicy, any pod using such asysctlwill fail to start if thesysctlis not allowed via the--allowed-unsafe-sysctlskubelet flag as well on that node.
sysctls on a container-local basis with docker run --sysctl.I also recommend going through the whole linked documentation as caution is advised because use of unsafe sysctls is at-your-own-risk and can lead to severe problems like wrong behavior of containers, resource shortage or complete breakage of a node.