Как kube apiserver взаимодействует с kubelet и kube-proxy? - PullRequest
0 голосов
/ 03 марта 2020

Мне интересно, смогу ли я запустить k8s с общедоступной плоскостью управления и рабочими узлами в сети за брандмауэром (это вариант использования пограничного / iot-развертывания). Основное беспокойство, как я считаю, это связь между apiserver и kubelet / kube-proxy. Можно ли настроить его как единственный узел -> мастер связи? Как мне добиться этого?

Я не смог найти точную информацию, кроме этой короткой заметки в kubelet reference : HTTP endpoint: HTTP endpoint passed as a parameter on the command line. This endpoint is checked every 20 seconds (also configurable with a flag).

Для kube-proxy я не смог найти ни одной info.

Я также новичок в golang, так что анализ исходного кода k8s пока мне недоступен. Любая помощь приветствуется:)

1 Ответ

1 голос
/ 04 марта 2020

Можно ли настроить его как единственный узел -> мастер связи? Как мне этого добиться?

Я думаю, только попытка докажет, что аписервер не должен связываться с kubelet. Однако в связи с этим: имейте в виду, что при такой настройке kubectl exec и kubectl logs больше не будут работать, потому что эти команды подключаются напрямую к порту 10254 в двоичном файле kubelet, а не отправляют весь этот трафик c через сервер API

Что касается kube-proxy, , по-видимому, использует внутрикластерный $KUBERNETES_SERVICE_HOST, который будет .1 IP-адресом Service CIDR, и будет использовать программно-определяемую сеть. чтобы добраться до сервера. Хотя существуют другие конфигурации , для которых том монтируется kubeconfig с хоста, поэтому я думаю, что окончательный ответ будет зависеть от того, как вы установили свой кластер.

...