当前位置: 首页 > 知识库问答 >
问题:

如何使用hostpath将单个文件映射到kubernetes pod?

柴衡
2023-03-14

我有一个自己的nginx配置/home/ubuntu/workspace/web.conf由脚本生成。除了default.conf之外,我更喜欢将其放在/etc/nginx/conf.d

apiVersion: v1
kind: Pod
metadata:
    name: nginx
spec:
    volumes:
      - name: webconf
        hostPath:
          path: /home/ubuntu/workspace/web.conf
    containers:
      - image:  nginx
        name: nginx
        ports:
          - containerPort: 18001
            protocol: TCP                               
        volumeMounts:
          - mountPath: /etc/nginx/conf.d/web.conf
            name: web
$ kubectl create -f nginx.yaml
pod "nginx" created
$ kubectl exec -it nginx -- bash
root@nginx:/app# ls -al /etc/nginx/conf.d/
total 12
drwxr-xr-x 1 root root 4096 Aug  3 12:27 .
drwxr-xr-x 1 root root 4096 Aug  3 11:46 ..
-rw-r--r-- 2 root root 1093 Jul 11 13:06 default.conf
drwxr-xr-x 2 root root    0 Aug  3 11:46 web.conf

顺便说一句:我在Ubuntu 16.04 LTSKVM上使用minikube0.21.0

共有1个答案

潘兴朝
2023-03-14

尝试在volumemounts上使用subpath键,如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: singlefile
spec:
  containers:
  - image: ubuntu
    name: singlefiletest
    command:
      - /bin/bash
      - -c
      - ls -la /singlefile/ && cat /singlefile/hosts
    volumeMounts:
    - mountPath: /singlefile/hosts
      name: etc
      subPath: hosts
  volumes:
  - name: etc
    hostPath:
      path: /etc

示例:

$ kubectl apply -f singlefile.yaml
pod "singlefile" created
$ kubectl logs singlefile
total 24
drwxr-xr-x. 2 root root 4096 Aug  3 12:50 .
drwxr-xr-x. 1 root root 4096 Aug  3 12:50 ..
-rw-r--r--. 1 root root 1213 Apr 26 21:25 hosts
# /etc/hosts: Local Host Database
#
# This file describes a number of aliases-to-address mappings for the for 
# local hosts that share this file.
...
 类似资料:
  • 我有4张桌子: 库存(库存ID、可用数量) 一个客户可以有多个订单,而一个订单由多个orderDetails项目组成。我正在尝试将库存项目存储在由库存项目和数量整数组成的映射中。 当我尝试以这种方式持久化它时,第一个库存项目将以1的orderID添加到Order详细信息表中。但是下一个是使用2的orderID插入的(不存在)。 有什么帮助吗?

  • 问题内容: 我们有一张有很多列的大桌子。移至MySQL Cluster后,由于以下原因无法创建表: 错误1118(42000):行大小太大。不包括BLOB在内的已使用表类型的最大行大小为14000。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB 举个例子: 这是用于存储配置参数的表。我在想,我们可以将一些列合并为一个列,并将其存储为JSON对象,然后将其转换为Java对象。 例

  • 我有两个不同标题的csv。 假设CSV1有一、二、三、四个标题,我想创建一个有五、六、七、八个标题的csv。 我很难编写代码来打开第一个CSV,然后创建第二个CSV。 这是我目前掌握的代码。

  • 我正试图在OpenShift上配置Nginx容器。我的最终目标是覆盖Nginx配置文件。我知道使用配置映射是可能的。因为修改Nginx配置目录的任何失败都会使容器崩溃,所以暂时我的目标是在/opt/app-root/src目录中创建一个index.html文件。 我面临两个问题取决于配置 配置映射覆盖整个/opt/app-root/src目录 配置映射在索引文件中创建index.html目录 配置

  • 最近我看到了带有扩展随一些JavaScript库(如Angular)一起提供,这在我脑海中引起了一些问题: 是干什么用的?为什么Angular的人关心传递一个文件? 我如何(作为一个JavaScript开发人员)使用文件? 我应该关心为我的JavaScript应用程序创建文件吗? 它是如何被创建的?我看了一下,里面充满了奇怪格式的字符串,所以我假设它不是手动创建的。

  • 问题内容: 如何将POJO映射到几个JSON表示形式? 我正在使用杰克逊。 我想要下面的代码 杰克逊该怎么做?或还有哪些其他图书馆可以做到这一点? 问题答案: 您使用JSON视图 请注意,这些是 包容性 而非排他性;您创建一个包含所需字段的视图。