以其他用户身份在 Kubernetes pod 中执行命令

Execute command into Kubernetes pod as other user

USER something 用于 Docker 文件时,

Docker 允许使用 docker exec -u 以其他用户身份执行命令。 当您 运行 您 CMD 作为 Docker 文件中的系统用户时,进入超级用户模式调试问题很有帮助。

如何以其他用户身份在 Kubernetes 上执行命令?

我的 kubectl 版本输出是

Client Version: version.Info{Major:"1", Minor:"0", GitVersion:"v1.0.6", GitCommit:"388061f00f0d9e4d641f9ed4971c775e1654579d", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"0", GitVersion:"v1.0.6", GitCommit:"388061f00f0d9e4d641f9ed4971c775e1654579d", GitTreeState:"clean"}

您可以检查规范模式以查看可以在 pod 或复制控制器或其他任何内容中添加的内容:https://cloud.google.com/container-engine/docs/spec-schema

你有你想要的 runAsUser:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    securityContext:
      runAsUser: 41

目前不支持此功能,但有一个开放的功能请求:https://github.com/kubernetes/kubernetes/issues/30656