Apache Ignite on your Kubernetes Cluster Part 2: RBAC Explained
You had a cache service running however all you did was installing a helm chart.
In this blog we shall evaluate what is installed and take notes for our futures helm charts.
The first step would be to view the helm chart.
1 2 3 | > helm listNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONignite-cache default 1 2020-03-07 22:23:49.918924 +0000 UTC deployed ignite-1.0.1 2.7.6 |
Now let’s download it
1 2 3 4 5 6 7 8 | > helm fetch stable/ignite> tar xvf ignite-1.0.1.tgz> cd ignite/; ls -RChart.yaml README.md templates values.yaml./templates:NOTES.txt account-role.yaml persistence-storage-class.yaml service-account.yaml svc.yaml_helpers.tpl configmap.yaml role-binding.yaml stateful-set.yaml wal-storage-class.yaml |
Reading through the template files is a bit challenging (well they are tempaltes :P) so we shall just check what was installed through our previous blog.
Let’s get started with the account-role. The cluster role that ignite shall use needs to be able to get/list/watch the pods and the endpoints. It makes sense since there is a need for discovery between the nodes.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | > kubectl get ClusterRole ignite-cache -o yamlkind: ClusterRolemetadata: creationTimestamp: 2020-03-07T22:23:50Z name: ignite-cache resourceVersion: "137525" selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/ignite-cache uid: 0cad0689-2f94-4b74-87bc-b468e2ac78aerules:- apiGroups: - "" resources: - pods - endpoints verbs: - get - list - watch |
In order to use this role you need a service account. A service account is create with a token.
01 02 03 04 05 06 07 08 09 10 11 12 | > kubectl get serviceaccount ignite-cache -o yamlapiVersion: v1kind: ServiceAccountmetadata: creationTimestamp: 2020-03-07T22:23:50Z name: ignite-cache namespace: default resourceVersion: "137524" selfLink: /api/v1/namespaces/default/serviceaccounts/ignite-cache uid: 7aab67e5-04db-41a8-b73d-e76e34ca1d8esecrets:- name: ignite-cache-token-8rln4 |
Then we have the role binding. We have a new service account called the ignite-cache which has the role ignite-cache.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 | > kubectl get ClusterRoleBinding ignite-cache -o yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: creationTimestamp: 2020-03-07T22:23:50Z name: ignite-cache resourceVersion: "137526" selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/ignite-cache uid: 1e180bd1-567f-4979-a278-ba2e420ed482roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: ignite-cachesubjects:- kind: ServiceAccount name: ignite-cache namespace: default |
It is important for you ignite workloads to use this service account and its token. By doing so they have the permissions to discover the other nodes in your cluster.
The next blog focuses on the configuration.
Published on Java Code Geeks with permission by Emmanouil Gkatziouras, partner at our JCG program. See the original article here: Apache Ignite on your Kubernetes Cluster Part 2: RBAC Explained Opinions expressed by Java Code Geeks contributors are their own. |







