国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

云原生 | K8s中VolumeMounts.subPath的巧妙用法

云計算 云原生
subPath其實就是volumes掛載的子目錄或單個文件,是不是目錄和單文件,取決于subPath在volumes掛載的目錄下是否存在subPath定義的文件(文件或目錄),如果不存在,則會volumes對應的目錄下創建一個subPath目錄。

一、概述

有時,在單個 Pod 中共享卷以供多方使用是很有用的。volumeMounts.subPath 屬性可用于指定所引用的卷內的子路徑,而不是其根路徑。

官方文檔:https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/#using-subpath

二、使用場景

  1. 一個共享卷, 掛載多個路徑。
  2. ConfigMap或Secret掛載到特定目錄的特定路徑, 而 該目錄下已經有其他文件且不希望被覆蓋掉。

三、共享卷中使用, 掛載多個路徑

作為configmap/secret使用時,subPath代表configmap/secret的子路徑。

【示例1】掛載目錄,hostPath

apiVersion: v1
kind: Pod
metadata:
name: my-lamp-site
spec:
nodeName: local-168-182-110 # 為了測試方便,指定調度機器
containers:
- name: mysql
image: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "rootpasswd"
volumeMounts:
- mountPath: /var/lib/mysql #掛載到容器的某個路徑下
name: site-data #掛載設備的名字,與volumes[*].name 需要對應
subPath: mysql # volumes path中的子路徑(會自動在volumes path目錄下創建mysql空目錄)
- name: php
image: php:7.0-apache
volumeMounts:
- mountPath: /var/www/html #掛載到容器的某個路徑下
name: site-data # volumes path中的子路徑(會自動在volumes path目錄下創建site-data【空目錄】)
subPath: html
volumes:
- name: nginx #和上面保持一致 這是本地的文件路徑,上面是容器內部的路徑
hostPath:
path: /opt/k8s/subPath/lamp #此路徑需要實現創建

【示例2】掛載目錄,pvc

# StorageClass
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
# pvc
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-lamp-pv
labels:
name: local-lamp-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /opt/k8s/subPath/lamp-pvc
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- local-168-182-110

---
# pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: my-lamp-site-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-storage
selector:
matchLabels:
name: local-lamp-pv
---
apiVersion: v1
kind: Pod
metadata:
name: my-lamp-site-pvc
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: my-lamp-site-data

如果使用PVC模板就不用手動創建PVC了,示例如下:

  volumeClaimTemplates:   #可看作pvc的模板
- metadata:
name: nginx-pvc
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "local-storage" #存儲類名,就是上面nginx-sc.yaml metadata.name
resources:
requests:
storage: 1Gi

【示例3】共享單個文件那么如果 subPath 不是文件夾,而是一個文件,又該如何解決呢?同樣的道理,只需要通過 subPath 指定出該文件即可,注意 subPath 要使用相對目錄。具體如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-test
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
nodeName: local-168-182-110 # 為了測試方便,指定調度機器
containers:
- name: nginx
image: docker.io/library/nginx:latest
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: nginx-conf
subPath: nginx-conf
volumes:
- name: nginx-conf #和上面保持一致 這是本地的文件路徑,上面是容器內部的路徑
hostPath:
path: /opt/k8s/subPath/nginx #此路徑需要實現創建

圖片

【結論】以宿主機上的文件為準,會覆蓋pod里原先默認的的文件內容。

四、ConfigMap 和 Secret 中使用 subPath

作為configmap/secret使用時,subPath代表configmap/secret?的子路徑。如果不使用subPath?會把容器里原本的文件(volumeMounts.mountPath?對應的目錄)都清空,自會把ConfigMap 和 Secret 的文件放在volumeMounts.mountPath對應的目錄下。

【示例1】ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf
data:
nginx.conf: |+
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-test2
spec:
replicas: 1
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
nodeName: local-168-182-110 # 為了測試方便,指定調度機器
containers:
- name: nginx
image: docker.io/library/nginx:latest
volumeMounts:
- name: nginx-cm # 與volumes.name一致
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
volumes:
- name: nginx-cm
configMap:
name: nginx-conf # configMap名稱

【示例1】Secret

apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: admin
password: MWYyZDFlMmU2N2Rm

---

