gpt4 book ai didi

Kubernetes ServiceAccount 资源和动词列表

转载 作者:行者123 更新时间:2023-12-01 03:05:20 25 4
gpt4 key购买 nike

定义 ServiceAccount 时,您告诉 Kubernetes 您要授予访问权限的 apiGroups、资源和动词。:

apiVersion: v1
kind: ServiceAccount
...
kind: Role
rules:
- apiGroups: [""]
resources: ["pods", "pods/exec", "persistentvolumeclaims", "services"]
verbs: ["get", "watch", "list", "create", "update", "patch", "delete", "deletecollection"]

在哪里可以找到完整的选项列表?

运行 kubectl api-resources -o wide给出了很多,但不返回像 pods/exec 这样的子资源或 pods/log .

最佳答案

只需执行:

kubectl api-resources --verbs=list --namespaced -o name \
| xargs -n 1 kubectl get --show-kind --ignore-not-found -l <label>=<value> -n <namespace>

xargs UNIX 中的 command 是一个命令行实用程序,用于从标准输入构建执行管道。虽然像 grep 这样的工具可以接受标准输入作为参数,但许多其他工具不能。使用 xargs 允许像 echo 和 rm 和 mkdir 这样的工具接受标准输入作为参数。

要获取日志,请使用 kubectl logs 命令,如下所示:
kubectl logs your-pod-name -n namespace-name

您需要定义的子资源和动词 RBAC角色没有记录在静态列表中的任何地方。它们在发现文档中可用,即通过 API,例如 /api/apps/v1 .

以下 bash 脚本将按以下格式列出所有资源、子资源和动词:
api_version resource: [verb]

哪里 api-versioncore为核心资源,应替换为 "" (空引号字符串)在您的角色定义中。

例如, core pods/status: get patch update .

该脚本需要 [jq][1]。
#!/bin/bash
SERVER="localhost:8080"

APIS=$(curl -s $SERVER/apis | jq -r '[.groups | .[].name] | join(" ")')

# do core resources first, which are at a separate api location
api="core"
curl -s $SERVER/api/v1 | jq -r --arg api "$api" '.resources | .[] | "\($api) \(.name): \(.verbs | join(" "))"'

# now do non-core resources
for api in $APIS; do
version=$(curl -s $SERVER/apis/$api | jq -r '.preferredVersion.version')
curl -s $SERVER/apis/$api/$version | jq -r --arg api "$api" '.resources | .[]? | "\($api) \(.name): \(.verbs | join(" "))"'
done

请注意,在没有通过 api 列出动词的情况下,输出将仅显示 api 版本和资源,例如
core pods/exec:

不幸的是,在以下资源的特定实例中,没有通过 api 显示动词。
nodes/proxy
pods/attach
pods/exec
pods/portforward
pods/proxy
services/proxy

这些资源支持的动词如下:
nodes/proxy: create delete get patch update
pods/attach: create get
pods/exec: create get
pods/portforward: create get
pods/proxy: create delete get patch update
services/proxy: create delete get patch update

关于日志的文档: kubernetes-logging .

您可以在此处找到更多信息: api-resources .

有用的博客: kubectl-cheat-sheet .

关于Kubernetes ServiceAccount 资源和动词列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58205977/

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