Как я могу настроить аргументы системного модуля kubernetes, такого как kube-apiserver в Kind?
Я хочу настроить аргументы для kube-apiserver, чтобы я мог проверять выполняемые запросы, чтобы я мог отлаживать неудавшийся запрос. Однако я не уверен, что мне нужно изменить. Я знаю, что kube-apiserver нельзя развернуть с помощью helm, потому что helm требует сервер API для выполнения своей работы. Таким образом, он должен быть развернут с помощью другого метода начальной загрузки, но, глядя на исходный код, я не могу понять, что это за метод.
1 ответ
Kube-apiserver настроен с помощью статического файла манифеста, который хранится в /etc/kubernetes/manifests/kube-apiserver.yaml
.
Итак, узнайте идентификатор контейнера, который является натурным узлом плоскости управления Kubernetes:
docker ps|grep cluster-control-plane
Получить в нем оболочку:
docker exec -it 4aeedccce928 bash
Установите редактор (например, emacs) и отредактируйте вышеупомянутый файл, чтобы добавить / удалить / заменить нужные аргументы:
apt-get update
apt-get install emacs-nox
emacs /etc/kubernetes/manifests/kube-apiserver.yaml
Kubernetes обнаружит изменение файла и автоматически перезапустит сервер, что можно проверить с помощью:
ps -Afl|grep kube-apiserver
Если он вылетает при запуске, вы можете найти журналы, используя
apt-get install less
less /var/log/pods/kube-system_kube-apiserver-cluster-control-plane_*/*/*.log
Если контейнер вообще не запускается, там не будет никакого файла журнала - проверьте файл манифеста на наличие синтаксических ошибок, обратившись к документации Kubernetes.