k8s存储卷与数据持久化(6)
时间:2020-09-23 15:52 来源:未知 作者:liangzh 点击:次
filebeat的应用架构中,这些日志信息会发往 Elasticsearch ,并通过 Kibana 进行展示
[root@zfb-jyhpt-bgcsjyh1 k8s]# kubectl exec -it vol-hostpath-pod sh
#进入容器中创建一个测试文件
/ # echo "pod hostpath file test!" >/var/log/test.txt
#在node节点的主机上也能看到该文件,说明目录挂载成功。
[root@zfb-jyhpt-bgsygc1 ~]# cat /var/log/test.txt
pod hostpath file test!
另外,使用 hostPath 存储卷时需要注意到,不同节点上的文件或许并不完全相同,于
是,那些要求事先必须存在的文件或目录的满足状态也可能会有所不同;另外,基于资源可
用状态的调度器调度 Pod 时, hostPath 资源的可用性状态不会被考虑在内;再者,在节点中
创建的文件或目录默认仅有 root 可写,若期望容器内的进程拥有写权限,则要么将它运行
为特权容器,要么修改节点上目录路径的权限
那些并非执行系统级管理任务的且不受控于 Daemonset 控制器的无状态应用在 Pod
源被重新调度至其他节点运行时,此前创建的文件或目录大多都不会存在 因此, hostPath
存储卷虽然能持久保存数据,但对于被调度器按需调度的应用来说并不适用,这时需要用到
的是独立于集群节点的持久性存储卷,即网络存储卷
5、网络存储卷
如前所述, Kubernetes 拥有众多类型的用于适配专用存储系统的网络存储卷 这类存储
卷包括传统的 NAS SAN 设备(如 NFS iSCSI、 fc )、分布式存储(如 GlusterFS 、RBD)
云端存储(如 gcePersistentDisk azureDisk cinder awsElasticBlockStore )以及建构在各类存
储系统之上的抽象管理层(如 flocker portworxVolume vsphereVolume )等
1>NFS 存储卷
NFS 即网络文件系统( Network File System ),它是一种分布式文件系统协议,最初是
Sun MicroSystems 公司开发的类 Unix 操作系统之上的一款经典的网络存储方案,其功能
旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件 作为一种由内核
原生支持的网络文件系统,具有 Linux 系统使用经验的读者大多数都应该对 NFS 有一定的
使用经验
Kubernetes NFS 存储卷用于将某事先存在的 NFS 服务器上导出( export )的存储空间
挂载到 od 中以供容器使用 emptyDir 不同的是, NFS 存储卷在 Pod 对象终止后仅是被
卸载而非删除 另外, NFS 是文件系统级共享服务,它支持同时存在的多路挂载请求
NFS 存储卷时,常用到以下字段
server <string> : NFS 服务器的 IP 地址或主机名,必选字段
path <string> : NFS 服务器导出(共享)的文件系统路径,必选字段
readOnly <boolean 是否以只读方式挂载,默认为 false
下面是简单示例:
[root@zfb-jyhpt-bgcsjyh1 k8s]# vim vol-nfs-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: vol-nfs-pod
spec:
volumes:
- name: html
emptyDir: {}
containers:
- name: nginx
image: nginx:1.17.10
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
volumes:
- name: html
nfs:
server: 172.19.33.5
path: /data/UCMSServer/webapps
readOnly: false
注意:这里需要部署一个nfs服务,可以是容器内部的nfs,也可以是外部的nfs服务。
[root@zfb-jyhpt-bgcsjyh1 k8s]# kubectl get pod -o wide vol-nfs-pod
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
vol-nfs-pod 1/1 Running 0 2m48s 10.244.4.28 172.19.33.2 <none> <none> (责任编辑:liangzh) |