Zum Inhalt

Cheatsheet 11 - Access Control

Befehl Aktion
kubectl get namespace Namespaces anzeigen
kubectl get pods --namespace=<namespace> Pods in einem Namespace anzeigen
kubectl config view Aktuelle Kubeconfig anzeigen
kubectl config get-contexts Verfügbare Contexts anzeigen
kubectl config current-context Aktuellen Context anzeigen
kubectl config set-context --current --namespace=<namespace> --user=<user> Aktuellen Context setzen
kubectl apply -f pod.yaml --as system:serviceaccount:<namespace>:<serviceaccount> Befehl als anderer Nutzer ausführen

Namespace-Manifest Beispiel

---
apiVersion: v1
kind: Namespace
metadata:
  name: test

Namespace in einer Resource definieren

---
apiVersion: apps/v1
kind: Deployment  # Auch Pod, Job oder jegliche weitere Resource.
metadata:
  name: my-resource
  namespace: my-namespace
spec:
  [...]

ServiceAccount-Manifest Beispiel

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-service-account
  namespace: my-namespace

Role-Manifest Beispiel

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: my-role
  namespace: my-namespace
rules:
- apiGroups: [""]
  resources:
  - pods
  verbs:
  - create
  - get
  - list
  - watch
  - delete

RoleBinding-Manifest Beispiel

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: my-role-binding
  namespace: my-namespace
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: my-role
subjects:
- kind: ServiceAccount
  name: my-service-account
  namespace: my-namespace