2

我正在使用 Kops 1.4.4 在 AWS 上启动我的 Kubernetes 集群。我的 Elasticsearch pod 要求我将内核参数vm.max_map_count设置为至少 262144。Kubernetes 1.5.1 具有 systctl 功能,但它需要 Docker >= 1.12。Kops 目前使用较小的 Docker 版本构建我的节点,因此我一直在试图弄清楚如何自动设置内核参数。如果我尝试使用 Dockerfile 在我的 Dockerfile 中设置它RUN sysctl -w vm.max_map_count=262144,我会收到错误消息:'sysctl: setting key "vm.max_map_count": Read-only file system'。

有什么解决方法吗?

4

1 回答 1

1

显然,这可以使用Kubernetes 初始化容器来完成。按照此处发布的 Kubernetes 部署配置,这可以通过将以下注释应用于您的部署来完成。在规范 > 模板 > 元数据 > 注释下添加:

pod.beta.kubernetes.io/init-containers: '[
  {
  "name": "sysctl",
    "image": "busybox",
    "command": ["sysctl", "-w", "vm.max_map_count=262144"],
    "securityContext": {
      "privileged": true
    }
  }
]'
于 2017-01-05T18:37:20.060 回答