【问题标题】:Set sysctl key in Kubernetes pod using Kops + Docker 1.11使用 Kops + Docker 1.11 在 Kubernetes pod 中设置 sysctl 键
【发布时间】:2017-05-20 08:46:27
【问题描述】:

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

有什么解决方法吗?

【问题讨论】:

  • 在您使用 kops 之前,您是否使用 kube-up.sh / kube-down.sh 来启动 AWS 集群?我在问,因为我即将从 kube-up.sh 迁移到 kops,所以很想听听你的观点
  • 我做到了。在我看来,Kops 更胜一筹,而且过渡非常简单。

标签: elasticsearch docker kubernetes sysctl kops


【解决方案1】:

显然这可以使用Kubernetes init containers 来完成。在发布 here 的 Kubernetes 部署配置之后,可以通过将以下注释应用于您的部署来完成。在规范 > 模板 > 元数据 > 注释下添加:

pod.beta.kubernetes.io/init-containers: '[
  {
  "name": "sysctl",
    "image": "busybox",
    "command": ["sysctl", "-w", "vm.max_map_count=262144"],
    "securityContext": {
      "privileged": true
    }
  }
]'

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 2019-12-06
    • 2019-02-16
    • 1970-01-01
    • 2019-09-22
    • 2016-08-15
    • 2019-07-22
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多