首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用pod获取kubernetes节点上的设备挂载信息

使用pod获取kubernetes节点上的设备挂载信息
EN

Stack Overflow用户
提问于 2019-12-31 13:56:03
回答 1查看 1K关注 0票数 2

队员们,

我在下面的pod.yaml中输出了pod的挂载信息,但现在我想让它显示节点的挂载信息,或者也显示该信息。有什么提示吗?我怎样才能赋予pod权限,让它在运行pod的k8s主机上运行相同的命令,并在pod日志的输出中列出该命令?

代码语言:javascript
运行
复制
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["/bin/bash", "-c"]
    args:
      - |
        echo $HOSTNAME && mount | grep -Ec '/dev/sd.*\<csi' | awk '$0 <= 64  { print "Mounts are less than 64, that is found", $0 ;} $0 > 64  { print "Mounts are more than 64", $0 ;}'
  restartPolicy: OnFailure

kubectl日志pod/command-demo

代码语言:javascript
运行
复制
command-demo
Mounts are less than 64, that is found 0

预期输出:

代码语言:javascript
运行
复制
k8s_node1 << this is hostname of the k8s node on which above pod us running
Mounts are more than 64, that is found 65

我需要在pod.yaml中做什么更改才能让它在节点上而不是pod上运行外壳命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-31 15:32:23

您不能访问docker容器内的主机文件系统,除非您将主机文件系统的一部分挂载为卷。您可以尝试将整个主机文件系统挂载到pod中,如下所示。您可能需要为pod设置特权securityContext,具体取决于您要执行的操作。

代码语言:javascript
运行
复制
apiVersion: v1
kind: Pod
metadata:
 name: dummy
spec:
  containers:
    - name: busybox
      image: busybox
      command: ["/bin/sh"]
      args: ["-c", "sleep 3600"]
      volumeMounts:
        - name: host
          mountPath: /host
  volumes:
    - name: host
      hostPath:
        path: /
        type: Directory

另一种可能更好的方法是从pod通过SSH连接到主机,然后运行该命令。您可以使用下行接口- https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/获取宿主机IP

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59540144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档