vim myapp-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-demo
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: mysql
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
volumeMounts:
- name: mysql
mountPath: /tmp/data
subPath: data
volumes:
- name: mysql
secret:
secretName: mysecret

【結論】會在/tmp目錄下面存放data文件信息,如果存在則覆蓋。如果不存在,則自動創建。

最后對volumeMounts.subPath來一個總結:

  • subPath其實就是volumes掛載的子目錄或單個文件,是不是目錄和單文件,取決于subPath在volumes掛載的目錄下是否存在subPath定義的文件(文件或目錄),如果不存在,則會volumes對應的目錄下創建一個subPath目錄。
  • 如果ConfigMap 和 Secret 中使用 subPath,如果不指定subPath,則會把volumeMounts.mountPath對應的目錄下的文件都清掉,然后只存放ConfigMap 或者 Secret 定義的文件。

關于volumeMounts.subPath的用法就先到這里了,有疑問的小伙伴,歡迎給我留言哦,后續文章更精彩,請小伙伴耐心等待哦~

責任編輯:武曉燕 來源: 大數據與云原生技術分享
相關推薦

2024-09-26 09:50:07

2022-04-07 10:17:18

云原生服務器優化

2023-03-06 07:19:50

2021-04-25 10:26:58

云計算云原生

2022-07-18 18:48:32

Kubernetes云原生

2025-01-03 08:08:56

2023-03-03 07:54:21

2023-03-07 07:56:37

Sqoopk8s底層

2022-11-08 08:55:31

2024-06-12 13:21:06

2022-10-14 07:42:50

LuceneHTTPWeb

2023-01-04 17:42:22

KubernetesK8s

2023-02-24 14:52:20

Redis存儲開發

2022-11-06 21:31:11

云原生Sentinel集群模式

2021-08-26 07:20:05

云原生K8sSpringboot

2021-08-13 07:00:41

云原生k8sspringboot

2023-02-08 07:55:33

K8sHPA服務器

2023-03-01 07:42:12

HBase編排部署數據

2024-06-06 09:19:09

2023-11-03 08:43:00

云原生TLS 證書
點贊
收藏

51CTO技術棧公眾號

