k8s学习记录【进阶篇】,Volume介绍&Volumes EmptyDir实现数据共享(二十)

文章中资料参考来源2022 云原生Kubernetes全栈架构师

Volume的介绍及使用场景【一些需要持久化数据的程序或需要共享数据的程序才会用到Volume】

a、Container(容器)中的磁盘文件是短暂的,当容器崩溃时,kubelet会重新启动容器,但最初的文件将丢失,Container会以最干净的状态启动。
b、当一个Pod运行多个Container时,各个容器可能需要共享一些文件,Kubernetes Volume可以解决容器间文件共享的问题
c、日志收集的需求,需要在应用程序容器里面加一个sidecar,这个容器是一个收集日志的容器,比如filebeat,它通过volumes共享应用程序的日志文件目录

Volumes官方文档介绍

一般EmptyDir卷用于Pod中的不同Container共享数据,它可以被挂载到相同或不同的路径上

默认情况下,EmptyDir卷支持节点上的任何介质,可能是SSD、磁盘或网络存储,具体取决于自身的环境,可以将EmptyDir字段设置为Memory,让Kubetnetes使用tmpfs(内存支持的文件系统),虽然tmpfs非常快,但是tmpfs在节点重启时,数据同样会被清除,并且设置的大小会被计入到Container的内存限制中

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

下面来动手创建2个niginx的container试一下

编写创建deploy的yaml文件

image

根据创建的yaml文件,创建deploy资源

image

在容器1的opt目录下创建文件,在容器2的mnt目录下查看发现刚才创建的文件

image

posted @ 2021-08-31 16:32  Hei蛋炒饭  阅读(320)  评论(0编辑  收藏  举报