{"id":5165,"date":"2024-11-13T06:27:31","date_gmt":"2024-11-13T06:27:31","guid":{"rendered":"https:\/\/www.liainfraservices.com\/blog\/?p=5165"},"modified":"2025-04-03T08:40:05","modified_gmt":"2025-04-03T08:40:05","slug":"what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole","status":"publish","type":"post","link":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/","title":{"rendered":"What is apiGroups in kubernetes roles and kubernetes clusterRole?"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\"><\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">min read<\/span><\/span><div class='epvc-post-count'><span class='epvc-eye'><\/span>  <span class=\"epvc-count\"> 4,478<\/span><\/div>\n<p class=\"wp-block-paragraph\">Kubernetes provides various resources like <strong>pods<\/strong>, <strong>deployments<\/strong>, <strong>services<\/strong>, and more, which are stored in the Kubernetes database, <strong>ETCD<\/strong>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"301\" src=\"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-1024x301.png\" alt=\"\" class=\"wp-image-5182\" srcset=\"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-1024x301.png 1024w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-300x88.png 300w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-768x226.png 768w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-1536x451.png 1536w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/K8s-apiGroups-2048x602.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; To interact with these resources, we use the Kubernetes API, where each resource type has its own unique endpoint. For example: (To interact with kubernetes resource &#8220;pod&#8221;)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GET \/api\/v1\/namespaces\/{namespace}\/pods\/{name}\n\nDELETE \/api\/v1\/namespaces\/{namespace}\/pods\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If we closely monitor the above endpoint, we can observe it has two parts<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1st part (<code>GET<\/code>) is what action we want to perform and <\/li>\n\n\n\n<li>2nd part (<code>\/api\/v1\/namespaces\/{namespace}\/pods\/{name}<\/code>) is the resource on which we need to perform the action.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let`s see what the kubernetes <code>role\/clusterrole<\/code> object is and how we can identify the the purpose of <code>apiGroups<\/code>?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: rbac.authorization.k8s.io\/v1\nkind: ClusterRole\nmetadata:\n  name: viewer\nrules:\n  - apiGroups: &#91;\"*\"]\n    resources: &#91;\"deployments\", \"configmaps\", \"pods\", \"secrets\", \"services\"]\n    verbs: &#91;\"get\", \"list\", \"watch\"]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In this <code>ClusterRole<\/code>, the rules block contains three key entries:  [I remember it as <code>ARV<\/code> similar to how we have aws policy with <code>ARE<\/code>]<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>apiGroups<\/strong>: (A) Defines the API group for the resource, representing its endpoint.<\/li>\n\n\n\n<li><strong>resources<\/strong>: (R) Specifies the resource types for which the actions (verbs) apply.<\/li>\n\n\n\n<li><strong>verbs<\/strong>: (V) Lists the actions allowed on the specified resources.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If we map this structure back to our API example, it becomes clear how these entries correspond to parts of an API endpoint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">now, if we take our actual resource api path, all these 3 entries are in that API endpoint itself. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GET \/api\/v1\/namespaces\/{namespace}\/pods\/{name} \n---\nverbs api_end_point\/resource_name\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Why Use <code>apiGroups<\/code>?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the role kubernetes object the resources needed to be added for target access. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>So, kubernetes removed the base_url from the resource path and added a section named resources to add all the resources and <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>added the GET, DELETE in verbs<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">But, then another problem came.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not all Kubernetes resources share the same base URL in the API. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Deployments<\/strong> have an API path like <code>\/apis\/apps\/v1\/namespaces\/{namespace}\/deployments<\/code><\/li>\n\n\n\n<li><strong>Ingresses<\/strong> use <code>\/apis\/networking.k8s.io\/v1\/namespaces\/{namespace}\/ingresses<\/code><\/li>\n\n\n\n<li><strong>Pods<\/strong> use <code>\/api\/v1\/namespaces\/{namespace}\/pods\/{name}<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So, here, we can see that different resources have different API end points and base url to communicate with. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That shows that, just having verbs and resources would lead to a potential issue as these resources like deployments and ingress would not be available on the default api base url <code>\/api\/v1<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, to overcome that limitation of resource unavailable with default api (\/api\/v1), kubernetes added apiGroup as the 3rd entry inside the rules block and made the default apiGroup as &#8221; &#8221; which represents the resource with base url of \/api\/v1\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and that is the reason why apiGroup is introduced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can find all the kubernetes resources and their API information from <a href=\"https:\/\/kubernetes.io\/docs\/reference\/generated\/kubernetes-api\/v1.26\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To further clarify, here is a table of common Kubernetes resources and their corresponding <code>apiGroups<\/code> and API endpoints:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This list would be handy to write the correct apiGroup to restrict the access to a specific resource rather keeping the apiGroup as &#8220;*&#8221; which exposes all the apis.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>apiGroup<\/td><td>Version<\/td><td>Resources<\/td><\/tr><tr><td>(empty string) &#8220;&#8221;<\/td><td>v1 [ This is the default apiGroup, so we keep it blank]<\/td><td><code>pods<\/code>, <code>services<\/code>, <code>configmaps<\/code>, <code>secrets<\/code>, <code>namespaces<\/code>, <code>persistentvolumeclaims<\/code>, <code>endpoints<\/code><\/td><\/tr><tr><td><code>apps<\/code><\/td><td>v1<\/td><td><code>deployments<\/code>, <code>replicasets<\/code>, <code>statefulsets<\/code>, <code>daemonsets<\/code><\/td><\/tr><tr><td>batch<\/td><td>v1, v1beta1<\/td><td><code>jobs<\/code>, <code>cronjobs<\/code><\/td><\/tr><tr><td>autoscaling<\/td><td>v1<\/td><td><code>horizontalpodautoscalers<\/code><\/td><\/tr><tr><td>networking.k8s.io<\/td><td>v1<\/td><td><br><code>ingresses<\/code>, <code>networkpolicies<\/code><\/td><\/tr><tr><td>policy<\/td><td>v1<\/td><td><code>poddisruptionbudgets<\/code><\/td><\/tr><tr><td>rbac.authorization.k8s.io<\/td><td>v1<\/td><td><code>roles<\/code>, <code>clusterroles<\/code>, <code>rolebindings<\/code>, <code>clusterrolebindings<\/code><\/td><\/tr><tr><td>scheduling.k8s.io<\/td><td>v1<\/td><td><code>priorityclasses<\/code><\/td><\/tr><tr><td>storage.k8s.io<\/td><td>v1<\/td><td><code>storageclasses<\/code>, <code>volumeattachments<\/code>, <code>csidrivers<\/code>, <code>csinodes<\/code><\/td><\/tr><tr><td>admissionregistration.k8s.io<\/td><td>v1<\/td><td><br><code>mutatingwebhookconfigurations<\/code>, <code>validatingwebhookconfigurations<\/code><\/td><\/tr><tr><td>apiextensions.k8s.io<\/td><td>v1<\/td><td><code>customresourcedefinitions<\/code><\/td><\/tr><tr><td>certificates.k8s.io<\/td><td>v1<\/td><td><code>certificatesigningrequests<\/code><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">apiGroup for kubernetes roles\/clusterrole.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">To know about different api versions for resources available on kubernetes cluster, we can use these commands<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>kubectl api-resources<\/code><br><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"803\" src=\"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-1024x803.png\" alt=\"\" class=\"wp-image-5170\" srcset=\"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-1024x803.png 1024w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-300x235.png 300w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-768x602.png 768w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-1536x1204.png 1536w, https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes-api-2048x1606.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\"><\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">min read<\/span><\/span>4,478 Kubernetes provides various resources like pods, deployments, services, and more, which are stored in the Kubernetes database, ETCD. &#8211; To interact with these resources, we use the Kubernetes API,<\/p>\n","protected":false},"author":1,"featured_media":5329,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[971],"tags":[],"class_list":["post-5165","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices\" \/>\n<meta property=\"og:description\" content=\"3 min read4,478 Kubernetes provides various resources like pods, deployments, services, and more, which are stored in the Kubernetes database, ETCD. &#8211; To interact with these resources, we use the Kubernetes API,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog | Liainfraservices\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-13T06:27:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-03T08:40:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2240\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Partho\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Partho\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/\"},\"author\":{\"name\":\"Partho\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#\\\/schema\\\/person\\\/b5a729cb152dd3bc7f07550ca9d223e4\"},\"headline\":\"What is apiGroups in kubernetes roles and kubernetes clusterRole?\",\"datePublished\":\"2024-11-13T06:27:31+00:00\",\"dateModified\":\"2025-04-03T08:40:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/\"},\"wordCount\":519,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/kubernetes_Rbac.png\",\"articleSection\":[\"devops\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/\",\"url\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/\",\"name\":\"What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/kubernetes_Rbac.png\",\"datePublished\":\"2024-11-13T06:27:31+00:00\",\"dateModified\":\"2025-04-03T08:40:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/kubernetes_Rbac.png\",\"contentUrl\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/kubernetes_Rbac.png\",\"width\":2240,\"height\":1260,\"caption\":\"kubernetes Rbac\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"devops\",\"item\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/category\\\/devops\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What is apiGroups in kubernetes roles and kubernetes clusterRole?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/\",\"name\":\"Blog | Liainfraservices\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#organization\",\"name\":\"Blog | Liainfraservices\",\"url\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/lia-logo-b-e1635340384244.png\",\"contentUrl\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/10\\\/lia-logo-b-e1635340384244.png\",\"width\":308,\"height\":96,\"caption\":\"Blog | Liainfraservices\"},\"image\":{\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.liainfraservices.com\\\/blog\\\/#\\\/schema\\\/person\\\/b5a729cb152dd3bc7f07550ca9d223e4\",\"name\":\"Partho\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g\",\"caption\":\"Partho\"},\"description\":\"Partho Das, founder of Lia Infraservices, has 15+ years of expertise in cloud solutions, DevOps, and infrastructure security. He provides consultation on architecture planning, DevOps setup, Kubernetes, and cloud migrations. Partho holds multiple AWS and Azure certifications, along with CISCO CCNA &amp; CCNP. Connect on LinkedIn\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/partho-dev\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/","og_locale":"en_US","og_type":"article","og_title":"What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices","og_description":"3 min read4,478 Kubernetes provides various resources like pods, deployments, services, and more, which are stored in the Kubernetes database, ETCD. &#8211; To interact with these resources, we use the Kubernetes API,","og_url":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/","og_site_name":"Blog | Liainfraservices","article_published_time":"2024-11-13T06:27:31+00:00","article_modified_time":"2025-04-03T08:40:05+00:00","og_image":[{"width":2240,"height":1260,"url":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png","type":"image\/png"}],"author":"Partho","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Partho","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#article","isPartOf":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/"},"author":{"name":"Partho","@id":"https:\/\/www.liainfraservices.com\/blog\/#\/schema\/person\/b5a729cb152dd3bc7f07550ca9d223e4"},"headline":"What is apiGroups in kubernetes roles and kubernetes clusterRole?","datePublished":"2024-11-13T06:27:31+00:00","dateModified":"2025-04-03T08:40:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/"},"wordCount":519,"commentCount":0,"publisher":{"@id":"https:\/\/www.liainfraservices.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#primaryimage"},"thumbnailUrl":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png","articleSection":["devops"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/","url":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/","name":"What is apiGroups in kubernetes roles and kubernetes clusterRole? - Blog | Liainfraservices","isPartOf":{"@id":"https:\/\/www.liainfraservices.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#primaryimage"},"image":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#primaryimage"},"thumbnailUrl":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png","datePublished":"2024-11-13T06:27:31+00:00","dateModified":"2025-04-03T08:40:05+00:00","breadcrumb":{"@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#primaryimage","url":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png","contentUrl":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2024\/11\/kubernetes_Rbac.png","width":2240,"height":1260,"caption":"kubernetes Rbac"},{"@type":"BreadcrumbList","@id":"https:\/\/www.liainfraservices.com\/blog\/what-is-apigroups-in-kubernetes-roles-and-kubernetes-clusterrole\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.liainfraservices.com\/blog\/"},{"@type":"ListItem","position":2,"name":"devops","item":"https:\/\/www.liainfraservices.com\/blog\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"What is apiGroups in kubernetes roles and kubernetes clusterRole?"}]},{"@type":"WebSite","@id":"https:\/\/www.liainfraservices.com\/blog\/#website","url":"https:\/\/www.liainfraservices.com\/blog\/","name":"Blog | Liainfraservices","description":"","publisher":{"@id":"https:\/\/www.liainfraservices.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.liainfraservices.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.liainfraservices.com\/blog\/#organization","name":"Blog | Liainfraservices","url":"https:\/\/www.liainfraservices.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.liainfraservices.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2021\/10\/lia-logo-b-e1635340384244.png","contentUrl":"https:\/\/www.liainfraservices.com\/blog\/wp-content\/uploads\/2021\/10\/lia-logo-b-e1635340384244.png","width":308,"height":96,"caption":"Blog | Liainfraservices"},"image":{"@id":"https:\/\/www.liainfraservices.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.liainfraservices.com\/blog\/#\/schema\/person\/b5a729cb152dd3bc7f07550ca9d223e4","name":"Partho","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6c5fc8918cc5dbc844eccbeaaf854eef27d2c79ab17ff0022304f712805d6959?s=96&d=mm&r=g","caption":"Partho"},"description":"Partho Das, founder of Lia Infraservices, has 15+ years of expertise in cloud solutions, DevOps, and infrastructure security. He provides consultation on architecture planning, DevOps setup, Kubernetes, and cloud migrations. Partho holds multiple AWS and Azure certifications, along with CISCO CCNA &amp; CCNP. Connect on LinkedIn","sameAs":["https:\/\/www.linkedin.com\/in\/partho-dev\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/posts\/5165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/comments?post=5165"}],"version-history":[{"count":16,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/posts\/5165\/revisions"}],"predecessor-version":[{"id":5183,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/posts\/5165\/revisions\/5183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/media\/5329"}],"wp:attachment":[{"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/media?parent=5165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/categories?post=5165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.liainfraservices.com\/blog\/wp-json\/wp\/v2\/tags?post=5165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}