天堂v视频永久在线播放| heyzo视频在线播放| 国产精品qvod| 一区二区亚洲精品国产| 噜噜噜噜噜在线视频| 亚洲码国产岛国毛片在线| 真人做人试看60分钟免费| 伊人久久大香线蕉av超碰演员| 欧美激情aaaa| 国产视频一区二| 伊人一区二区三区久久精品| 天堂va在线| 91精品国产91久久久久久最新毛片| 欧美精品一区二区三区涩爱蜜| 在线欧美视频| 国产九九九九九| 久久人人爽亚洲精品天堂| 麻豆成人综合网| 91青草视频久久| 成人国产激情| 国产综合久久久久久| 亚洲精品蜜桃乱晃| 欧美成人福利视频| 久久色在线视频| 日韩精品视频在线观看免费| 午夜精彩视频| 欧美疯狂做受xxxx富婆| 免费一级在线观看| 亚洲国产成人精品一区二区| 国产成人在线中文字幕| 精品伊人久久97| 二区在线观看| 欧美色爱综合网| 日韩精品久久一区| 欧美视频在线观看网站| 北岛玲一区二区三区四区| a级网站在线播放| 久热国产精品视频| 香蕉久久精品| 综合一区中文字幕| 一区二区三区在线观看网站| 亚洲一区3d动漫同人无遮挡| 国产精品电影院| 草莓视频成人appios| 中文字幕亚洲欧美一区二区三区| 国产传媒欧美日韩成人精品大片| 一区二区三区不卡视频在线观看| 97色伦亚洲国产| 成年人视频在线看| 久久一区国产| 国内精品久久久久伊人av| 亚洲一区在线不卡| 国际精品欧美精品| 一区二区三区不卡视频在线观看| 免费av片在线观看一道本| 久久影视电视剧免费网站清宫辞电视| 一区二区在线观看免费| 肉色丝袜一区二区| 欧洲金发美女大战黑人| 久久久国产精华| 97欧洲一区二区精品免费| 大菠萝精品导航| 天天爽夜夜爽夜夜爽精品视频| 国产成人av影视| 四虎成人av| 91国产视频在线播放| 欧美69wwwcom| 成年人小视频网站| 欧美α欧美αv大片| 久久久综合亚洲91久久98| 色婷婷综合久久久中文一区二区 | 99久久99久久精品国产片果冰| 在线观看免费视频一区二区三区| 久久爱av电影| 欧美日韩xxxxx| 欧美日韩国产免费一区二区| 国产精品一二一区| 国内精品视频免费| 国产精品久久午夜| 久久福利影院| 日本h片在线看| 国产精品白嫩初高中害羞小美女| 成人福利视频网站| xxxx日韩| 免费看黄视频网站| 久久色精品视频| 一区二区三区资源| 亚洲天堂中文字幕在线观看| 欧美黑人又粗又大又爽免费| 精品毛片网大全| 国产videos久久| av资源站久久亚洲| 亚洲国产精品自拍| 欧美a级理论片| 污网站在线免费看| 2024亚洲男人天堂| 国产美女亚洲精品7777| 久久视频在线观看中文字幕| 国产精品亲子伦对白| 日韩欧美激情| 日本一区二区高清视频| 国产日韩欧美综合在线| **国产精品| 3dmax动漫人物在线看| 久久的精品视频| 亚洲激情视频网站| 成人黄色一级视频| 一级片在线免费看| 欧美日韩一区二区三区四区五区| 9i精品一二三区| 777久久久精品| 欧美综合影院| 亚洲精品视频在线观看网站| 电影中文字幕一区二区| 天堂аⅴ在线最新版在线| 亚洲伊人久久综合| 成人看的羞羞网站| 狠狠色伊人亚洲综合网站l| 性欧美大战久久久久久久| 国产精品稀缺呦系列在线| 久久精品30| 久久综合影视| 久久66热re国产| 欧美片第1页综合| 亚洲字幕久久| 亚洲深深色噜噜狠狠爱网站| 亚洲警察之高压线| 2020国产精品极品色在线观看| 日本福利片免费看| 日韩国产美国| 国产精品免费久久久| 日韩一区二区三区免费看| 国模娜娜一区二区三区| 国产精品毛片久久久| 久久手机免费观看| 色偷偷福利视频| gogogo免费高清日本写真| 色噜噜国产精品视频一区二区 | 伊人影院久久| 在线观看亚洲| 白嫩白嫩国产精品| 麻豆传媒免费在线观看| 韩国无码av片在线观看网站| 免费看成人av| 日本高清久久一区二区三区| 国产精品精品视频一区二区三区| 久久偷看各类女兵18女厕嘘嘘| 欧美日韩美少妇| 日本一区二区在线不卡| 日韩一区二区三区色| 男人添女荫道口女人有什么感觉| 日韩精品中文字幕一区二区三区 | 日韩国产精品久久| 91久久大香伊蕉在人线| 激情婷婷综合| 日本大片在线观看| 久久国产精品影片| 久久免费午夜影院| 奇米色欧美一区二区三区| 国产剧情一区二区在线观看| 波多野结衣综合网| 欧美日韩激情四射| 国产一区二区三区乱码| 91免费版看片| 色婷婷综合久久久久中文字幕| 在线观看国产高清视频| 91精选福利| 欧美性受黑人性爽| 亚洲3p在线观看| 7777女厕盗摄久久久| 亚洲网友自拍偷拍| 99精品欧美一区二区三区小说| 国语自产精品视频在免费| 亚洲成人免费在线| 午夜亚洲性色视频| 久久wwww| 国产亚洲成av人片在线观黄桃| av亚洲免费| 麻豆高清免费国产一区| 亚洲嫩草精品久久| 亚洲人成毛片在线播放| 国产精品一区高清| 欧美区亚洲区| 亚洲综合免费观看高清完整版在线 | 国产精品www994| 亚洲激情成人在线| 中文字幕精品av| 欧美一级中文字幕| aaa日本高清在线播放免费观看| 亚洲成a人片| 91精品综合久久久久久久久久久 | 国产精品一级在线观看| 宅男在线一区| 麻豆一区二区99久久久久| 国产成人精品免费| 欧美精品自拍偷拍| 国产精品亚洲激情| 天天摸天天碰天天添| 一级黄色在线| av今日在线|