K8s Voume emptyDir

empryDir (本地数据卷) Volume是在Pod分配到Node时创建的。它的初始内容为空,并且无须指定宿主机上对应的目录文件,因这是Kubernetes自动分配的一个目录,当Pod从Node上移除时,empryDir中的数据也会被永久删除

empryDir用途如下:

1.临时空间,例如某些应用程序运行时所需的临时目录,且无需保留 2.长时间任务的中间过程heckPoint的临时保存目录 3.一个容器需要从另一个容器中获取数据的目录(多容器共享目录)

yaml配置如下:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: gcr.io/google_containers/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

提示: 目前用户无法控制emptyDir使用的介质种类。如果kubelet的配置是使用的硬盘,那么所有empryDir都将创建在该硬盘上。Pod可以在将来设置empryDir是位于硬盘、还是基于内存的tmpfs上

例子:Pod内包含两个容器:tomcat和busybox,在Pod级别设置Volume "app-logs",用于tomcat向其中写日志文件,busybox读日志文件

[root@master test]# cat abcdocker_volume.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: abcdocker-pod
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: abcdocker-tomcat-dockerr
        image: daocloud.io/library/tomcat:8.5.21-jre8-alpine
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        volumeMounts:
        - name: app-logs
          mountPath: /usr/local/tomcat/logs
      - name: abcdocker-busybox-docker
        image: busybox
        imagePullPolicy: IfNotPresent
        command:
          - "sh"
          - "-c"
          - "tail -f /logs/catalina*.log"
        ports:
        - containerPort: 7777
        volumeMounts:
        - name: app-logs
          mountPath: /logs
      volumes:
      - name: app-logs
        emptyDir: {}

配置解释 这里设置的Volume名为app-logs,类型为emptyDir (也可以设置其他类型 K8s企业实践使用storageclass实现动态存储)。挂载到tomcat容器内的/usr/local/tomcat/logs目录,同时挂载到busybox容器内的/logs目录。tomcat容器在启动后会向/usr/local/tomcat/logs目录中写文件,busybox容器就可以读取其中的文件了。

busybox容器启动命令为tailf -f /logs/catalina*.log 我们可以通过kubectl logs命令查看busybox容器的内容 -w1079

Copyright © i4t.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-04-26 21:31:27

results matching ""

    No results matching ""