11장. EndpointSlice [discovery.k8s.io/v1]
- 설명
- EndpointSlice는 서비스를 구현하는 끝점의 하위 집합을 나타냅니다. 지정된 서비스의 경우 레이블로 선택한 여러 EndpointSlice 오브젝트가 있을 수 있으며, 이 오브젝트는 전체 엔드포인트 세트를 생성하기 위해 결합되어야 합니다.
- 유형
-
object
- 필수 항목
-
addressType
-
끝점
-
11.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| addressType은 이 EndpointSlice에서 전송하는 주소 유형을 지정합니다. 이 슬라이스의 모든 주소는 동일한 유형이어야 합니다. 생성 후에는 이 필드를 변경할 수 없습니다. 현재 지원되는 주소 유형은 * IPv4: IPv4 주소를 나타냅니다. * IPv6: IPv6 주소를 나타냅니다. * FQDN: 정규화된 도메인 이름을 나타냅니다.
가능한 열거 값: - |
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| 끝점은 이 슬라이스의 고유한 끝점 목록입니다. 각 슬라이스에는 최대 1000개의 끝점이 포함될 수 있습니다. |
|
| 엔드포인트는 서비스를 구현하는 단일 논리 "backend"를 나타냅니다. |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. | |
|
| ports는 이 슬라이스의 각 끝점에 의해 노출되는 네트워크 포트 목록을 지정합니다. 각 포트에는 고유한 이름이 있어야 합니다. 포트가 비어 있으면 정의된 포트가 없음을 나타냅니다. port가 nil 포트 값으로 정의되면 "모든 포트"를 나타냅니다. 각 슬라이스에는 최대 100개의 포트가 포함될 수 있습니다. |
|
| EndpointPort는 EndpointSlice에서 사용하는 포트를 나타냅니다. |
11.1.1. .endpoints
- 설명
- 끝점은 이 슬라이스의 고유한 끝점 목록입니다. 각 슬라이스에는 최대 1000개의 끝점이 포함될 수 있습니다.
- 유형
-
array
11.1.2. .endpoints[]
- 설명
- 엔드포인트는 서비스를 구현하는 단일 논리 "backend"를 나타냅니다.
- 유형
-
object
- 필수 항목
-
주소
-
속성 | 유형 | 설명 |
---|---|---|
|
| 이 끝점의 주소입니다. 이 필드의 내용은 해당 EndpointSlice addressType 필드에 따라 해석됩니다. 소비자는 자체 기능 컨텍스트에서 다양한 유형의 주소를 처리해야 합니다. 여기에는 하나 이상의 주소가 포함되어야 하지만 100을 초과해서는 안 됩니다. 이러한 모든 것은 번거로 간주되며 클라이언트는 첫 번째 요소 만 사용하도록 선택할 수 있습니다. 참조: https://issue.k8s.io/106267 |
|
| EndpointConditions는 끝점의 현재 상태를 나타냅니다. |
|
| deprecatedTopology에는 v1beta1 API의 토폴로지 정보 부분이 포함되어 있습니다. 이 필드는 더 이상 사용되지 않으며 v1beta1 API가 제거될 때 ( kubernetes v1.24)보다 빨리 제거됩니다. 이 필드는 값을 보유할 수 있지만 v1 API를 통해 쓸 수 없으며 쓰기 시도는 자동으로 무시됩니다. 토폴로지 정보는 대신 zone 및 nodeName 필드에서 찾을 수 있습니다. |
|
| EndpointHints는 끝점을 사용하는 방법을 설명하는 힌트를 제공합니다. |
|
| 이 끝점의 호스트 이름입니다. 엔드포인트 소비자는 이 필드를 사용하여 끝점을 서로 구분할 수 있습니다(예: DNS 이름). 동일한 호스트 이름을 사용하는 끝점이 여러 개 있는 것으로 간주해야 합니다(예: DNS의 여러 A 값). 소문자여야 하며 DNS 라벨(RFC 1123) 검증을 통과해야 합니다. |
|
| nodename은 이 엔드포인트를 호스팅하는 노드의 이름을 나타냅니다. 노드에 로컬 끝점을 결정하는 데 사용할 수 있습니다. |
| targetRef는 이 엔드포인트를 나타내는 Kubernetes 오브젝트에 대한 참조입니다. | |
|
| zone은 이 엔드포인트가 존재하는 영역의 이름입니다. |
11.1.3. .endpoints[].conditions
- 설명
- EndpointConditions는 끝점의 현재 상태를 나타냅니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| Ready는 엔드포인트를 관리하는 시스템에 따라 이 엔드포인트가 트래픽을 수신할 준비가 되었음을 나타냅니다. nil 값은 알 수 없는 상태를 나타냅니다. 대부분의 경우 소비자는 이 unknown 상태를 ready로 해석해야 합니다. 호환성을 위해 일반 준비 동작이 명시적으로 재정의되는 경우(예: 연결된 서비스에서 publishNotReadyAddresses 플래그를 설정 하는 경우)를 제외하고 끝점 종료에 대한 "true"는 절대 없어야 합니다. |
|
| 서빙은 끝점의 종료 상태에 관계없이 설정되어 있다는 점을 제외하고는 준비와 동일합니다. 이 조건은 종료 중인 준비된 끝점에 대해 true로 설정해야 합니다. nil인 경우 소비자는 ready 상태로 지연해야 합니다. |
|
| 종료는 이 끝점이 종료되었음을 나타냅니다. nil 값은 알 수 없는 상태를 나타냅니다. 소비자는 이 알 수 없는 상태를 해석하여 끝점이 종료되지 않음을 의미합니다. |
11.1.4. .endpoints[].hints
- 설명
- EndpointHints는 끝점을 사용하는 방법을 설명하는 힌트를 제공합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| forZones는 토폴로지 인식 라우팅을 활성화하기 위해 이 끝점이 사용해야 하는 영역을 나타냅니다. |
|
| ForZone은 이 엔드포인트를 사용해야 하는 영역에 대한 정보를 제공합니다. |
11.1.5. .endpoints[].hints.forZones
- 설명
- forZones는 토폴로지 인식 라우팅을 활성화하기 위해 이 끝점이 사용해야 하는 영역을 나타냅니다.
- 유형
-
array
11.1.6. .endpoints[].hints.forZones[]
- 설명
- ForZone은 이 엔드포인트를 사용해야 하는 영역에 대한 정보를 제공합니다.
- 유형
-
object
- 필수 항목
-
name
-
속성 | 유형 | 설명 |
---|---|---|
|
| name은 영역의 이름을 나타냅니다. |
11.1.7. .ports
- 설명
- ports는 이 슬라이스의 각 끝점에 의해 노출되는 네트워크 포트 목록을 지정합니다. 각 포트에는 고유한 이름이 있어야 합니다. 포트가 비어 있으면 정의된 포트가 없음을 나타냅니다. port가 nil 포트 값으로 정의되면 "모든 포트"를 나타냅니다. 각 슬라이스에는 최대 100개의 포트가 포함될 수 있습니다.
- 유형
-
array
11.1.8. .ports[]
- 설명
- EndpointPort는 EndpointSlice에서 사용하는 포트를 나타냅니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 이 포트의 애플리케이션 프로토콜입니다. 이는 구현이 이해할 수 있는 프로토콜에 대해 보다 풍부한 동작을 제공하기 위한 힌트로 사용됩니다. 이 필드는 표준 Kubernetes 라벨 구문을 따릅니다. 유효한 값은 다음 중 하나입니다. * UN-prefixed 프로토콜 이름 - IANA 표준 서비스 이름(RFC-6335 및 https://www.iana.org/assignments/service-names)용으로 예약되어 있습니다. * Kubernetes 정의 접두사 이름: * 'kubernetes.io/h2c' - https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws'에 설명된 대로 https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws'에 설명된 대로 일반 텍스트에 설명된 대로 일반 텍스트에 설명된 대로 일반 텍스트보다 일반 텍스트보다 HTTP/2 사전 지식 - https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-에 설명된 대로 TLS를 통한 WebSocket https://www.rfc-editor.org/rfc/rfc6455 https://www.rfc-editor.org/rfc/rfc6455 * 다른 프로토콜은 mycompany.com/my-custom-protocol과 같은 구현 정의 접두사 이름을 사용해야 합니다. |
|
| name은 이 포트의 이름을 나타냅니다. EndpointSlice의 모든 포트에는 고유한 이름이 있어야 합니다. EndpointSlice가 Kubernetes 서비스에서 파생된 경우 이는 Service.ports[].name에 해당합니다. name은 빈 문자열이거나 DNS_LABEL 유효성 검사를 전달해야 합니다. * 길이는 63자 이하여야 합니다. * 소문자 영숫자 또는 '-'로 구성되어야 합니다. * 영숫자 문자로 시작하고 끝나야 합니다. 기본값은 빈 문자열입니다. |
|
| port는 끝점의 포트 번호를 나타냅니다. 이 값을 지정하지 않으면 포트가 제한되지 않으며 특정 소비자의 컨텍스트에서 해석되어야 합니다. |
|
| protocol은 이 포트의 IP 프로토콜을 나타냅니다. UDP, TCP 또는 SCTP여야 합니다. 기본값은 TCP입니다.
가능한 열거 값: - |