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

时间:2019-09-23 07:21:03

标签: kubernetes azure-kubernetes

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

rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
- apiGroups: ["batch"]
  resources:
  - jobs
  - cronjobs
  verbs: ["*"]

2 个答案:

答案 0 :(得分:0)

kubectl explain clusterrole.rules将提供详细说明。

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

扩展是已弃用的apiGroup,其中用于居住的无组织资源目前正在移至特定组。例如DaemonSet,Deployment,StatefulSet和ReplicaSet将迁移到应用组。api-deprecations-in-1-16/

这是命名约定

  

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

     

核心组(通常称为旧版组)位于REST路径/ api / v1处,并使用apiVersion: v1.

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

批处理是k8中的另一个组,由cronjob和作业资源组成。

动词是这些操作,例如列表,获取等Verb-on-resources

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

答案 1 :(得分:0)

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

core API group v1 ,因此每次看到apiVersion: v1(例如 Pod 对象)时,它就是core API groupreplicaSetService ConfigMapNodesecrets等也是 v1 。这些是k8几乎从一开始就使用的主要对象,并且是可靠的(用我自己的话说)。

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

K8s是一个可扩展的平台,因此您也可以通过CustomResourceDefinition创建自己的对象,并将它们放在自定义组中。 入口控制器网格等就是这种情况。例如,Istio创建了一堆对象,例如GatewayVirtualService,{ {1}}等。创建此CDR后,可以使用常规的DestinationRule来获得它们。

kubectl get gateway用于职位。我认为batch/v1中没有更多对象。 CronJobs batch/v1

Horizo​​ntalPodAutoscaler位于batch/v1beta1中。

现在,您真的不需要真正地了解这些对象及其组。就像另一个答案所说的那样,您始终可以autoscaling/v1来知道对象属于哪个组。因此,用于创建RBAC规则的正常工作流程为:

  1. 我要操纵哪个对象的访问控制? ->说工作
  2. kubectl explain OBJECT->从这里我会得到工作是 批次/ v1
  3. 我将为kubectl explain jobs创建一个RBAC规则。

动词不言自明。

请注意,组仅仅是第一部分; batchbatch,“”(因为v1没有内容)等。

有更多关于RBAC的信息(例如nonResourceURLs,用于公开api-server的路径),但是我认为这足以说明apiGroups的工作原理。希望对您有所帮助。