Kubernetes Kops - 在 kubelet 上设置 sysctl 标志

Kubernetes Kops - set sysctl flag on kubelet

我们需要在 kubernetes 中启用一些 sysctl 参数。这应该可以通过部署中的以下注释来实现。

annotations:
  security.alpha.kubernetes.io/unsafe-sysctls: net.ipv4.ip_local_port_range="10240 65535"

这样做时容器无法启动并出现错误:

Warning  FailedCreatePodSandBox  8s (x12 over 19s)  kubelet, <node>  Failed create pod sandbox.

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

--experimental-allowed-unsafe-sysctls

其他标志可以在kubelet下完成

kops edit cluster

有谁知道这样做的正确方法,因为它在输入标志时拒绝选择设置。

谢谢, 亚历克斯

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

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

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

flag 似乎需要一个 stringSlice,所以你需要传递一个数组。

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

截至 2020-05-18,正确的配置是,例如:

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

一般来说,所有 KOPS 配置都必须是驼峰式。

来自 here,KOPS 1.16.2+