k8s的储存方式简述

pod中的存储卷类型:
1.emptyDir:用于临时储存空间,无持久性储存功能,生命周期同pod容器,pod删除后,数据不再存在。
2.gitRepo:pod创建时,自动将云端仓库中的文件克隆到pod挂载的目录中,pod运行后,不会自主同步云端仓库的内容,有需要的话可以通过pod容器添加sidecar,来辅助完成此任务。
3.hostPath:在pods所在节点创建存储卷挂载到pod指定挂载目录中,但是如果节点宕机,数据也可能丢失。
4.nfs:在各个节点共享存储卷到指定pod挂载点
   (1)在其中一个节点上下载nfs:yum -y install nfs-utils
   (2)在这个节点上创建共享目录:mkdir /data/volumes
   (3)编辑vi /etc/exports,把目录共享出去。编辑内容:共享的目录地址   共享给哪个主机或网段(rw,no_root_squash)(读写,压缩权限)
   (4)启动服务 systemctl start nfs nfs监听2049端口
   (5)在其他节点上挂载共享的目录:mount -t 文件类型(nfs) 共享目录url 挂载点目录  然后df -hT查看
   (6)在编辑资源清单时在spec.template.spec.下添加volumes字段。

具体资源清单:

 1 apiVersion: extensions/v1beta1
 2 kind: Deployment
 3 metadata:
 4   name: myapp-nfs
 5   namespace: default
 6 spec:
 7   selector:
 8     matchLabels:
 9       app: pod
10       san: tom
11   replicas: 2
12   template:
13     metadata:
14       name: pod-nfs
15       namespace: default
16       labels:
17         app: pod
18         san: tom
19     spec:
20       containers:
21       - name: myapp-nfs
22         image: ikubernetes/myapp:v1
23         volumeMounts:
24         - name: html
25           mountPath: /usr/share/nginx/html/
26       volumes:
27       - name: html
28         nfs:
29           path: /data/volumes
30           server: k8s-node2

 


    (7)应用资源清单:kubectl apply -f 资源清单名
    (8)在共享目录/data/volumes/下创建测试页面:echo "<h1>NFS smbands</h1>" >/data/volumes/index.html
    (9)查看pod kubectl get pods -owide
    (10)测试:curl podip
  

posted @ 2019-05-10 22:13  zh_Revival  阅读(1165)  评论(0编辑  收藏  举报