Я знаю, что Kubernetes имеет 5 модулей: kube-apiserver, kube-controller-manager, kube-scheduler
в главных узлах и kubelet, kube-proxy
в узлах Minion. Как они общаются с etcd? Будут ли они все запрашивать или устанавливать данные в etcd? или только некоторые из них?Как модули Kubernetes взаимодействуют с etcd?
The docs сказал, что etcd только доступ kube-apiserver
:
Контроль доступа: дают только Кубэ-apiserver доступ для чтения/записи etcd. Вы не хотите, чтобы файл apiserver и т. Д. Были открыты для каждого узла в вашем кластере (или, что еще хуже, в Интернете в целом), поскольку доступ к etcd равен , эквивалентный root в вашем кластере.
Но некоторые блоги и рисунки архитектуры из Google считают, etcd также доступ к другим модулям, как то, что this blog сказал:
В etcd услуги шина связи для кластера Kubernetes . Состояние кластера сообщений приложений-служб изменяется в базу данных etcd в ответ на команды и запросы. Кубелеты читают содержимое базы данных т. Д. и действуют при любых изменениях, которые они обнаруживают.
Так что это правильно? Благодаря!
Я не эксперт по кубернете, но из того, что я знаю, у вас есть разные компоненты, которые разговаривают с сервером api и с сервером api с etcd, таким образом, каждый узел не имеет доступа к etcd, {etcd} <-> {api-server} <{nodes}, в вашем узле единственное, что вам нужно, это kubelet и kube-proxy – c4f4t0r