我有一个运行在 google 容器引擎上的 kubernetes 集群,它定义了一个运行 NFS 服务器的 Pod,我想通过各种 PersistentVolume
在其他 Pod 中访问它s。
如果 NFS 服务在同一个集群中,配置 NFS 服务的最佳方法是什么?
根据各种文档,我发现它不可能依赖 kube-dns,因为启动 kubernetes pod 的节点未配置为将其用作其 DNS。
所以这是不可能的(而且真的不起作用 - 我用各种不同的主机名/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
我可以通过
kubectl describe svc nfs-service
启动 NFS 服务器并检查其 ClusterIP然后为 PV 硬编码它的 Endpoint-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,只需添加 clusterIP: 1.2.3.3
下spec:
服务的部分。
来自规范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.
关于kubernetes - 通过 DNS 或静态 ClusterIP 为 PersistentVolume 配置 NFS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42973882/