오브젝트 이름과 ID
클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름을 가지고 있다.
모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID를 가지고 있다.
예 이름이 myapp-1234 인 파드는 동일한 네임스페이스 내에서 하나만 존재할 수 있지만 이름이 myapp-124인 파드와 디플로이먼트는 각각 존재할 수 있다.
유일하지 않은 사용자 제공 속성의 경우 쿠버네티스는 레이블과 어노테이션을 제공한다.
이름
/api/v1/pods/some-name 과 같이 리소스 URL에서 오브젝트를 가리키는 클라이언트 제공 문자열
특정 시점에 같은 종류(kind)내에서는 하나의 이름은 하나의 오브젝트에만 지정될 수 있다.
하지만 오브젝트를 삭제할 경우, 삭제된 오브젝트와 같은 이름을 새로운 오브젝트에 지정 가능하다.
참고 : 물리적 호스트를 나타내는 노드와 같이 오브젝트가 물리적 엔티티를 나타내는 경우 노드를 삭제한 후 다시 생성하지 않은 채 동일한 이름으로 호스트를 다시 생성 하면 쿠베네티스틑 새 호스트를 불일치로 이어질 수 있는 이전 호스트로 취급한다.
리소스에 일반적으로 네가지 유형의 이름제한 조건을 아래에서 알아본다.
1. DNS 서브도메인 이름
대부분 리소스 유형에는 RFC 1123에 정의된 대로 DNS서브 도메인 이름으로 사용할 수 있는 이름이 필요하다 이것은 이름이 다음의 것을 충족해야 한다는 것을 의미한다.
l 253자를 넘지 말아야 한다.
l 소문자와 영 , 숫자 – 또는 . 만 포함한다.
l 영숫자로 시작한다.
l 영 숫자로 끝난다.
2. RFC 1123레이블 이름
일부 리소스 유형은 RFC 1123에 정의된 대로 DNS레이블 표준을 따라야 한다.
이것은 이름이 다음을 충족해야 한다는 것을 의미한다.
l 최대 63자
l 소문자와 영숫자 또는 –만 포함한다.
l 영숫자로 시작한다.
l 영숫자로 끝난다.
3. RFC 1035레이블 이름
몇몇 리소스 타입은 자신의 이름을 RFC 1035에 정의된 DNS레이블 표준을 따르도록 요구한다. 이것은 다음을 만족해야 한다는 것을 의미한다.
l 최대 63개 문자를 포함
l 소문자 영숫자 또는 ‘-‘만 포함
l 알파벳 문자로 시작
l 영 숫자로 끝남
4. 경로 세그먼트 이름
일부 리소스 유형에서는 이름을 경로 세그먼트로 안전하게 인코딩 할 수 있어야 한다.
즉 이름일 “.” 또는 “..” 이 아닐 수 있으며 이름에는 “/” 또는 “%” 가 포함될 수 없다.
아래는 파드의 이름이 nginx-demo라는 매니페스트 예시이다.
apiVersion: v1
kind: Pod
metadata:
name: nginx-demo
spec:
containers:
- Name: nginx
Image: nginx::1.14.2
Ports:
- containerPort:80
참고 일부 리소스 유형은 이름에 추가적인 제약이 있다.
UID
오브젝트를 중복 없이 식별하기 위해 쿠버네티스 시스템이 생성하는 문자열
쿠버네티스 클러스터가 구동되는 전체 시간에 걸쳐 생성되는 모든 오브젝트는 서로 구분 되는 UID를 갖는다 이는 기록상 유사한 오브젝트의 출현을 서로 구분하기 위함이다.
쿠버네티스 UID는 보편적으로 구유한 식별자이다(또는 UUID)
Uuid 는 iso/1ec 9834-8 과 ITU-T x.667로 표준화 되어 있다
출처 : https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/names/
쿠버네티스[8] 레이블과 셀렉터 20220907 (0) | 2022.09.07 |
---|---|
쿠버네티스[7] 네임스페이스 20220904 (0) | 2022.09.05 |
쿠베네티스[5] 오브젝트 관리 20220903 (0) | 2022.09.03 |
쿠버네티스[4] 오브젝트 (0) | 2022.08.31 |
쿠버네티스[3] API (0) | 2022.08.30 |
댓글 영역