2016-11-11 3 views
0

nfsで共通の永続性ボリュームを作成したいとします。Kubernetes nfsが請求項のパスを定義しています

PV(NFS):

/home/common-data-pv/www-site-1(50GI) 
/home/common-data-pv/www-site-2(50GI) 

しかし、私はしていません:

common-data-pv  1500Gi  RWO   Retain 
192.168.0.24 /home/common-data-pv 

私は請求またはポッド(請求マウント)したいが、共通のデータ-PVはパスの例を定義することができます購読しました私がこれをどのように定義できるかのドキュメンテーション。

PVのための私の実際のconf:

kind: PersistentVolume 
apiVersion: v1 
metadata: 
    name: common-data-pv 
    labels: 
    type: common 
spec: 
    capacity: 
    storage: 1500Gi 
    accessModes: 
    - ReadWriteMany 
    nfs: 
    server: 192.168.122.1 
    path: "/home/pv/common-data-pv" 



kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
    name: common-data-pvc 
    namespace: kube-system 
spec: 
    accessModes: 
    - ReadWriteMany 
    resources: 
    requests: 
     storage: 10Gi 
    selector: 
    matchLabels: 
     type: common 

使用例:

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: nfs-web-1 
    namespace: kube-system 
spec: 
    replicas: 2 
    selector: 
    role: web-frontend 
    template: 
    metadata: 
     labels: 
     role: web-frontend 
    spec: 
     containers: 
     - name: web 
     image: nginx:alpine 
     ports: 
      - name: web 
      containerPort: 80 
     volumeMounts: 
      # name must match the volume name below 
      - name: nfs 
       mountPath: "/usr/share/nginx/html" 
     volumes: 
     - name: nfs 
     persistentVolumeClaim: 
      claimName: common-data-pvc 

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: nfs-web-2 
    namespace: kube-system 
spec: 
    replicas: 2 
    selector: 
    role: web-frontend 
    template: 
    metadata: 
     labels: 
     role: web-frontend 
    spec: 
     containers: 
     - name: web 
     image: nginx:alpine 
     ports: 
      - name: web 
      containerPort: 80 
     volumeMounts: 
      # name must match the volume name below 
      - name: nfs 
       mountPath: "/usr/share/nginx/html" 
     volumes: 
     - name: nfs 
     persistentVolumeClaim: 
      claimName: common-data-pvc 

答えて

0

あなたは自分のマニフェストにvolumeMountsセクションとボリュームを追加する必要があります主張を使用するには。あなたの主張を使用するnginxの複製コントローラの例を次に示します。同じPVC名を使用する最後の行に注意してください。

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: nfs-web 
    namespace: kube-system 
spec: 
    replicas: 2 
    selector: 
    role: web-frontend 
    template: 
    metadata: 
     labels: 
     role: web-frontend 
    spec: 
     containers: 
     - name: web 
     image: nginx:alpine 
     ports: 
      - name: web 
      containerPort: 80 
     volumeMounts: 
      # name must match the volume name below 
      - name: nfs 
       mountPath: "/usr/share/nginx/html" 
     volumes: 
     - name: nfs 
     persistentVolumeClaim: 
      claimName: common-data-pvc 

より多くの例は、はい、私は知っている;-) kubernetesレポunder examples

+0

で見つけることができます。だから、名前がnfs-web-2で、同じPVCまたはPVを持つ新しいRCを作成すると、すべてのファイルが同じディレクトリに登録されているので、競合する可能性があります。私は例を使って自分の質問を編集する。 – timactive

+0

異なるRC /デプロイメントで同じクレームを再利用することはできません。あなたはRCごとにサブディレクトリを使用してそれらを要求する必要があります。これを自動化するには、リソースを作成できる自動プロビジョナを使用する必要があります。ここでは、kubernetesインキュベータープロジェクトとして採用されているnfs-provisionerがあります。https://github.com/wongma7/nfs-provisionerここは将来のホームです。https://github.com/kubernetes-incubator/nfs-provisioner –

関連する問題