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

如何在kubernetes中从pod向主机运行命令,kubernetes,Kubernetes,是否可以从kubernetes中的pod中在主机上运行命令 例如,我有一个运行python映像的pod,它计算操作系统的大小。但是它使用的命令在pod内部运行,而不是在主机中运行。是否可以从pod在主机上运行命令。实际上,在pod内运行的命令是在主机上运行的。它是一个容器(Docker),而不是一个虚拟机。 这意味着,当您在pod中执行某些操作时,例如检索RAM的大小,它通常会返回整个机器的RAM。 如果你想知道“操作系统的大小”,你指的是硬盘,你需要安装硬盘来计算它的数量 如果您的实际问题是您

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


例如,我有一个运行python映像的pod,它计算操作系统的大小。但是它使用的命令在pod内部运行,而不是在主机中运行。是否可以从pod在主机上运行命令。

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

如果您的实际问题是您想做一些普通容器不允许做的事情,那么您可以在特权模式下运行pod,或者配置您真正需要的任何东西。 您需要向pod添加一个安全上下文,如下所示(摘自文档):

资料来源:


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

如果您的实际问题是您想做一些普通容器不允许做的事情,那么您可以在特权模式下运行pod,或者配置您真正需要的任何东西。 您需要向pod添加一个安全上下文,如下所示(摘自文档):

资料来源:


但是如果我运行
ifconfig
,它会显示pods网络而不是主机。Kubernetes和Docker正在从您那里提取一些东西。网络是其中之一,文件系统是另一个。您需要主机的网络接口,或者您只是想弄清楚Kubernetes是如何工作的,这有什么特殊的用例吗?:-)除非您别无选择,否则我不建议POD访问主机(无论是文件系统还是网络)。但是为了让ifconfig工作,您可能需要在pod中将hostNetwork设置为true。但是如果我运行
ifconfig
,它会显示pods network而不是主机。Kubernetes和Docker正在从您那里提取一些东西。网络是其中之一,文件系统是另一个。您需要主机的网络接口,或者您只是想弄清楚Kubernetes是如何工作的,这有什么特殊的用例吗?:-)除非您别无选择,否则我不建议POD访问主机(无论是文件系统还是网络)。但是为了让ifconfig工作,您可能需要在pod中将hostNetwork设置为true。
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