【发布时间】:2018-07-30 17:31:35
【问题描述】:
是否可以在 kubernetes 的 pod 中在主机上运行命令。
例如,我有一个运行 python 图像的 pod,它计算操作系统的大小。但它使用的命令在 pod 内部运行,而不是在主机中运行。是否可以从 pod 在主机上运行命令。
【问题讨论】:
标签: kubernetes
是否可以在 kubernetes 的 pod 中在主机上运行命令。
例如,我有一个运行 python 图像的 pod,它计算操作系统的大小。但它使用的命令在 pod 内部运行,而不是在主机中运行。是否可以从 pod 在主机上运行命令。
【问题讨论】:
标签: kubernetes
实际上,在 pod 内运行的命令是在主机上运行的。它是一个容器(Docker),而不是虚拟机。 这意味着当您在 pod 中执行某些操作(例如检索 RAM 的大小)时,它通常会返回整个机器的 RAM。 如果你想得到“操作系统的大小”并且你的意思是硬盘驱动器,你需要安装硬盘驱动器来计算它。
如果你的实际问题是你想做一些普通容器不允许做的事情,你可以在 privileged 模式下运行一个 pod 或配置你真正需要的任何东西。 您需要像这样将 security context 添加到您的 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
来源:
【讨论】:
ifconfig,它会显示 Pod 网络而不是主机。