NatronTech Logo
Best Practices

Annotations und Labels Best Practices

Annotations und Labels

Best Practices für die Verwendung von Kubernetes Annotations und Labels.

Was sind Labels?

Labels sind Key-Value-Paare, die an Kubernetes-Objekte angehängt werden. Sie werden verwendet, um Objekte auszuwählen und zu gruppieren. Sie werden oft verwendet, um Objekte nach Umgebung (z.B. env=prod, env=staging, env=dev), nach Applikation (z.B. app=myapp) oder nach Team (z.B. team=myteam) zu gruppieren.

Sie können auch verwendet werden, um Objekte nach anderen Kriterien zu gruppieren, zum Beispiel um Objekte für spezifische Tools und Bibliotheken auszuwählen (wie Ingress Controller, Prometheus oder ArgoCD).

Was sind Annotations?

Annotations sind Key-Value-Paare, die an Kubernetes-Objekte angehängt werden. Im Gegensatz zu Labels, die verwendet werden, um Objekte auszuwählen und zu gruppieren, werden Annotations verwendet, um beliebige, nicht-identifizierende Metadaten anzuhängen. Diese Daten werden oft von Tools und Bibliotheken (wie Ingress Controller, Prometheus oder ArgoCD) verwendet, um spezifische Verhalten oder Konfigurationen auszulösen.

Offizielle Kubernetes Annotations Dokumentation

Häufige Labels und Annotations für Natron

Natron verwendet Labels und Annotations, um das Verhalten seiner Komponenten zu steuern. Die folgenden Labels und Annotations werden von Natron verwendet:

  • gitops.natron.io/allow-prometheus: Erlaubt Prometheus, den Metrics-Endpoint zu scrapen.
  • gitops.natron.io/allow-ingress-internal

Namespace Labels

KeyValuesBeschreibung
pod-security.kubernetes.io/enforceprivileged baseline restrictedPod Security Standards. Siehe auch Pod Security Standards.
pod-security.kubernetes.io/enforce-versionz.B. v1.33Version von Kubernetes PSS.
gitops.natron.io/trustedtrueTrusted Label (z.B. für Kyverno Policies), das nur für alle Natron Managed Namespaces gelten sollte.

Pod Labels

Gemäss Well-Known Labels, Annotations and Taints.

KeyValuesBeschreibung
topology.kubernetes.io/regionnts-north nts-southRZ Standort
topology.kubernetes.io/zonents-north-1 nts-north-2 nts-south-1 nts-south-2Stromkreis im Rack, 1 & 2 sind verschiedene Kreise (noch nicht implementiert)
cilium.io/bgp-peering-policypfsenseCilium BGP-Peering-Policy (siehe Service Announcements)
gitops.natron.io/allow-ingress-externaltrueErlaubt Ingress Controller Pod, Pods in anderen Namespaces zu erreichen
gitops.natron.io/allow-ingress-internaltrueErlaubt Ingress Controller Pod, Pods in anderen Namespaces zu erreichen
gitops.natron.io/allow-prometheustrueErlaubt Prometheus Pod, Pods in anderen Namespaces zu erreichen
gitops.natron.io/allow-teleporttrueErlaubt teleport-kube-agent Pod, Pods in anderen Namespaces zu erreichen
gitops.natron.io/lb-poolinternal externalService Label Selektor für CiliumLoadBalancerIPPool
gitops.natron.io/loki-ruletrueLoki Alerting-Rule Label (Siehe Loki Alerting)
grafana_dashboard{tenant-number} (z.B. 1)Grafana Dashboard Label

Annotations

KeyValuesBeschreibung
gitops.natron.io/application-Name der Applikation
gitops.natron.io/customer-Name des Kunden
gitops.natron.io/stagepoc dev test prodName der Stage

On this page