You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用kubectl create role创建不含.apps后缀的deployments资源Role

解决kubectl create role创建不带.apps后缀的deployments资源权限问题

要通过kubectl create role命令创建资源为deployments(不带.apps后缀,对应apiGroups: "")的Role,你需要显式指定API组为空字符串,命令如下:

kubectl create role <你的角色名> -n test --verb=get,list --resource=deployments --api-group=""

为什么需要这样做?

Kubernetes中deployments默认属于apps API组,kubectl会自动为这类资源补全.apps后缀。如果要强制将资源关联到核心API组(即apiGroups: ""),必须通过--api-group=""参数明确指定,否则kubectl会自动将deployments解析为deployments.apps。

注意事项

真实Kubernetes集群的核心API组(apiGroups: "")并不包含deployments资源,这类资源实际归属apps API组。你在LocalStack中能正常工作是因为LocalStack的模拟环境做了兼容处理,但真实集群中,指定核心组的deployments权限并不会生效,这可能还是会导致你的应用调用api.listNamespacedDeployment失败。

如果你的应用SDK调用的是标准的apps组API,正确的Role创建命令应该是:

kubectl create role <你的角色名> -n test --verb=get,list --resource=deployments --api-group=apps
# 或者等价的写法
kubectl create role <你的角色名> -n test --verb=get,list --resource=deployments.apps

内容的提问来源于stack exchange,提问作者skyleguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:43:30