【问题标题】:Make NFS shares visible inside a Kubernetes pod running on Openstack使 NFS 共享在 Openstack 上运行的 Kubernetes pod 中可见
【发布时间】:2019-06-18 04:18:22
【问题描述】:

所以我正在使用部署在 Openstack 虚拟机之上的 Kubernetes 集群。 VM 可以访问位于单独网络上的 NFS 共享。通过 dnsmasq 代理到网络的路由,然后像往常一样通过 /etc/fstab 记录挂载共享。这是典型 VM 上的样子:

[root@myhost ~]# cat /etc/dnsmasq.d/10-nfs 
server=/mynfsserver/10.35.105.240

[root@myhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Jun 12 11:54:36 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
mynfsserver:/nfs_share      /nfs_share       nfs     defaults      0 0
[root@myhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:9a:84:ea brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft 78341sec preferred_lft 78341sec
    inet6 fe80::f816:3eff:fe9a:84ea/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:2c:bd:88 brd ff:ff:ff:ff:ff:ff
    inet 10.35.105.10/24 brd 10.35.105.255 scope global dynamic eth2
       valid_lft 69621sec preferred_lft 69621sec
    inet6 fe80::f816:3eff:fe2c:bd88/64 scope link 
       valid_lft forever preferred_lft forever
6: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:f8:50:0c:69 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:f8ff:fe50:c69/64 scope link 
       valid_lft forever preferred_lft forever

所以我现在想做的是启动一些可以访问底层 NFS 共享的 pod,但我不太确定该怎么做。我正在启动的 pod 只能看到内部 pod 网络(我正在使用 Calico),而不是主机的。为了能够在 pod 内正确挂载 NFS 共享,我需要哪些配置?提前致谢。

【问题讨论】:

    标签: docker kubernetes openstack


    【解决方案1】:

    我没有使用 OpenShift 的经验,所以我不确定它的具体环境如何。但是为了能够从 pod 访问 NFS,您需要确保它对 pod 可见,并且 NFS 已经存在,因为 pod 仅访问 NFS - 如果传统方式失败,您也可以尝试使用路由。

    Pod 始终只能看到自己的网络,除非您通过 service 公开它们。

    首先,您必须创建一个服务来将 NFS 服务器公开给 Pod/Pod。然后在所需的 pod 中运行 NFS 服务器映像。

    您可以找到详细的操作方法here。 我还可以从官方 OpenShift documentation 中找到它,因为它看起来很经典。要求与其他平台类似:

    每个 NFS 卷必须可由 集群。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 2021-08-24
      • 2021-05-19
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多