Kubernetes Kops-在kubelet上设置sysctl标志

时间:2018-07-24 22:38:05

标签: kubernetes kops sysctl

我们需要在kubernetes中启用一些sysctl参数。使用“部署”中的以下注释可以实现此目的。

a

这样做时,容器无法启动并显示错误:

bind

解决方案似乎是将此标志添加到kublet:

m2n() { echo $((-10+$(sed 's/./\U&/g;y/ABCEGLNOPRTUVY/60AC765A77ABB9/;s/./+0x&/g'<<<${1#?}) ));}

其他标志可以在

kubelet 下完成
read m y <<<"$@"; echo "$y-`m2n $m`"

有人知道正确的方法吗,因为它在那里输入标志时拒绝接管设置。

谢谢, 亚历克斯

3 个答案:

答案 0 :(得分:2)

针对此问题的修复程序已于5月合并,您可以在此处查看PR:https://github.com/kubernetes/kops/pull/5104/files

您可以通过以下方式启用它:

spec:
  kubelet:
    ExperimentalAllowedUnsafeSysctls:
      - 'net.ipv4.ip_local_port_range="10240 65535"'

该标志似乎采用了stringSlice,因此您需要传递一个数组。

如果这行不通,请确保您使用的是正确版本的kops

答案 1 :(得分:0)

我最近遇到了这个问题,问题是ExperimentalAllowedUnsafeSysctls应该在如下所示的kops配置中为experimental_allowed_unsafe_sysctls

  kubelet:
    experimental_allowed_unsafe_sysctls:
    - net.core.somaxconn

我通过检查componentconfig.go来发现了这一点:https://github.com/kubernetes/kops/blob/master/pkg/apis/kops/v1alpha2/componentconfig.go#L168

答案 2 :(得分:0)

截至2020-05-18,正确的配置为:

  kubelet:                                                                                                                             
    allowedUnsafeSysctls:                                                                                                              
    - net.ipv4.ip_local_port_range="10240 65535"

通常,所有KOPS配置都必须驼峰化。

来自here,KOPS 1.16.2 +