gpt4 book ai didi

Kubernetes 从节点本身耗尽节点的权限

转载 作者:行者123 更新时间:2023-12-02 11:32:08 25 4
gpt4 key购买 nike

我想从节点本身排出一个节点。因此,我创建了一个服务帐户并将 token 添加到节点上的 .kube/config 文件中。我还创建了角色绑定(bind)。
但我无法弄清楚正确的权限。
到目前为止,我尝试了这个,但没有奏效。

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: admin-clusterrole
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["drain"]

什么是正确的权限?
谢谢 :)
编辑1:
角色绑定(bind):
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: node-drainer-clusterrole-bind
namespace: default
subjects:
- kind: ServiceAccount
name: node-drainer-sa
namespace: default
roleRef:
kind: ClusterRole
name: system:node-drainer
apiGroup: rbac.authorization.k8s.io
服务帐户:
apiVersion: v1
kind: ServiceAccount
metadata:
name: node-drainer-sa

最佳答案

首先,您不应该使用名称 admin-clusterrole对于此 ClusterRole,因为您可能会通过覆盖默认绑定(bind)而将自己锁定在自己的集群之外。
这是一个应该能够耗尽节点的 ClusterRole。让我知道它是否不适合你。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:node-drainer
rules:
# Needed to evict pods
- apiGroups: [""]
resources: ["pods/eviction"]
verbs: ["create"]
# Needed to list pods by Node
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
# Needed to cordon Nodes
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "patch"]
# Needed to determine Pod owners
- apiGroups: ["apps"]
resources: ["statefulsets"]
verbs: ["get", "list"]
# Needed to determine Pod owners
- apiGroups: ["extensions"]
resources: ["daemonsets", "replicasets"]
verbs: ["get", "list"]
您可以使用详细级别来确定 kubectl 命令使用哪些 API。
例如:
kubectl drain node my-node -v=10
从这里您可以检查 kubectl 发出的 HTTP 请求。

关于Kubernetes 从节点本身耗尽节点的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63550416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com