如果我能在防火墙后面的网络中使用公共可用的控制平面和工作节点运行k8s,我很感兴趣(这是edge/iot部署用例(。我认为主要关注的是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代理,我找不到任何信息。
我也是golang的新手,所以分析k8s源代码目前超出了我的能力。感谢任何帮助:(
是否可以配置为仅节点->主通信?我怎样才能做到这一点?
我想只有尝试它才能确保apiserver不需要联系kubelet
。然而,与此相关的是:请注意,在这样的设置中,kubectl exec
和kubectl logs
将不再起作用,因为这些命令直接连接到kubelet二进制文件上的端口10254,而不是通过API服务器发送所有流量
至于kube代理,它似乎使用集群中的$KUBERNETES_SERVICE_HOST
,这将是Service
CIDR的.1
IP,并将使用软件定义的网络到达apiserver。尽管还有其他配置可以从主机卷装载kubeconfig
,但我想最终的答案将取决于您如何安装集群。