K8S实战
01、K8s实战:Windows10安装Docker,配置阿里云加速器
02、K8s实战:基础知识之简介
03、K8s实战:基础知识之组件
04、K8s实战:Centos7.6yum安装Docker,配置阿里云加速器
05、K8s实战:Centos7.6安装dockercompose
06、K8s实战:Centos7.6使用Ansible安装K8S(测试单节点)
07、K8s实战:Dockercompose安装中文版GitLab,配置SSH免密登录
08、K8s实战:Centos7.6安装私服Harbor
09、K8s实战:SpringBoot使用jib打包Docker镜像至私服
10、K8s实战:dockercompose之网络设置
11、K8s实战:使用开源项目io.fabric8之docker
12、K8s实战:二进制方式搭建K8S集群(环境准备)
13、K8s实战:二进制方式搭建K8S集群(完结)
14、K8s实战:K8S管理平台Rancher安装及集群导入
15、K8s实战:陈述式管理之kubectl常用命令
16、K8s实战:声明式管理示例之K8S部署Nginx及修改删除
17、K8s实战:K8S存储Volume之ConfigMap
18、K8s实战:K8S存储Volume之Secret
19、K8s实战:K8S存储之emptyDir+hostPath
20、K8s实战:K8S存储之NFSPVPVC
21、K8s实战:K8S控制器之ReplicaSet
22、K8s实战:K8S控制器之Deployment
23、K8s实战:K8S控制器之DaemonSet
24、K8s实战:K8S控制器之JobCronJob
25、K8s实战:K8S之Service
26、K8s实战:K8S之Ingress
27、K8s实战:K8S之Schedule
28、K8s实战:K8S之Helm安装与配置
29、K8s实战:K8S之部署微服务项目实战
本文档使用 MrDoc 发布
-
+
首页
19、K8s实战:K8S存储之emptyDir+hostPath
### **emptyDir** 一个emptyDir 第一次创建是在一个pod被指定到具体node的时候,并且会一直存在在pod的生命周期当中,正如它的名字一样,它初始化是一个空的目录,pod中的容器都可以读写这个目录,这个目录可以被挂在到各个容器相同或者不相同的的路径下。当一个pod因为任何原因被移除的时候,这些数据会被永久删除。注意:一个容器崩溃了不会导致数据的丢失,因为容器的崩溃并不移除pod. emptyDir 磁盘的作用: - 普通空间,基于磁盘的数据存储 - 作为从崩溃中恢复的备份点 - 存储那些那些需要长久保存的数据,例web服务中的数据 - 容器之间的数据共享 默认的,emptyDir 磁盘会存储在主机所使用的媒介上,可能是SSD,或者网络硬盘,这主要取决于你的环境。当然,我们也可以将emptyDir.medium的值设置为Memory来告诉Kubernetes 来挂在一个基于内存的目录tmpfs,因为tmpfs速度会比硬盘块度了,但是,当主机重启的时候所有的数据都会丢失 ### **hostPath** 一个hostPath类型的磁盘就是挂在了主机的一个文件或者目录。 例如,如下情况我们可能需要用到hostPath - 某些应用需要用到docker的内部文件,这个时候只需要挂在本机的/var/lib/docker作为hostPath - 在容器中运行cAdvisor,这个时候挂在/dev/cgroups 当我们使用hostPath的时候要注意如下内容从模版文件中创建的pod可能会因为主机上文件夹目录的不同而导致一些问题Kubernetes 规划一些资源相关的维护的时候,它不能根据此种类型的资源进行判断 hostPath的type类型 | 值 | 说明 | | --- | --- | | | 空字符串(默认),向后兼容 | | Directory | 给定的目录路径必须存在 | | DirectoryOrCreate | 如果给定路径不存在,将根据需要在那里创建一个空目录,权限设置为755,与Kubelet具有相同的组和所有权。 | | FileOrCreate | 如果给定路径不存在,将根据需要在那里创建一个空文件,权限设置为644,与Kubelet具有相同的组和所有权。 | | File | 给定路径上必须存在对应文件 | | Socket | 给定路径上必须存在一个UNIX socket | | CharDevice | 给定路径上必须存在字符设备 | | BlockDevice | 给定路径上必须存在块设备 | **案例** 在主机创建一个日志存放目录,容器将nginx日志写入此目录 1、 创建; ```python # work节点创建日志目录 mkdir -p /log/nginx # vim nginx-pod.yaml # 内容 apiVersion: v1 kind: Pod metadata: labels: app: nginx name: nginx spec: restartPolicy: Never containers: - name: nginx-001 image: daocloud.io/library/nginx:1.7.11 imagePullPolicy: IfNotPresent volumeMounts: - name: log-v mountPath: /var/log/nginx volumes: - name: log-v hostPath: path: /log/nginx type: Directory kubectl apply -f nginx-pod.yaml kubectl get pod nginx -o wid # 进入节点查看,日志已存储到节点目录 cd /log/nginx ll # 删除pod,日志依然存在,类似于docker的目录隐射 ```
李智
2025年3月17日 13:28
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码