0

如果我可以在防火墙后面的网络中使用公开可用的控制平面和工作节点运行 k8s(这是边缘/物联网部署用例),我很感兴趣。我认为主要关注的是 apiserver 和 kubelet/kube-proxy 之间的通信。是否可以配置为仅节点-> 主通信?我怎样才能做到这一点?

除了在 kubelet参考中的这个简短说明之外,我找不到精确的信息: 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,我找不到任何信息。

我也是 golang 的新手,所以分析 k8s 源代码现在超出了我的技能。任何帮助表示赞赏:)

4

1 回答 1

2

是否可以配置为仅节点-> 主通信?我怎样才能做到这一点?

我想只有尝试它才能确定 apiserver 不需要联系kubelet。但是,与此相关:请注意,在这样的设置中,kubectl execkubectl logs不再起作用,因为这些命令直接连接到 kubelet 二进制文件上的端口 10254,而不是通过 API 服务器发送所有流量

至于 kube-proxy,它似乎使用集群$KUBERNETES_SERVICE_HOST内,这将是 CIDR 的.1IP,Service并将使用软件定义的网络来访问 apiserver。虽然还有其他配置可以从主机挂载一个卷kubeconfig,所以我想最终的答案将取决于您如何安装集群。

于 2020-03-04T05:36:00.753 回答