상세 컨텐츠

본문 제목

쿠베네티스[9] 어노테이션 20220908

보안/java

by MustThanks 2022. 9. 8. 15:03

본문

반응형

어노테이션

  쿠버네티스 어노테이션을 사용하여 임의의 비-식별 메타데이터를 오브젝트에 첨부할 수 있다 도구 및 라이브러리와 같은 클라이언트는 이 메타데이터를 검색할 수 있다.

 

오브젝트에 메타데이터 첨부

 레이블이나 어노테이션을 사용하여 쿠버네티스 오브젝트에 메타데이터를 첨부할 수 있다.

레이블을 사용하여 오브젝트를 선택하고 특정 조건을 만족하는 오브젝트 컬렉션을 찾을 수 있다 반면에 어노테이션은 오브젝트를 식별하고 선택하는데 사용되지 않는다.  어노테이션의 메타데이터는 작거나 크고 구조적이거나 구조적이지 않을 수 있으며 레이블에서 허용되지 않는 문자를 포함할 수 있다.

 

어노테이션은 레이블과 같이 키:값의 맵이다.

"metadata" : {

           "annotations" : {

               "key1" : "value1",

              "key2" : "value2"

          }

}

 

참고 : 맵의 키와 값은 문자열이어야 한다. 다르게 말해서, 숫자, 불리언(boolean), 리스트 등의 다른 형식을 키나 값에 사용할 수 없다.

 

다음은 어노테이션에 기록할 수 있는 정보의 예제이다.

* 필드는 선어적 구성 계층에 의해 관리된다. 이러한 필드를 어노테이션으로 첨부하는 것은 클라이언트 또는 서버가 설정한 기본 값, 자동 생성된 필드, 그리고 오토사이징 또는 오토스케일링 시스템에의해 설정된 필드와 구분 된다.

* 빌드, 릴리스, 또는 타임 스탬프, 릴리스 ID, git 브랜치, PR 번호, 이미지 해시 및 레지스트리 주소와 같으 이미지 정보

* 로킹, 모니터링, 분석 또는 감사 리포지터리에 대한 포인터

* 디버깅 목적으로 사용될 수 있는 클라이언트 라이브러리 또는 도구 정보 (예 : 이름, 버전,그리고 빌드 정보)

* 다른 생태계 구성 요소의 관련 오브젝트 URL과 같은 사용자 또는 도구/시스템 출처 정보

* 경량 롤아웃 도구 메타데이터 ( 예: 구성 또는 체크포인트)

* 책임자의 전화번호 또는 호출기 번호, 또는 팀 웹 사이트 같은 해당 정보를 찾을 수 있는 디렉토리 진입점

* 행동을 수정하거나 비표준 기능을 수행하기 위한 최종 사용자의 지시 사항

어노테이션을 사용하는 대신, 이 유형의 정보를 외부 데이터베이스 또는 디렉터리에 저장할 수 있지만, 이는 배포, 관리, 인트로스펙션(instrospection) 등을 위한 공유 클라이언트 라이브러리와 도구 생성을 휠씬 더 어렵게 만들 수 있다.

 

문법과 캐리터 셋

 어노테이션은 키/값 쌍이다. 유효한 어노테이션 키에는 두 개의 세그먼트가 있다. 두개의 세그먼트는 선택적인 접두사와 이름(name)이며, 슬래시(/)로 구분된다. 이름 세그멘트는 필수이며 영문 숫자([a-z0-9A-Z])로 시작하고 끝나는 63자 이하이어야 하고 사이에 대시(-),밑줄(_),점(.)이 들어갈 수 있다. 접두사는 선택적이다. 지정된 경우 접두사는 DNS 서브도메인이어야한다. 점(.)으로 구분된 일련의 DNS 레이블은 총 253자를 넘지 않고 뒤에 슬래시(/)가 붙는다.

 

접두사 생략되면, 어노테이션 키는 사용자에게 비공개로 간주된다. 최종 사용자 오브젝트에 어노테이션을 추가하는 자동화된 시스템 구성 요소(예:kube-scheduler, kube-controlleer-manager, kube-apiserver,kubectl or 다른 서드파티 자동화)는 접두사를 지정해야 한다.

kubernetes.io/ k8s.io/ 접두사는 쿠버네티스 핵심 구성 요소를 위해 예약되어 있다

imageregistry: https:hub.docker.com/

apiVersion: v1

kind: Pod

metadata:

   name:annotations-demo

   annotations:

       imageregistry: "https://hub.docker.com/"

spec:

  containers:

  - name: nginx

    image: nginx:1.14.2

    ports:

    - containerPort: 80

 

 

어노테이션.rtf
0.01MB

관련글 더보기

댓글 영역