Как правильно добавить / обновить параметр запуска команды, запускающей kube-apiserver?
В 99% случаев, когда я наблюдал развертывание кластеров кубернетов, двоичный файл kubelet
на узлах считывает дескрипторы кубернетов в /etc/kubernetes/manifests
файловой системы хоста и запускает описанные в нем модули. Итак, ответ на первый вопрос состоит в том, чтобы отредактировать - или вызвать обновление используемого вами инструмента управления конфигурацией - файла /etc/kubernetes/manifests/kube-apiserver.yaml
(или, надеюсь, файла с очень похожим именем). Если у вас несколько главных узлов, вам нужно будет повторить этот процесс для всех главных узлов. В большинстве случаев двоичный файл kubelet
увидит изменение файла манифеста и автоматически перезапустит Pod apiserver, но в худшем случае может потребоваться перезапуск kubelet
.
Обязательно следите за выводом только что запущенного контейнера докеров apiserver, чтобы проверить наличие ошибок, и примените это изменение к другим файлам манифеста apiserver только после того, как убедитесь, что он работает правильно.
Как я могу впоследствии ссылаться на этот файл, чтобы он был доступен в файловой системе при запуске команды kube-apiserver?
Примерно тот же ответ: либо через ssh, либо через любой инструмент управления конфигурацией на машине. Единственная звездочка для этого состоит в том, что, поскольку файл манифеста apisever является обычным объявлением Pod
, нужно помнить о volume:
и volumeMount:
, как и о любом другом Pod
в кластере. Скорее всего, это будет нормально, если ваш audit-policy.yaml
находится внутри или под /etc/kubernetes
, поскольку этот каталог уже является томом, смонтированным в Pod (опять же: большую часть времени). Он записывает файл журнала аудита, который, скорее всего, потребует изменений, поскольку, в отличие от остальной части конфигурации, путь к файлу журнала не может быть readOnly: true
и, таким образом, потребуется как минимум второй volumeMount
без readOnly: true
, и, вероятно, потребуется второй volume: hostPath:
, чтобы сделать каталог журналов, видимый в модуле.
На самом деле я не пробовал использовать ConfigMap
для самого apiserver, поскольку это очень мета. Но в случае установки с несколькими мастерами я тоже не знаю, что это невозможно. Просто будьте осторожны, потому что при такой самореферентной настройке было бы очень легко отключить всех мастеров с плохой конфигурацией, поскольку они не могли бы связаться с собой, чтобы прочитать обновленную конфигурацию.
person
mdaniel
schedule
08.04.2018