如何在VPC外的远程客户端挂载GCP Filestore?混合云VPN场景挂载失败求助
GCP混合架构Filestore跨VPN挂载本地Kubernetes集群解决方案
mount.nfs: Connection timed out报错本质为本地K8s节点到Filestore实例的NFS相关端口网络不通,在已完成VPN互通、BGP自定义IP宣告的前提下,按以下步骤排查修复:
1. Filestore实例配置校验
- 确认Filestore所属云VPC已开启专用服务访问连接,Filestore为谷歌托管服务,实例地址从预留的服务IP段分配,需将完整的Filestore预留IP段加入Cloud Router自定义宣告范围,不可仅宣告单个Filestore实例IP
- 检查Filestore文件共享的客户端权限配置,确保本地K8s节点所属的本地VPC网段已加入允许访问列表,不可仅开放云VPC网段权限
2. 云侧防火墙规则校验
- 云VPC入方向防火墙需放行本地VPC网段访问Filestore IP的以下协议端口:
- TCP 111(rpcbind服务)
- TCP/UDP 2049(NFS服务)
- TCP 4000~4003(挂载、状态、锁、NSM服务)
- ICMP协议(用于连通性测试)
- 确认放行规则的优先级高于任何隐式/显式的拒绝规则
3. 路由路径连通性校验
- 登录本地K8s工作节点,执行
ping <Filestore实例IP>验证三层连通性,若不通:- 确认Cloud Router自定义路由宣告已生效,本地路由器已正常学习到Filestore所属IP段的路由条目
- 确认云VPC路由表中存在指向本地VPC网段、下一跳为HA VPN隧道的回程路由
- 若ping连通,执行
telnet <Filestore实例IP> 2049验证NFS端口连通性,端口不通则回到防火墙规则步骤排查
4. Kubernetes侧配置校验
- PV配置建议添加Filestore官方推荐的NFS挂载参数,降低兼容性问题,示例配置如下:
apiVersion: v1 kind: PersistentVolume metadata: name: xligw-pilot-pv spec: capacity: storage: 1Ti accessModes: - ReadWriteMany nfs: server: <Filestore实例IP> path: "/filestore_vol1" mountOptions: - vers=4.1 - hard - noresvport
- 若仍挂载失败,可在本地K8s节点手动执行挂载命令排除K8s容器化挂载器兼容性问题:
mount -t nfs -o vers=4.1 <Filestore实例IP>:/filestore_vol1 /tmp/testmount
5. 备选修复方案
若上述步骤全部验证通过仍挂载超时,可在云VPC内部署NFS代理实例,将本地K8s的NFS请求通过代理实例转发至Filestore,规避Filestore托管服务的跨VPN访问限制,代理实例需同时具备Filestore访问权限和本地VPC网段连通能力。
内容的提问来源于stack exchange,提问作者Kavindu Ariyasinghe
相关产品推荐
相关产品推荐

