Kubernetes 메타데이터 라벨 형식 점검

유효한 라벨 형식과 실제 선택자 일치를 함께 확인하세요.

설명

Kubernetes 라벨이 형식 규칙을 어기면 API가 리소스 생성이나 변경을 거부할 수 있습니다. 라벨은 Service, NetworkPolicy와 운영 자동화가 리소스를 선택하는 데 쓰이므로 형식과 의미를 함께 관리해야 합니다.

라벨 값은 빈 문자열이거나 63자 이하의 문자열이며, 비어 있지 않으면 영문·숫자로 시작하고 끝나야 합니다. 중간에는 영문·숫자와 하이픈, 밑줄, 점을 사용할 수 있습니다.

잠재적 영향

  • 잘못된 라벨 때문에 배포나 리소스 변경이 실패할 수 있습니다.
  • 유효한 라벨이라도 선택자와 일치하지 않으면 의도한 대상이 선택되지 않을 수 있습니다.

해결 방법

  • Kubernetes 규칙에 맞는 라벨 키와 값을 사용하세요. 키의 선택적 DNS 접두사와 이름 부분의 규칙도 확인하세요.
  • 라벨을 변경할 때 Service·정책의 선택자를 함께 점검하고 실제 대상이 선택되는지 확인하세요.

예시

메타데이터만 보여 주는 발췌이며 필수 파드 spec은 생략했습니다. 대소문자는 구분되므로 MyApp을 선택하는 쪽도 같은 값을 사용해야 합니다.

변경 전

hcl
resource "kubernetes_pod" "example" {
  metadata {
    name = "terraform-example"

    labels = {
      app = "g**dy.l+bel"
    }
  }
}

변경 후

hcl
resource "kubernetes_pod" "example" {
  metadata {
    name = "terraform-example"

    labels = {
      app = "MyApp"
    }
  }
}

설명:

  • 변경 전: 별표와 더하기 기호가 포함된 값은 유효한 라벨 값이 아니므로 API에서 거부될 수 있습니다.
  • 변경 후: 유효한 MyApp 값을 사용합니다. 다른 리소스의 선택자와도 일치해야 합니다.

참조