ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Helm] 토픽 - Label과 Annotation
    공부/쿠버네티스&헬름 2025. 3. 4. 00:55

    다음 조건에 해당하는 메타데이터는 label로 설정해야 합니다.

    • 쿠버네티스에서 리소스를 식별하는 데 사용되는 경우
    • 시스템을 쿼리할 목적으로 운영자에게 노출하는 것이 유용한 경우
    • 예를 들어, helm.sh/chart: NAME-VERSION label을 사용하여 운영자가 특정 차트의 모든 인스턴스를 편리하게 찾을 수 있도록 하는 것이 좋음

    쿼리에 사용되지 않는 메타데이터는 어노테이션으로 설정해야 합니다. Helm hooks는 항상 어노테이션으로 설정됩니다.

    label을 사용하여 리소스를 식별하고 쿼리할 수 있도록 하고 쿼리에 사용되지 않는 메타데이터는 어노테이션으로 설정하여 불필요한 label 남용을 방지합니다. 또한 Helm hooks는 어노테이션으로 관리하여 다른 메타데이터와 구분합니다.

    standard label

    다음 표는 Helm Chart에서 일반적으로 사용되는 label을 정의합니다. Helm 자체는 특정 label의 존재를 요구하지 않습니다. REC로 표시된 label은 권장되며 전역적인 일관성을 위해 차트에 추가되어야 합니다. OPT로 표시된 label은 선택 사항입니다. 이러한 label은 관용적이거나 일반적으로 사용되지만 운영 목적으로 자주 사용되지는 않습니다.

    이름 상태 설명
    app.kubernetes.io/name REC 이것은 전체 앱을 반영하는 앱 이름이어야 합니다. 일반적으로 {{ template "name" . }}이 이를 위해 사용됩니다. 이것은 많은 쿠버네티스 매니페스트에서 사용되며 헬름에 특화된 것은 아닙니다.
    helm.sh/chart REC 차트 이름과 버전은 다음과 같습니다: `{{ .Chart.Name }}-{{ .Chart.Version
    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 여러 차트 또는 소프트웨어 조각이 함께 사용되어 하나의 애플리케이션을 구성할 때 사용됩니다. 예를 들어, 웹사이트를 만들기 위해 애플리케이션 소프트웨어와 데이터베이스가 사용되는 경우입니다. 이 레이블은 지원되는 최상위 레벨 애플리케이션으로 설정할 수 있습니다.

    Kubernetes 설명서app.kubernetes.io 에서 접두사로 시작하는 Kubernetes label에 대한 자세한 내용을 확인할 수 있습니다 .

    레퍼런스

    https://helm.sh/docs/chart_best_practices/labels/

    댓글