我正在寻找一些信息,了解哪些要求是执行docker的节点中的openshift存储的最佳实践,但我没有找到任何明确的解决方案。
我的问题是:
- 所有节点都必须使用任何共享存储吗?
- 我可以控制放置图像的目录吗?
- 必须已经在容器中加入的nfs目录已经安装在节点服务器中了吗?
答案 0 :(得分:0)
我一直在寻找有关这方面的信息,这些是我的结论:
如果您需要持久存储,例如db,jenkins master或者每次docker启动时要维护的任何类型的存储,那么您必须在可以运行需要持久存储的docker的节点中安装存储。
在节点中安装以下任何一个: NFS,HostPath(当然已经安装了单节点测试),GlusterFS,Ceph,OpenStack Cinder,AWS Elastic Block Store(EBS),GCE永久磁盘,iSCSI,光纤通道
在Openshift中创建持久卷
Openshift nfs示例创建file.yaml文件
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0003
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /tmp
server: 172.17.0.2
从创建的文件中创建
oc create -f file.yaml
然后pod会使用声明。
例如,让我们声称1GB,稍后我们会将声明与pod关联。
创建nfs-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-claim1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
从创建的文件中创建
oc create -f nfs-claim.yaml
-
apiVersion: v1
kind: Pod
metadata:
name: nginx-nfs-pod
labels:
name: nginx-nfs-pod
spec:
containers:
- name: nginx-nfs-pod
image: fedora/nginx
ports:
- name: web
containerPort: 80
volumeMounts:
- name: nfsvol
mountPath: /usr/share/nginx/html
volumes:
- name: nfsvol
persistentVolumeClaim:
claimName: nfs-claim1
必须提供一些额外的选项,例如selinux设置,但这里有很好的解释(https://docs.openshift.org/latest/install_config/storage_examples/shared_storage.html)
答案 1 :(得分:0)
只有真的才能通过共享存储提供商获得。以下https://docs.openshift.org/latest/install_config/persistent_storage/index.html是此类存储提供商的选项。