【问题标题】:How to execute command from one pod inside another pod using kubectl exec which are inside a same k8s cluster如何使用位于同一个 k8s 集群内的 kubectl exec 从另一个 pod 中的一个 pod 执行命令
【发布时间】:2019-06-09 07:52:06
【问题描述】:

我在一个集群中有两个 pod。让我们称它们为 A 和 B。我已经在 pod A 中安装了 kubectl,我正在尝试使用 kubectl exec -it podB -- bash 从 pod A 在 pod B 中运行命令。 我收到以下错误

Error from server (Forbidden): pods "B" is forbidden: User "system:serviceaccount:default:default" cannot create pods/exec in the namespace "default"

我创建了以下 Role 和 RoleBinding 以获得访问权限。 角色yaml

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: api-role
  namespace: default
  labels:
    app: tools-rbac
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]

角色绑定 yaml

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: global-rolebinding
  namespace: default
  labels:
    app: tools-rbac
subjects:
- kind: Group
  name: system:serviceaccounts
  apiGroup: rbac.authorization.k8s.io

非常感谢任何帮助。谢谢

【问题讨论】:

    标签: kubernetes kubectl rbac


    【解决方案1】:

    除了pods 之外,您还需要授予对pods/exec 子资源的访问权限,就像您在那里一样。话虽如此,这是一件非常奇怪的事情,并且可能很难考虑这是否是最佳解决方案。

    【讨论】:

    • 太棒了!这解决了我的问题。我会重新考虑我的方法。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 2019-12-16
    • 2020-03-20
    • 2020-05-04
    • 2019-04-24
    • 2023-04-03
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多