首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要澄清kuberentes部署yaml如何创建角色

需要澄清kuberentes部署yaml如何创建角色
EN

Stack Overflow用户
提问于 2019-09-23 15:21:04
回答 2查看 56关注 0票数 0

下面提到的yaml文件片段用于角色创建:我是kubernetes的新手,因此正在寻找一个参考链接来详细说明yaml中提到的规则。例如,我的理解是“”表示kubernetes的核心API组,然后我的问题是什么是…的“扩展”对于寻找参考/解释的yaml的其余部分,也是如此。非常感谢你们的帮助

代码语言:javascript
复制
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
- apiGroups: ["batch"]
  resources:
  - jobs
  - cronjobs
  verbs: ["*"]
EN

回答 2

Stack Overflow用户

发布于 2019-09-23 15:39:56

kubectl explain clusterrole.rules会提供详细的解释。

代码语言:javascript
复制
FIELDS:
   apiGroups    <[]string> -required-
     APIGroups is the name of the APIGroup that contains the resources. If this
     field is empty, then both kubernetes and origin API groups are assumed.
     That means that if an action is requested against one of the enumerated
     resources in either the kubernetes or the origin API group, the request
     will be allowed

Extensions是不推荐使用的apiGroup,过去是无组织的资源居住,目前,资源正在移动到特定的组。例如,DaemonSet、Deployment、StatefulSet和ReplicaSet将迁移到应用程序组。api-deprecations-in-1-16/

以下是命名约定

命名组位于静态路径/apis/$GROUP_NAME/$VERSION,并使用apiVersion: $GROUP_NAME/$VERSION (例如apiVersion: batch/v1)。

核心组通常称为遗留组,位于REST路径/api/v1并使用apiVersion: v1.

支持的接口组的完整列表可以在Kubernetes API reference中看到。

Batch是k8s中的另一个组,它由cronjob和作业资源组成。

谓词这些操作如list、get等Verb-on-resources

您可以使用以下命令kubectl api-resources列出所有资源及其组

票数 0
EN

Stack Overflow用户

发布于 2019-10-17 18:48:27

它只是一种对k8s对象进行分组的方式。将对象添加到k8s时,会将它们添加到特定组中。

core API groupv1,所以每次你看到apiVersion: v1,比如Pod object,它就是core API groupreplicaSetService ConfigMapNodesecrets等也是v1。这些是k8s使用的主要对象,几乎从一开始就是这样,而且是可靠的(用我自己的话说)。

可以根据对象的成熟度将对象从一个组移动到另一个组。例如,Deployments现在在apps/v1组中,但它们过去在extensions/v1beta1中。就我个人而言,旧组中有yaml文件,当我尝试创建这些文件时,会收到来自服务器的错误。我认为有一段时间,apps/v1extentions/v1beta1都是有效的。不过,我对此并不确定。

K8s是一个可扩展的平台,因此您也可以通过CustomResourceDefinition创建自己的对象,并将它们放在一个自定义的组中。这就是入口控制器网格等的情况。例如,Istio创建了一堆对象,如GatewayVirtualServiceDestinationRule等。一旦你创建了这个CDR,你就可以用一个普通的kubectl get gateway来获取它们。

batch/v1用于作业。我认为batch/v1中没有更多的对象了。CronJobs are batch/v1beta1

HorizontalPodAutoscaler在autoscaling/v1中。

现在,您不需要真正地记住这些对象和它们的组。正如另一个答案所说,您总是可以执行kubectl explain OBJECT来了解某个对象属于哪个组。因此,创建RBAC规则的正常工作流程为:

  1. 我想要操作访问控制的是什么对象?假设是batch.

->,我将从此处获得作业是批处理/v1

  • 我将为RBAC创建一个RBAC规则

动词是不言而喻的。

请注意,组只是第一部分;batchextensions、"“(因为v1没有任何内容)等。

这里有更多关于基于角色的访问控制的信息(如用于暴露api-server的路径的非资源work ),但我认为这应该足以说明apiGroups是如何工作的。希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58057447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档