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

容器与中间件容器服务技术服务知识库
问题描述

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

问题分析

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

问题解决
  1. 创建 pv

图片

  1. 填写必要参数,点击确定

图片

  1. 查看创建结果

图片

  1. 创建 pvc

图片

  1. 填写必要参数

图片

  1. 查看创建结果

图片

  1. NAS 中创建目录
$ mkdir html mysql
  1. 创建使用 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
  1. 部署 pod
$ kubectl apply -f pod-subpath.yaml
  1. 查看 pod
$ kubectl get pod -n default|grep lamp
my-lamp-site                    2/2     Running     0          2m9s
  1. 验证是否成功

查看 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/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务

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