Установите ключ sysctl в модуле Kubernetes, используя Kops + Docker 1.11
Я использую Kops 1.4.4 для запуска своего кластера Kubernetes на AWS. Мои модули Elasticsearch требуют, чтобы я установил параметр ядра vm.max_map_count
как минимум до 262144. Kubernetes 1.5.1 имеет функцию systctl, но для нее требуется Docker >= 1.12. Копс в настоящее время собирает мои узлы с меньшей версией Docker, и поэтому я застрял, пытаясь понять, как автоматизировать установку параметров ядра. Если я попытаюсь установить его в моем Dockerfile, используя RUN sysctl -w vm.max_map_count=262144
, Я получаю сообщение об ошибке: 'sysctl: ключ настройки "vm.max_map_count": файловая система только для чтения ".
Есть ли обходные пути для этого?
1 ответ
По-видимому, это можно сделать с помощью контейнеров инициализации Kubernetes. Следуя конфигурации развертывания Kubernetes, опубликованной здесь, это можно сделать, применив следующую аннотацию к вашему развертыванию. Под spec > template > metadata > аннотации добавьте:
pod.beta.kubernetes.io/init-containers: '[
{
"name": "sysctl",
"image": "busybox",
"command": ["sysctl", "-w", "vm.max_map_count=262144"],
"securityContext": {
"privileged": true
}
}
]'