2016-08-30 90 views
0

我正在寻找一些关于什么要求是openshift存储节点的最佳实践的一些信息,这些节点将执行dockers,但我没有找到任何明确的解决方案。Openshift节点存储配置

我的问题是:

-is任何共享存储强制所有节点?

- 可以控制放置图像的目录吗?

- 必须是nfs将通过容器加入的目录已经安装在节点服务器中?

+1

它不清楚你想问你的3个问题中的2个: “我可以控制图像放置的目录吗?” 什么图像?你建立的图像并推送到注册表?您要拉动运行的图像在平台上? “ ”必须是将被容器加入的nfs目录已经安装在节点服务器中?“ 您是否试图询问nfs(存储)是否需要安装在节点上,以便pod能够使用它。这里的答案是肯定的。为了让PVC声明一个PV,PV必须被创建(为了实现这一点,必须将其安装到节点上。 –

回答

0

我一直在寻找这件事,这些信息是我的结论:

如果需要例如数据库,詹金斯船长或任何类型的存储持久性存储要保持每次再码头工人靴你必须将存储挂载到可运行docker的节点上,这需要持久存储。

  1. 山中的节点的部分包括: NFS,HostPath(单个节点测试仅当然已经被安装),GlusterFS,Ceph的,开栈煤渣,AWS弹性块存储(EBS),GCE永久磁碟,iSCSI的光纤通道

  2. 在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 
  • 创建从数据存储中的权利要求,权利要求书将搜索可用与所需的容量持久卷。
  • 然后索赔将被豆荚使用。

    例如,让我们声明1GB,稍后我们将关联索赔与吊舱。

    创建NFS-claim.yaml

    apiVersion: v1 
    kind: PersistentVolumeClaim 
    metadata: 
        name: nfs-claim1 
    spec: 
        accessModes: 
        - ReadWriteOnce 
    resources: 
        requests: 
         storage: 1Gi 
    

    从文件创建创建

    oc create -f nfs-claim.yaml 
    
  • fo与存储卷,并用权利要求创建荚。
  • -

    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

    0
    • 是任何共享存储强制所有节点?

    没有共享存储强制性,但它是高度建议(因为大多数应用程序将需要一些“全状态”存储,只能真正有一个共享的存储供应商提供。