kubernetes:如何编写 pod yaml 文件以将卷从主机映射到容器

Posted

技术标签:

【中文标题】kubernetes:如何编写 pod yaml 文件以将卷从主机映射到容器【英文标题】:kubernetes: how to write pod yaml file for mapping volumn from host to container 【发布时间】:2018-11-28 13:08:44 【问题描述】:

我有一个运行 docker 的命令,

docker run --name pre-core -itdp 8086:80 -v /opt/docker/datalook-pre-core:/usr/application app

在上面的命令中,/opt/docker/datalook-pre-core 是主机目录,/usr/application 是容器目录。目的是容器目录映射到主机目录。因此,当容器崩溃时,该目录将用作存储并保存其上的数据。

当我打算使用kubernetes为这个容器创建一个pod时,如何编写pod.yaml文件?

我猜是这样的:

apiVersion: v1
kind: Pod
metadata:
  name: app-ykt
  labels:
    app: app-ykt
    purpose: ykt_production
spec:
  containers:
  - name: app-ykt
    image: app
    imagePullPolicy: IfNotPresent
    ports:
      - containerPort: 80
    volumnMounts:
      - name: volumn-app-ykt
        mountPath: /usr/application
  volumns:
      - name: volumn-app-ykt
      ????

我不知道在我的案例中我要写的 yaml 中的确切属性是什么?

【问题讨论】:

【参考方案1】:

这将是一个hostPath 卷:https://kubernetes.io/docs/concepts/storage/volumes/

  volumes:
  - name: volumn-app-ykt
    hostPath:
      # directory location on host
      path: /opt/docker/datalook-pre-core
      # this field is optional
      type: Directory

但是请记住,虽然容器崩溃不会移动任何东西,但其他事件可能会导致 pod 移动到不同的主机,因此您需要准备好处理冷缓存和清理孤立缓存。

【讨论】:

以上是关于kubernetes:如何编写 pod yaml 文件以将卷从主机映射到容器的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动重启pod而不改变kubernetes(k8s)中的部署yaml?

k8s核心资源之Pod概念及入门使用讲解&&资源清单yaml文件内容讲解与编写

Kubernetes之Pod环境变量配置

Kubernetes(k8s)之编写资源清单

Kubernetes_16_静态Pod网关apiserver的audit审计日志

Kubernetes组件_APIServer_静态Pod网关apiserver的audit审计日志