如何通过subpath挂载NAS中的子目录

问题描述

将NAS中已经存在的多个目录直接挂载到pod中,而不是创建pvc-xxx

问题分析

通过pv/pvc挂载存储卷到pod中会在存储目录创建pvc-xxx目录,可以使用subpath的方式将以存在的目录挂载到pod中。

问题解决

1.创建pv alt 2.填写必要参数,点击确定 alt 3.查看创建结果 alt 4.创建pvc alt 5.填写必要参数 alt 6.查看创建结果 alt 7.NAS中创建目录

$ mkdir html mysql

8.创建使用pvc的pod

apiVersion: v1
kind: Pod
metadata:
  name: my-lamp-site
spec:
    containers:
    - name: mysql
      image: mysql
      env:
      - name: MYSQL_ROOT_PASSWORD
        value: "rootpasswd"
      volumeMounts:
      - mountPath: /var/lib/mysql
        name: site-data
        subPath: mysql
    - name: php
      image: php:7.0-apache
      volumeMounts:
      - mountPath: /var/www/html
        name: site-data
        subPath: html
    volumes:
    - name: site-data
      persistentVolumeClaim:
        claimName: subpath-test

9.部署pod

$ kubectl apply -f pod-subpath.yaml

10.查看pod

$ kubectl get pod -n default|grep lamp
my-lamp-site                    2/2     Running     0          2m9s

11.验证是否成功 查看mysql目录,生成了mysql必要文件

root@dxg-vke-t4bgv4:/vke-nfs/mysql# pwd
/vke-nfs/mysql
root@dxg-vke-t4bgv4:/vke-nfs/mysql# ls -l
total 198052
-rw-r----- 1 systemd-coredump systemd-coredump       56 Jan 14 16:19  auto.cnf
-rw-r----- 1 systemd-coredump systemd-coredump  3116921 Jan 14 16:19  binlog.000001
-rw-r----- 1 systemd-coredump systemd-coredump      156 Jan 14 16:19  binlog.000002
-rw-r----- 1 systemd-coredump systemd-coredump       32 Jan 14 16:19  binlog.index
-rw------- 1 systemd-coredump systemd-coredump     1676 Jan 14 16:19  ca-key.pem
-rw-r--r-- 1 systemd-coredump systemd-coredump     1112 Jan 14 16:19  ca.pem
-rw-r--r-- 1 systemd-coredump systemd-coredump     1112 Jan 14 16:19  client-cert.pem
-rw------- 1 systemd-coredump systemd-coredump     1676 Jan 14 16:19  client-key.pem
-rw-r----- 1 systemd-coredump systemd-coredump   196608 Jan 14 16:21 '#ib_16384_0.dblwr'
-rw-r----- 1 systemd-coredump systemd-coredump  8585216 Jan 14 16:19 '#ib_16384_1.dblwr'
-rw-r----- 1 systemd-coredump systemd-coredump     5723 Jan 14 16:19  ib_buffer_pool
-rw-r----- 1 systemd-coredump systemd-coredump 12582912 Jan 14 16:19  ibdata1
-rw-r----- 1 systemd-coredump systemd-coredump 50331648 Jan 14 16:21  ib_logfile0
-rw-r----- 1 systemd-coredump systemd-coredump 50331648 Jan 14 16:19  ib_logfile1
-rw-r----- 1 systemd-coredump systemd-coredump 12582912 Jan 14 16:20  ibtmp1
drwxr-x--- 2 systemd-coredump systemd-coredump      187 Jan 14 16:19 '#innodb_temp'
drwxr-x--- 2 systemd-coredump systemd-coredump      143 Jan 14 16:19  mysql
-rw-r----- 1 systemd-coredump systemd-coredump 31457280 Jan 14 16:19  mysql.ibd
drwxr-x--- 2 systemd-coredump systemd-coredump     8192 Jan 14 16:19  performance_schema
-rw------- 1 systemd-coredump systemd-coredump     1680 Jan 14 16:19  private_key.pem
-rw-r--r-- 1 systemd-coredump systemd-coredump      452 Jan 14 16:19  public_key.pem
-rw-r--r-- 1 systemd-coredump systemd-coredump     1112 Jan 14 16:19  server-cert.pem
-rw------- 1 systemd-coredump systemd-coredump     1676 Jan 14 16:19  server-key.pem
drwxr-x--- 2 systemd-coredump systemd-coredump       28 Jan 14 16:19  sys
-rw-r----- 1 systemd-coredump systemd-coredump 16777216 Jan 14 16:21  undo_001
-rw-r----- 1 systemd-coredump systemd-coredump 16777216 Jan 14 16:21  undo_002

往pod中的php容器目录下写入文件

kubectl exec -it -n default my-lamp-site -c php -- bash -c 'echo test-subpath > /var/www/html/index.php'

查看NAS上html目录内容

$ /vke-nfs/html# pwd
/vke-nfs/html
$  ls -l
total 4
-rw-r--r-- 1 root root 13 Jan 14 16:48 index.php
$ cat index.php 
test-subpath
参考链接

https://kubernetes.io/zh/docs/concepts/storage/volumes/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务

76
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论