40、k8s-数据存储-基本存储-HostPath(节点主机存储)

HostPath即使将node主机中的一个实际的目录挂载到pod中、以供容器使用、这样的设计就可以保证pod销毁了、但是数据依然可以存在Node主机上

案例:

1、创建yaml文件:
----------------------------------------------------------
apiVersion: v1
kind: Pod
metadata:
  name: volume-hostpath
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
    ports:
    - containerPort: 80
    volumeMounts:
    - name: logs-volume
      mountPath: /var/log/nginx        #将容器中的nginx目录下的文件挂载到node-1主机的/root/logs 目录下

  - name: busybox                                #辅助容器,用于查看 nginx 访问日志。
    image: busybox:1.30
    command: ["/bin/sh","-c","tail -f /logs/access.log"]    #将主机的 /root/logs 目录下的 access.log 文件的内容输出到终端。
    volumeMounts:
    - name: logs-volume
      mountPath: /logs

  volumes:
  - name: logs-volume            #卷名
    hostPath:                    #卷类型
      path: /root/logs
      type: DirectoryOrCreate   #目录存在就使用、不存在就创建
      
 #这里volumes 的意思是:将主机上的/root/logs 目录挂载到 上面两个容器(以logs-volume命名的卷)的/var/log/nginx 和 /logs 上
 #所以主机上的/root/logs/下会出现两个容器的目录文件
------------------------------------------------------------------------------------------------------------------------------
2、创建pod:kubectl create -f volume-hostpath.yaml
3、查看pod信息:kubectl get pods volume-hostpath -ndev -owide
------------------------------------------------------------------------------------
NAME              READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
volume-hostpath   2/2     Running   0          70s   10.244.1.96   node-1   <none>           <none>

#这里显示pod运行在node-1节点上、所以juan挂载在node-1上的/root/logs下
-------------------------------------------------------------------------------------------------------------
4、去到node-1节点的主机上找到、root/logs/目录下:
----------------------------------------------------
access.log  error.log
#有两个文件
--------------------------------------------------
5、实时查看日志:tail -f access.log

6、master主机上访问nginx:curl 10.244.1.96:80

7、测式将pod删除、然后查看node-1节点主机上是否还存在日志文件:
    ·master节点主机上输入:kubectl delete -f volume-hostpath.yaml
    ·node-1节点上查看logs目录是否还存在日志文件:

 

posted @ 2024-07-01 22:15  little小新  阅读(15)  评论(0编辑  收藏  举报