通过 DNS 或静态 ClusterIP 为 PersistentVolume 配置 NFS 服务器
Configure NFS server for PersistentVolume either via DNS or static ClusterIP
我在 google 容器引擎上有一个 kubernetes 集群 运行,它定义了一个 Pod 运行 一个 NFS 服务器,我想通过其他 Pods 访问它各种 PersistentVolume
s.
如果在同一个集群中,配置 NFS 服务的最佳方法是什么?
根据各种文档,我发现它不可能依赖 kube-dns,因为启动 kubernetes pod 的节点未配置为将其用作其 DNS。
所以这是不可能的(而且确实行不通 - 我用各种不同的方法测试过它 hostname/FQDN...)
apiVersion: v1
kind: PersistentVolume
metadata:
name: xxx-persistent-storage
labels:
app: xxx
spec:
capacity:
storage: 10Gi
nfs:
path: "/exports/xxx"
server: nfs-service.default.svc.cluster.local # <-- does not work
我可以启动 NFS 服务器并通过 kubectl describe svc nfs-service
检查其 ClusterIP,然后为 PV 硬编码其端点 IP(这有效):
apiVersion: v1
kind: PersistentVolume
metadata:
name: xxx-persistent-storage
labels:
app: xxx
spec:
capacity:
storage: 10Gi
nfs:
path: "/exports/xxx"
server: 10.2.1.7 # <-- does work
但这感觉不对 - 一旦我需要重新创建 NFS 服务,我就会得到一个新 IP,我必须根据它重新配置所有 PV。
此处的最佳做法是什么?我很惊讶我没有找到任何例子,因为我认为这是很正常的事情 - 不是吗?
是否可以为服务设置一种静态 IP,以便 NFS 服务始终拥有相同的 IP?
你走在正确的轨道上。为确保您的服务使用静态 IP,只需在服务的 spec:
部分下添加 clusterIP: 1.2.3.3
。
来自规范 example:
In the future, we'll be able to tie these together using the service names, but for now, you have to hardcode the IP.
我在 google 容器引擎上有一个 kubernetes 集群 运行,它定义了一个 Pod 运行 一个 NFS 服务器,我想通过其他 Pods 访问它各种 PersistentVolume
s.
如果在同一个集群中,配置 NFS 服务的最佳方法是什么?
根据各种文档,我发现它不可能依赖 kube-dns,因为启动 kubernetes pod 的节点未配置为将其用作其 DNS。
所以这是不可能的(而且确实行不通 - 我用各种不同的方法测试过它 hostname/FQDN...)
apiVersion: v1
kind: PersistentVolume
metadata:
name: xxx-persistent-storage
labels:
app: xxx
spec:
capacity:
storage: 10Gi
nfs:
path: "/exports/xxx"
server: nfs-service.default.svc.cluster.local # <-- does not work
我可以启动 NFS 服务器并通过 kubectl describe svc nfs-service
检查其 ClusterIP,然后为 PV 硬编码其端点 IP(这有效):
apiVersion: v1
kind: PersistentVolume
metadata:
name: xxx-persistent-storage
labels:
app: xxx
spec:
capacity:
storage: 10Gi
nfs:
path: "/exports/xxx"
server: 10.2.1.7 # <-- does work
但这感觉不对 - 一旦我需要重新创建 NFS 服务,我就会得到一个新 IP,我必须根据它重新配置所有 PV。
此处的最佳做法是什么?我很惊讶我没有找到任何例子,因为我认为这是很正常的事情 - 不是吗?
是否可以为服务设置一种静态 IP,以便 NFS 服务始终拥有相同的 IP?
你走在正确的轨道上。为确保您的服务使用静态 IP,只需在服务的 spec:
部分下添加 clusterIP: 1.2.3.3
。
来自规范 example:
In the future, we'll be able to tie these together using the service names, but for now, you have to hardcode the IP.