Мы запускаем контейнеры в Kubernetes на Amazon AWS. Этот кластер был создан с помощью набора скриптов kube-up. Все было правильно подготовлено и работает нормально. Однако мы столкнулись с загвоздкой - на наших довольно больших серверах c4.xlarges разрешено запускать только 40 модулей. Для нас это небольшое количество, так как у нас много маленьких подов, некоторые из которых используются редко. Есть ли способ увеличить это ограничение с помощью мастера соли или конфигурации запуска? Как лучше всего это сделать?
Спасибо.
Починил это! Думаю, я тоже неплохо поправился, насколько я могу судить. Я новичок в Salt, но чувствую, что сейчас довольно хорошо разбираюсь в ней. Это намного проще и менее пугающе, чем я думал, действительно изящный инструмент. Во всяком случае, к исправлению:
Kubernetes снабжает хозяина и миньонов солью. Файлы конфигурации Salt расположены по адресу /srv/salt
. Посмотрев на top.sls
файл, я нашел kubelet
папку (нам нужно изменить переданные кубелету флаги). Просматривая эту папку, мы находим init.sls
файл, указывая на kubelet.service
файл, который использует salt://kubelet/default
для конфига. Отлично, это просто /srv/salt/kubelet/default
файл. Фу. Множество мега-условий, но все сводится к последней строчке DAEMON_ARGS=...
Если мы хотим сделать это правильно, измените последнюю строку, чтобы добавить еще одну переменную:
{% set max_pods = "--max-pods=" + pillar.get('kubelet_max_pods', '40') %}
DAEMON_ARGS="{{daemon_args}} {{api_servers_with_port}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{config}} {{manifest_url}} --allow_privileged={{pillar['allow_privileged']}} {{pillar['log_level']}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{configure_cbr0}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{max_pods}}"
(Обратите внимание на нашу новую переменную max_pods)
Этот файл конфигурации имеет доступ к нашим файлам столба, "конфигурационным" файлам соли. Они расположены рядом с конфигами соли в /srv/pillar
. Убедившись, что все эти конфигурации переданы на все хосты, мы можем изменить один. Я думал, что это лучше всего подходит cluster-params.sls
:
kubelet_max_pods: '80'
Я отключил свои старые узлы, и теперь наши узлы имеют максимум 80 модулей на хост вместо стандартного.