从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述#云原生征文#Kubernetes(k8s)临时存储相关的知识,希望能为你提供帮助。
Kubernetes(k8s)临时存储一、几种临时存储Kubernetes 为了不同的目的,支持几种不同类型的临时卷:
- emptyDir: Pod 启动时为空,存储空间来自本地的 kubelet 根目录(通常是根磁盘)或内存
- configMap、downwardAPI 、 secret: 将不同类型的 Kubernetes 数据注入到 Pod 中
- CSI 临时卷: 类似于前面的卷类型,但由专门支持此特性的指定 CSI 驱动程序提供
- 通用临时卷: 它可以由所有支持持久卷的存储驱动程序提供
- 当 Pod 分派到某个 Node 上时,
emptyDir
卷会被创建 - 在 Pod 在该节点上运行期间,卷一直存在。
- 卷最初是空的。
- 尽管 Pod 中的容器挂载
emptyDir
卷的路径可能相同也可能不同,这些容器都可以读写emptyDir
卷中相同的文件。 - 当 Pod 因为某些原因被从节点上删除时,
emptyDir
卷中的数据也会被永久删除。 - 存储空间来自本地的 kubelet 根目录(通常是根磁盘)或内存
apiVersion: v1
kind: Pod
metadata:
name: "multi-container-pod"
namespace: default
labels:
app: "multi-container-pod"
spec:
volumes:### 以后见到的所有名字 都应该是一个合法的域名方式
- name: nginx-vol
emptyDir:### docker匿名挂载,外部创建一个位置/abc
containers:## kubectl exec -it podName-c nginx-container(容器名)-- /bin/sh
- name: nginx-container
image: "nginx"
volumeMounts:#声明卷挂载-v
- name: nginx-vol
mountPath: /usr/share/nginx/html
- name: content-container
image: "alpine"
command: ["/bin/sh","-c","while true; do sleep 1; date > /app/index.html; done; "]
volumeMounts:
- name: nginx-vol
mountPath: /app
【#云原生征文#Kubernetes(k8s)临时存储】
三、扩展-hostPath官方文档:??卷 | Kubernetes??
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
hostPath:
# 宿主上目录位置
path: /data
# 此字段为可选
type: Directory
apiVersion: v1
kind: Pod
metadata:
name: test-webserver
spec:
containers:
- name: test-webserver
image: k8s.gcr.io/test-webserver:latest
volumeMounts:
- mountPath: /var/local/aaa
name: mydir
- mountPath: /var/local/aaa/1.txt
name: myfile
volumes:
- name: mydir
hostPath:
# 确保文件所在目录成功创建。
path: /var/local/aaa
type: DirectoryOrCreate
- name: myfile
hostPath:
path: /var/local/aaa/1.txt
type: FileOrCreate
典型应用
解决容器时间问题
apiVersion: v1
kind: Pod
metadata:
name: busy-box-test
namespace: default
spec:
restartPolicy: OnFailure
containers:
- name: busy-box-test
image: busybox
imagePullPolicy: IfNotPresent
volumeMounts:
- name: date-config
mountPath: /etc/localtime
command: ["sleep", "60000"]
volumes:
- name: date-config
hostPath:
path: /etc/localtime
【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598
推荐阅读
- ##Mondo Rescue制作镜像文件(有利于镜像损坏恢复)
- ##虚机仅主机的网络配置
- 使用二进制方式搭建k8s集群(亲测有效)
- 内存变化趋势perfmon使用
- 值得你记住并受用一生的Word XP/2003快捷键
- 我校将进行校园网设备及主干链路升级改造
- 「云原生的进阶之路」|【Docker 那些事儿】容器数据卷的妙手
- 树莓派学习 2. 开发环境搭建
- 防火墙基础之华为华三防火墙web页面登录