如何使用 calico 网络从节点访问 Kubernetes 服务

How can I reach a Kubernetes service from a node using calico networking

我已经设置了一个裸机集群,并希望为我的应用程序提供不同类型的共享存储,其中之一是我通过 goofys 安装到通过 NFS 导出的 pod 的 s3 存储桶。然后,我使用 NFS 客户端配置程序挂载共享以自动向 pods.

提供卷

撇开性能评论不谈,问题在于 nfs 客户端配置器通过节点的 OS 安装 NFS 共享,因此当我将服务器名称设置为 NFS pod 时,它会传递到节点,它无法挂载,因为它没有到 service/pod.

的路由

到目前为止唯一的解决方案是将服务配置为 NodePort,通过节点上的 ufw 阻止外部连接,并将客户端配置器配置为连接到 127.0.0.1:nodeport。

我想知道节点是否有办法使用服务的 dns 名称访问集群服务?

我已经设法解决了我的问题,购买配置 NFS 客户端供应商使用服务的 clusterIP 而不是 dns 名称,因为节点无法将其解析为 IP,但它确实有一个路由到知识产权。由于 IP 将保持分配,除非我删除该服务,这是可扩展的,但当然不能轻易自动化,因为重新部署 nfs 服务器掌舵图将更改服务的 IP。

我建议您在外部dns服务器上为NFS服务ip配置一个域名,然后将您的节点指向该域名以访问NFS服务。对于 NFS 服务的集群 ip,您可以使用自定义值文件将 ip 固定在您的 helm chart 中。