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

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

설명

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

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

잠재적 영향

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

해결 방법

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

예시

라벨 값을 비교하는 기존 예시입니다. 실제 배포에는 유지보수되는 검증된 이미지를 사용하세요.

변경 전

yaml
apiVersion: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: g**dy.l+bel.
spec:
  containers:
    - name: goproxy
      image: k8s.gcr.io/goproxy:0.1

별표와 더하기 기호, 마지막 점이 포함된 app 값은 유효한 라벨 값이 아닙니다.

변경 후

yaml
apiVersion: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: goproxy
spec:
  containers:
    - name: goproxy
      image: k8s.gcr.io/goproxy:0.1

유효한 goproxy 값을 사용합니다. 다른 리소스의 선택자와도 일치해야 합니다.

참조