如何在 kubernetes 中从 pod 向主机运行命令

S A*_*rew 3 kubernetes

是否可以从 kubernetes 中的 pod 内的主机上运行命令。

例如,我有一个运行 python 图像的 pod,它会计算 os 的大小。但它使用的命令在 Pod 内部运行,而不是在主机中运行。是否可以从 pod 在主机上运行该命令。

Pam*_*mpy 7

实际上,在 pod 内运行的命令是在主机上运行的。它是一个容器(Docker),而不是虚拟机。这意味着当您在 pod 中执行某些操作(例如检索 RAM 大小)时,它通常会返回整个机器的 RAM。如果您想获取“操作系统的大小”并且您指的是带有它的硬盘驱动器,则需要安装硬盘驱动器来对其进行计数。

如果您的实际问题是您想要做一些普通容器不允许做的事情,您可以在特权模式下运行 pod 或配置您确切需要的任何内容。您需要像这样向 pod 添加安全上下文(摘自文档):

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000
    fsGroup: 2000
  volumes:
  - name: sec-ctx-vol
    emptyDir: {}
  containers:
  - name: sec-ctx-demo
    image: gcr.io/google-samples/node-hello:1.0
    volumeMounts:
    - name: sec-ctx-vol
      mountPath: /data/demo
    securityContext:
      privileged: true
Run Code Online (Sandbox Code Playgroud)

资料来源:

  • 但如果我运行“ifconfig”,它会显示 pod 网络而不是主机。 (3认同)
  • 我不建议 pod 访问主机(无论是文件系统还是网络),除非您别无选择。但为了让 ifconfig 正常工作,您可能需要在 pod 中将 hostNetwork 设置为 true。 (3认同)