问题描述
将NAS中已经存在的多个目录直接挂载到pod中,而不是创建pvc-xxx
问题分析
通过pv/pvc挂载存储卷到pod中会在存储目录创建pvc-xxx目录,可以使用subpath的方式将以存在的目录挂载到pod中。
问题解决
1.创建pv
2.填写必要参数,点击确定
3.查看创建结果
4.创建pvc
5.填写必要参数
6.查看创建结果
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/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务