Kubernetes nfs在声明中定义路径

时间:2016-11-11 09:41:13

标签: kubernetes

我想用nfs创建公共持久性卷。

PV(NFS):

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

我想要一个声明或pod(挂载声明)订阅的common-data-pv可以定义路径示例:

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

但我没有在文档中找到我如何定义它。

我对pv的实际配置:

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

1 个答案:

答案 0 :(得分: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 repo under examples

中找到