Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 3.14 KB

11-k8s-basic-label.md

File metadata and controls

90 lines (67 loc) · 3.14 KB

Kubernetes basics: Labels

Title K8 Basic Labels
Category Course
Level Novice
Duration ?
YouTube https://youtube.com/crankzone/xxx
Blog https://muellermh.wordpress.com/k8s-basic-training-etcd
 Author Manuel H. "Onko" Müller
 Mail  mm@kubernauts.de
 Resource https://kubernetes.io/docs/concepts/overview/components/
Description In dieser Lektion lernst du was ein Label ist und wie diese selektiert werden können.

Labels

Labels sind Key Value Paare (key=value) die an REST Objekte in der Kubernetes API gehängt werden können die nicht für das System selbst relevant sind aber dem User das leben vereinfachen. Mit Hilfe dieser Key Value Paaren können Objekte gefiltert und zugeordnet werden. Labels können beim erstellen hinzugefügt werden und jederzeit hinzugefügt, verändert oder entfernt werden. Bei den Labels gibt es keine Begrenzungen und Sie sind frei wählbar. Jeder Key muss für ein Objekt eindeutig sein.

Ein paar Beispiel Labels, welche die Organisation von Objekten erleichtern:

"release" : "stable",
"release" : "canary"
"environment" : "dev",
"environment" : "qa",
"environment" : "production"

"tier" : "frontend",
"tier" : "backend",
"tier" : "cache"

"partition" : "customerA",
"partition" : "customerB"

"track" : "daily",
"track" : "weekly"

Label selectors

Labels können mit gleich oder ungleich selektiert werden, eine verknüpfung mehrere Tags wird mit einem Komma realisiert.

Equality-based requirement

Gleichheits- oder ungleichheitsbezogene Selektierung ermöglichen die Filterung nach Labelschlüsseln und -werten. Abgleichobjekte müssen alle angegebenen Labelbeschränkungen erfüllen, können aber auch zusätzliche Labels haben. Es werden drei Arten von Operatoren zugelassen =,==,!=. Die ersten beiden repräsentieren Gleichheit (und sind einfach Synonyme), während die letzteren Ungleichheit darstellen.

environment = production
tier != frontend

Set-based requirement

Set-basierte Label Selektierung ermöglichen das Filtern von Schlüsseln nach einem Satz von Werten. Es werden drei Arten von Operatoren unterstützt: in, notin und exists (nur die Schlüsselkennung).

environment in (production, qa)
tier notin (frontend, backend)
partition
!partition

Beispiel Befehl um eine Lister alle Pods mit Labels zu selektieren:

kubectl get pods -l 'environment in (production, qa)'
kubectl get pods -l 'environment in (production),tier in (frontend)'
 kubectl get pods -l 'environment,environment notin (frontend)'

In der Beschreibung von Objekten können diese Selektoren ebenso verwendet werden:

selector:
    environment: production

oder komplexer:

selector:
  matchLabels:
    component: redis
  matchExpressions:
    - {key: tier, operator: In, values: [cache]}
    - {key: environment, operator: NotIn, values: [dev]}

Labels können auch an Nodes gehängt werden, zum Beispiel um zu selektieren auf welchen Nodes ein Pod starten darf.