2

我们在 GKE 中设置了两个不同的集群。一个集群正在运行一个 nfs 服务器,在该集群上我们有一个指向服务器的持久卷。然后将此 PV 挂载到在此集群上运行的 pod 上。第二个集群也有一个 PV 和一个应该挂载相同 nfs 卷的 pod。这是问题发生的地方。在我们指出服务器不能使用 nfs-server clusterIp 地址的地方。这是可以理解的,但我想知道如何最好地实现这一点。

设置基本上是这样的:

NFS 使用的持久卷和持久卷声明

api版本:v1
种类:持久卷
元数据:
  名称:nfs-pv
规格:
  容量:
    存储:20Gi
  storageClassName:手动
  访问模式:
    - 读写多
  gcePersistentDisk:
    pdName:文件
    fs类型:ext4
---
api版本:v1
种类:PersistentVolumeClaim
元数据:
  名称:nfs-pvc
规格:
  storageClassName:手动
  访问模式:
    - 读写多
  资源:
    要求:
      存储:20Gi

NFS 服务器部署

apiVersion:扩展/v1beta1
种类:部署
元数据:
  名称:nfs服务器
规格:
  复制品:1
  选择器:
    匹配标签:
      角色:nfs服务器
  模板:
    元数据:
      标签:
        角色:nfs服务器
    规格:
      容器:
      - 名称:nfs 服务器
        图片:gcr.io/google_containers/volume-nfs:0.8
        端口:
          - 名称:nfs
            容器端口:2049
          - 名称:mountd
            容器端口:20048
          - 名称:rpcbind
            容器端口:111
        安全上下文:
          特权:真
        卷装:
          - 安装路径:/exports
            名称:mypvc
      卷:
        - 名称:mypvc
          持久卷声明:
            声明名称:nfs-pvc

NFS 服务器服务

api版本:v1
种类:服务
元数据:
  名称:nfs服务器
规格:
  端口:
    - 名称:nfs
      端口:2049
    - 名称:mountd
      端口:20048
    - 名称:rpcbind
      端口:111
  选择器:
    角色:nfs服务器

Pod 使用的持久卷和持久卷声明:

  api版本:v1
  种类:持久卷
  元数据:
    名称:nfs
  规格:
    容量:
      存储:20Gi
    storageClassName:手动
    访问模式:
      - 读写多
    nfs:
      服务器:10.4.0.20
      小路: ”/”

---
种类:PersistentVolumeClaim
api版本:v1
元数据:
  名称:nfs
规格:
  storageClassName:手动
  访问模式:
    - 读写多
  资源:
    要求:
      存储:20Gi

用于挂载 nfs 的 pod 部署文件的一部分

      卷:
        - 名称:文件
          持久卷声明:
            声明名称:nfs

kubectl get pv 和 kubectl get pvc 的输出

user@HP-EliteBook:~/Downloads$ kubectl get pv
名称 容量 访问模式 回收政策 状态 索赔 存储类别 原因 年龄
nfs 100Gi RWX 保留绑定默认/nfs 手册 286d
nfs-pv 100Gi RWO 保留绑定默认值/nfs-pvc 手册 286d
user@HP-EliteBook:~/Downloads$ kubectl get pvc
名称 状态 容量 访问模式 存储类别 年龄
nfs 绑定 nfs 100Gi RWX 手册 286d
nfs-pvc 绑定 nfs-pv 100Gi RWO 手册 286d

Pod 使用的 PV 中的 ip 是问题所在。同一集群上的 pod 可以连接到它,但不能连接到另一个集群上的 pod。我可以使用来自其他集群的实际 podIP,但 podIP 会随着每次部署而变化,因此这不是一个可行的解决方案。解决这个问题的最佳方法是什么,我只希望第二个集群能够访问 nfs 服务器,而不是向世界开放它。

4

0 回答 0