Neues Kapitel
Labels sind Schlüssel-Wert-Paare, die an Objekte angehängt werden können, um diese zu organisieren und auszuwählen. Sie erlauben effiziente Abfragen und sind ideal für die Nutzung in Benutzeroberflächen und CLI. Labels ermöglichen es Nutzern, ihre eigenen organisatorischen Strukturen auf Systemobjekte in einer locker gekoppelten Weise abzubilden, ohne dass Clients diese Zuordnungen speichern müssen.
Die Syntax für Labels besteht aus zwei Segmenten: einem optionalen Präfix und einem Namen, getrennt durch einen Schrägstrich. Der Namensteil ist erforderlich und muss mit einem alphanumerischen Zeichen beginnen und enden, wobei auch Bindestriche, Unterstriche und Punkte zulässig sind.
Label-Selektoren sind das zentrale Konzept für Gruppierungen in Kubernetes und ermöglichen es dem Benutzer, eine Menge von Objekten zu identifizieren. Es gibt zwei Arten von Selektoren: gleichheitsbasierte und mengenbasierte. Gleichheitsbasierte Anforderungen erlauben das Filtern nach Label-Schlüsseln und -Werten, wobei Objekte alle angegebenen Label-Bedingungen erfüllen müssen. Mengenbasierte Anforderungen ermöglichen das Filtern von Schlüsseln nach einer Menge von Werten. Diese Anforderungen können miteinander kombiniert werden, um komplexe Abfragen zu erstellen
environment=production wählt alle
Ressourcen mit dem Schlüssel environment und dem Wert
production.tier!=frontend wählt alle
Ressourcen mit dem Schlüssel tier, die nicht den Wert
frontend haben.environment in (production, qa) wählt
alle Ressourcen, deren environment-Wert entweder
production oder qa ist.tier notin (frontend, backend)
wählt alle Ressourcen, die entweder keinen tier-Label oder
einen tier-Wert haben, der weder frontend noch
backend ist.partition wählt alle Ressourcen, die ein
partition-Label haben, unabhängig vom Wert.!partition wählt alle Ressourcen, die
kein partition-Label haben.apiVersion: v1
kind: Pod
metadata:
name: mypod
labels:
environment: production
spec:
containers:
- name: mycontainer
image: myimage
nodeSelector:
disktype: ssdapiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myreplicaset
spec:
replicas: 2
selector:
matchLabels:
environment: production
matchExpressions:
- {key: tier, operator: In, values: [frontend]}
template:
metadata:
labels:
environment: production
tier: frontend
spec:
containers:
- name: myfrontend
image: myfrontendimageIm Pod-Manifest wird ein gleichheitsbasierter Selektor verwendet, um
Knoten mit dem Label disktype=ssd auszuwählen. Das
ReplicaSet-Manifest verwendet einen mengenbasierten Selektor, um Pods zu
matchen, deren environment-Label den Wert
production hat und gleichzeitig im tier-Label
zu frontend gehört.