Ετικέτες και Annotations
Αυτό το μέρος του Οδηγού Βέλτιστων Πρακτικών καλύπτει τις βέλτιστες πρακτικές για τη χρήση ετικετών και annotations στο chart σας.
Είναι Ετικέτα ή Annotation;
Ένα στοιχείο μεταδεδομένων θα πρέπει να είναι ετικέτα υπό τις ακόλουθες συνθήκες:
- Χρησιμοποιείται από το Kubernetes για την αναγνώριση αυτού του πόρου
- Είναι χρήσιμο να εκτίθεται στους διαχειριστές για σκοπούς αναζήτησης στο σύστημα.
Για παράδειγμα, προτείνουμε τη χρήση του helm.sh/chart: NAME-VERSION ως ετικέτα, ώστε οι διαχειριστές να μπορούν να βρίσκουν εύκολα όλες τις εκδοχές ενός συγκεκριμένου chart.
Αν ένα στοιχείο μεταδεδομένων δεν χρησιμοποιείται για αναζήτηση, θα πρέπει να οριστεί ως annotation.
Τα Helm hooks είναι πάντα annotations.
Τυπικές Ετικέτες
Ο παρακάτω πίνακας ορίζει τις συνήθεις ετικέτες που χρησιμοποιούν τα Helm charts. Το ίδιο το Helm δεν απαιτεί ποτέ την παρουσία μιας συγκεκριμένης ετικέτας. Οι ετικέτες που σημειώνονται με REC συνιστώνται και θα πρέπει να τοποθετούνται σε ένα chart για γενική συνέπεια. Αυτές που σημειώνονται με OPT είναι προαιρετικές. Είναι συνηθισμένες στην πράξη, αλλά δεν είναι απαραίτητες για λειτουργικούς σκοπούς.
| Όνομα | Κατάσταση | Περιγραφή |
|---|---|---|
app.kubernetes.io/name | REC | Θα πρέπει να είναι το όνομα της εφαρμογής, που αντιπροσωπεύει ολόκληρη την εφαρμογή. Συνήθως χρησιμοποιείται το {{ template "name" . }}. Χρησιμοποιείται από πολλά Kubernetes manifests και δεν είναι συγκεκριμένο για το Helm. |
helm.sh/chart | REC | Θα πρέπει να είναι το όνομα και η έκδοση του chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}. |
app.kubernetes.io/managed-by | REC | Θα πρέπει να είναι πάντα {{ .Release.Service }}. Χρησιμοποιείται για την εύρεση όλων των πόρων που διαχειρίζεται το Helm. |
app.kubernetes.io/instance | REC | Θα πρέπει να είναι το {{ .Release.Name }}. Βοηθά στη διάκριση μεταξύ διαφορετικών εκδοχών της ίδιας εφαρμογής. |
app.kubernetes.io/version | OPT | Η έκδοση της εφαρμογής και μπορεί να οριστεί ως {{ .Chart.AppVersion }}. |
app.kubernetes.io/component | OPT | Μια συνήθης ετικέτα για τη σήμανση των διαφορετικών ρόλων που μπορεί να έχουν τα διάφορα στοιχεία μιας εφαρμογής. Για παράδειγμα, app.kubernetes.io/component: frontend. |
app.kubernetes.io/part-of | OPT | Όταν χρησιμοποιούνται πολλαπλά charts ή στοιχεία λογισμικού μαζί για τη δημιουργία μιας εφαρμογής. Για παράδειγμα, λογισμικό εφαρμογής και μια βάση δεδομένων για την παραγωγή ενός ιστότοπου. Μπορεί να οριστεί στην εφαρμογή ανώτερου επιπέδου που υποστηρίζεται. |
Μπορείτε να βρείτε περισσότερες πληροφορίες για τις ετικέτες του Kubernetes, με πρόθεμα app.kubernetes.io, στην τεκμηρίωση του Kubernetes.