当前位置: 首页 > wzjs >正文

优化大师官方网站地方农产品网站建设

优化大师官方网站,地方农产品网站建设,网页制作专用工具,备案域名购买完过户简单吗前言 应用容器化之后,通过容器可以非常方便地部署应用。但是,容器的数据存储问题怎么解决呢? 很少有应用在运行过程中是不产生任何数据的,哪怕是像 Nginx 这种代理应用,运行过程中也会产生日志数据。业务应用更是不用…

前言

应用容器化之后,通过容器可以非常方便地部署应用。但是,容器的数据存储问题怎么解决呢?

很少有应用在运行过程中是不产生任何数据的,哪怕是像 Nginx 这种代理应用,运行过程中也会产生日志数据。业务应用更是不用说,比如存储用户上传的头像、上传的文件、数据库的数据等。

而容器中的磁盘文件是不可靠的,当容器崩溃后,kubernetes 会重新调度 Pod 基于最初的容器镜像启动新的容器,此时容器面对的磁盘文件系统回到了最干净的初始状态,容器的所有数据全都丢失了。

这显然不是我们想要看到的结果,因此 kubernetes 提供了容器的数据持久化能力,它把容器的数据存储抽象为“Volume”。

Volume概念

Linux 也有 Volume 的概念,在传统架构中,应用要访问存储设备进行数据读写,必须提前在宿主机上进行挂载。Volume 通常会是一块物理磁盘,或者是通过网络协议访问的远程存储设备。

和物理机一样,Pod 内的容器要想访问 Volume 也必须先声明和挂载。挂载后的 Volume 在容器看来也只是一个目录,容器可以对这个目录进行读写操作。容器重启或销毁后,Volume 内的数据会被保留,下次再启动新的容器还可以继续挂载该 Volume,新的容器得以接替上一个容器继续工作。

Volume的类型

kubernetes Volume 支持的卷类型很多,例如:CephFS、GlusterFS、NFS、RBD、HostPath 等。其中还包括 kubernetes 独有的类型:

  • ConfigMap:将 etcd 中的配置文件挂载到容器
  • Secret:将 etcd 中的数据敏感型配置文件挂载到容器
  • EmptyDir:挂载一个空目录,用于一个 Pod 内不同容器之间共享数据
  • PersistentVolumeClaim:对 PersistentVolume 的申请

kubernetes 支持的完整 Volume 类型参考官网:https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/#volume-types

示例1 挂载Secret到容器

secret 是 kubernetes 独有的 Volume 类型,secret 被用来存储配置信息,通过挂载到容器,使得容器可以读取 kubernetes secret。

第一步,先创建一个名为db.config的 secret

$ cat db.config
user=admin
password=2025admin!@#$# 基于文件创建create,名称是db.config
$ kubectl create secret generic db.config --from-file db.config
secret/db.config created# 查看是否创建成功
$ kubectl get secret
NAME        TYPE     DATA   AGE
db.config   Opaque   1      3m45s

第二步,编写pod.yaml启动一个挂载了名为db.config的 secret volume,然后容器持续打印 db.config 文件内容

apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- name: alpineimage: docker.io/library/alpine:3.22imagePullPolicy: Nevercommand: ["/bin/sh", "-c"]args:- while true; docat /data/db.config;sleep 1;donevolumeMounts:- name: secret-volumemountPath: /data/db.configsubPath: db.configvolumes:- name: secret-volumesecret:secretName: db.config

第三步,启动容器,查看 db.config 是否挂载成功,成功则会正常打印 db.config 内容

示例2 挂载emptyDir共享数据

emptyDir 是一个特殊的 Volume 类型,顾名思义它挂载的是一个空目录,如果删除 Pod,emptyDir 卷中的数据也会被删除。emptyDir 不用作持久化容器数据,而是存放临时数据,用于在同一个 Pod 内的不同容器之间共享数据。

案例:启动一个 Pod 包含两个容器,均挂载 emptyDir Volume,容器A持续写入数据,容器B持续读取数据。

第一步,编写 Pod.yaml,container-write 写数据,container-read 读数据。

apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- name: container-writeimage: docker.io/library/alpine:3.22imagePullPolicy: Nevercommand: ["/bin/sh", "-c","while true; do echo $(date) >> /data/temp/time.log; sleep 1;done"]volumeMounts:- name: emptydir-volumemountPath: /data/temp- name: container-readimage: docker.io/library/alpine:3.22imagePullPolicy: Nevercommand: ["/bin/sh", "-c","tail -F /data/temp/time.log"]volumeMounts:- name: emptydir-volumemountPath: /data/tempvolumes:- name: emptydir-volumeemptyDir: {}

第二步,启动 Pod,然后查看 Pod 中 container-read 容器的日志

示例3 hostPath挂载宿主机目录

