java集群之间共享数据_在kubernetes集群之间共享nfs卷

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

设置基本上是这样的:

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

apiVersion: v1

kind: PersistentVolume

metadata:

name: nfs-pv

spec:

capacity:

storage: 20Gi

storageClassName: manual

accessModes:

- ReadWriteMany

gcePersistentDisk:

pdName: files

fsType: ext4

---

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

name: nfs-pvc

spec:

storageClassName: manual

accessModes:

- ReadWriteMany

resources:

requests:

storage: 20Gi

NFS服务器部署

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

name: nfs-server

spec:

replicas: 1

selector:

matchLabels:

role: nfs-server

template:

metadata:

labels:

role: nfs-server

spec:

containers:

- name: nfs-server

image: gcr.io/google_containers/volume-nfs:0.8

ports:

- name: nfs

containerPort: 2049

- name: mountd

containerPort: 20048

- name: rpcbind

containerPort: 111

securityContext:

privileged: true

volumeMounts:

- mountPath: /exports

name: mypvc

volumes:

- name: mypvc

persistentVolumeClaim:

claimName: nfs-pvc

NFS服务器服务

apiVersion: v1

kind: Service

metadata:

name: nfs-server

spec:

ports:

- name: nfs

port: 2049

- name: mountd

port: 20048

- name: rpcbind

port: 111

selector:

role: nfs-server

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

apiVersion: v1

kind: PersistentVolume

metadata:

name: nfs

spec:

capacity:

storage: 20Gi

storageClassName: manual

accessModes:

- ReadWriteMany

nfs:

server: 10.4.0.20

path: "/"

---

kind: PersistentVolumeClaim

apiVersion: v1

metadata:

name: nfs

spec:

storageClassName: manual

accessModes:

- ReadWriteMany

resources:

requests:

storage: 20Gi

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

volumes:

- name: files

persistentVolumeClaim:

claimName: nfs

kubectl的输出得到pv和kubectl获得pvc

user@HP-EliteBook:~/Downloads$ kubectl get pv

NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE

nfs 100Gi RWX Retain Bound default/nfs manual 286d

nfs-pv 100Gi RWO Retain Bound default/nfs-pvc manual 286d

user@HP-EliteBook:~/Downloads$ kubectl get pvc

NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE

nfs Bound nfs 100Gi RWX manual 286d

nfs-pvc Bound nfs-pv 100Gi RWO manual 286d

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值