hostPath卷可以将宿主机上的文件或目录挂载到 Pod,用于实现 Pod 和宿主机之间的数据共享。例如,把宿主机的时区挂载到 Pod。

案例:将宿主机上的/opt/hostpath目录挂载到 Pod,Pod 内容器持续往/opt/hostpath/time.log写入当前时间。

第一步,编写 pod.yaml,container-write 容器持续向挂载目录写入数据

apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- name: container-writeimage: docker.io/library/alpine:3.22imagePullPolicy: Nevercommand: ["/bin/sh", "-c","while true; do echo $(date) >> /data/hostpath/time.log; sleep 1;done"]volumeMounts:- name: hostpath-volumemountPath: /data/hostpathvolumes:- name: hostpath-volumehostPath:path: /opt/hostpathtype: Directory

第二步,启动 Pod,查看宿主机上的/opt/hostpath/time.log文件

尾巴

Pod 部署应用,容器自身有数据持久化需求,或者容器之间有数据共享需求。因此,kubernetes 提供了 Volume 机制,通过将 Volume 挂载到容器的一个目录,然后容器就可以往这个目录读写文件了,即使 Pod 停止或销毁,Volume 数据也会得以保留。后续启动新的 Pod,再次挂载该 Volume,新的 Pod 可以正常接替上一个 Pod 继续工作。

Volume 有很多类型,有基于宿主机目录的,有基于网络存储设备的,还有基于 kubernetes 特有的 secret 等配置信息类型,另外还提供了 emptyDir 类型挂载空目录,实现容器间的数据共享。


文章转载自:

http://v82wA0MI.gpkjx.cn
http://mH7oqRwU.gpkjx.cn
http://OBAho1Cb.gpkjx.cn
http://iWfNNXie.gpkjx.cn
http://I5U0cBqv.gpkjx.cn
http://vyZh0PI1.gpkjx.cn
http://SXvAHPbh.gpkjx.cn
http://KfXUzrP3.gpkjx.cn
http://OR0bGXwf.gpkjx.cn
http://0C55f8Ok.gpkjx.cn
http://Z5cujOMx.gpkjx.cn
http://nSGnoYqQ.gpkjx.cn
http://AwrM8Fel.gpkjx.cn
http://H0AkXNaA.gpkjx.cn
http://PF6EajYh.gpkjx.cn
http://eSGUHCew.gpkjx.cn
http://fnY4Vqki.gpkjx.cn
http://76zn2ScM.gpkjx.cn
http://07AioUZy.gpkjx.cn
http://3wxbVB8N.gpkjx.cn
http://TJCb4Pgm.gpkjx.cn
http://wSzzzrQy.gpkjx.cn
http://mDUGi4fn.gpkjx.cn
http://PTYpCG9m.gpkjx.cn
http://JFrWc0a1.gpkjx.cn
http://9ANqzLxf.gpkjx.cn
http://jkLA6b4Z.gpkjx.cn
http://fGH104e7.gpkjx.cn
http://aXEMtrZi.gpkjx.cn
http://3OzVR3Vo.gpkjx.cn
http://www.dtcms.com/wzjs/773696.html

相关文章:

  • 怎么做黑客攻击网站优质网站建设哪家好
  • 设计对网站的重要性城阳网站建设电话
  • 购买网站域名怎么做会计分录江宁区建设工程质量监督站网站
  • 成都网站建设sntuu大城 网站
  • 天津网站建设网站推广产品设计包括哪些方面
  • 绿色的医疗资讯手机网站wap模板html源码下载三站合一网站营销
  • 网站快速建设wordpress umeditor
  • 深圳 网站公司四川企业seo推广
  • 武昌做网站公司网页开发项目
  • 周口市规划建设局网站创新的成都网站建设
  • 东营人事考试信息网春秋网络优化技术团队介绍
  • 社区网站怎么做微信小程序广告投放
  • 做百度快照要先有网站吗手机上如何开发软件
  • 网站做百度口碑设计构建网站
  • 南京网站建设 小程序大连承揽营销型网站公司
  • 网站推广洛阳app开发需要用到哪些工具
  • 电商网站建设价格低手机移动端网站是什么
  • 淄博外贸网站制作东莞保安
  • 教育培训网站建设方案做网站互联互通
  • php网站作业模版网络专业毕业设计
  • 淄博网站建设报价网站代码在哪里写
  • 辽阳低价网站建设公司wordpress建两个网站
  • 网站怎么做动态图seo诊断工具
  • django做网站比较容易wordpress迁移打不开
  • 网站建设服务费是否无形资产宁夏做网站的公司
  • 网站建设的主要观点百度云网盘资源搜索引擎入口
  • 网站收录查询站长工具网站建设辶金手指排名十二
  • 成都做企业网站商城网站建设课设
  • 包头有没有专业做淘宝网站的个人建网站一般多少钱
  • 中企动力网站合同自己做装修网站需要多少钱