10장. 끝점 [v1]
- 설명
끝점은 실제 서비스를 구현하는 끝점의 컬렉션입니다. 예제:
Name: "mysvc", Subsets: [ { Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }, { Addresses: [{"ip": "10.10.3.3"}], Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}] }, ]
- 유형
-
object
10.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 모든 끝점의 세트는 모든 하위 집합의 결합입니다. 주소는 공유하는 IP에 따라 하위 집합에 배치됩니다. 여러 포트가 있는 단일 주소이며, 그 중 일부는 준비되었으며 그 중 일부는 (다른 컨테이너에서 제공되기 때문에) 다른 포트의 다른 하위 집합에 주소가 표시됩니다. 동일한 하위 집합의 addresses 및 NotReadyAddresses에 주소가 표시되지 않습니다. 서비스를 구성하는 주소 및 포트 세트입니다. |
|
| EndpointSubset은 일반적인 포트 세트가 있는 주소 그룹입니다. 확장된 엔드 포인트 세트는 addresses x Ports의 카테시안 제품입니다. 예를 들면 다음과 같습니다. { addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "b", "port": 309}] } 결과 끝점 세트는 다음과 같이 볼 수 있습니다. A: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ] |
10.1.1. .subsets
- 설명
- 모든 끝점의 세트는 모든 하위 집합의 결합입니다. 주소는 공유하는 IP에 따라 하위 집합에 배치됩니다. 여러 포트가 있는 단일 주소이며, 그 중 일부는 준비되었으며 그 중 일부는 (다른 컨테이너에서 제공되기 때문에) 다른 포트의 다른 하위 집합에 주소가 표시됩니다. 동일한 하위 집합의 addresses 및 NotReadyAddresses에 주소가 표시되지 않습니다. 서비스를 구성하는 주소 및 포트 세트입니다.
- 유형
-
array
10.1.2. .subsets[]
- 설명
EndpointSubset은 일반적인 포트 세트가 있는 주소 그룹입니다. 확장된 엔드 포인트 세트는 addresses x Ports의 카테시안 제품입니다. 예를 들면 다음과 같습니다.
{ Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }
결과 끝점 세트는 다음과 같이 볼 수 있습니다.
a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| ready으로 표시된 관련 포트를 제공하는 IP 주소입니다. 이러한 끝점은 로드 밸런서 및 클라이언트가 사용할 수 있는 안전한 것으로 간주되어야 합니다. |
|
| EndpointAddress는 단일 IP 주소를 설명하는 튜플입니다. |
|
| 관련 포트를 제공하지만 아직 시작을 완료하지 않았거나 최근에 준비 상태 점검에 실패했거나 최근에 활성 검사에 실패했기 때문에 현재 준비 상태로 표시되지 않은 IP 주소입니다. |
|
| EndpointAddress는 단일 IP 주소를 설명하는 튜플입니다. |
|
| 관련 IP 주소에서 사용할 수 있는 포트 번호입니다. |
|
| EndpointPort는 단일 포트를 설명하는 튜플입니다. |
10.1.3. .subsets[].addresses
- 설명
- ready으로 표시된 관련 포트를 제공하는 IP 주소입니다. 이러한 끝점은 로드 밸런서 및 클라이언트가 사용할 수 있는 안전한 것으로 간주되어야 합니다.
- 유형
-
array
10.1.4. .subsets[].addresses[]
- 설명
- EndpointAddress는 단일 IP 주소를 설명하는 튜플입니다.
- 유형
-
object
- 필수 항목
-
ip
-
속성 | 유형 | 설명 |
---|---|---|
|
| 이 끝점의 호스트 이름 |
|
| 이 끝점의 IP입니다. 루프백(127.0.0.0/8 또는 ::1), 링크-로컬(169.254.0.0/16 또는 fe80::/10) 또는 링크-로컬 멀티 캐스트(224.0.0.0/24 또는 ff02::/16)가 아닐 수 있습니다. |
|
| 선택 사항: 이 끝점을 호스팅하는 노드입니다. 노드에 로컬 끝점을 결정하는 데 사용할 수 있습니다. |
|
| ObjectReference에는 참조된 오브젝트를 검사하거나 수정할 수 있는 충분한 정보가 포함되어 있습니다. |
10.1.5. .subsets[].addresses[].targetRef
- 설명
- ObjectReference에는 참조된 오브젝트를 검사하거나 수정할 수 있는 충분한 정보가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 참조의 API 버전입니다. |
|
| 전체 오브젝트 대신 오브젝트 조각을 참조하는 경우 이 문자열에는 desiredState.manifest.containers[2]와 같은 유효한 JSON/Go 필드 액세스 문이 포함되어야 합니다. 예를 들어 오브젝트 참조가 Pod 내의 컨테이너에 대한 경우 "spec.containers{name}"과 같은 값을 사용합니다(여기서 "name"은 이벤트를 트리거한 컨테이너 이름을 참조하거나 컨테이너 이름이 "spec.containers[2]"이 Pod에서 인덱스 2가 있는 컨테이너를 참조하는 경우). 이 구문은 오브젝트의 일부를 참조하는 잘 정의된 방법을 사용하는 경우에만 선택됩니다. |
|
| 일종의 추천입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 추천자의 이름입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 참조의 네임스페이스입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 이 참조가 수행되는 특정 resourceVersion(있는 경우). 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 참조의 UID입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
10.1.6. .subsets[].notReadyAddresses
- 설명
- 관련 포트를 제공하지만 아직 시작을 완료하지 않았거나 최근에 준비 상태 점검에 실패했거나 최근에 활성 검사에 실패했기 때문에 현재 준비 상태로 표시되지 않은 IP 주소입니다.
- 유형
-
array
10.1.7. .subsets[].notReadyAddresses[]
- 설명
- EndpointAddress는 단일 IP 주소를 설명하는 튜플입니다.
- 유형
-
object
- 필수 항목
-
ip
-
속성 | 유형 | 설명 |
---|---|---|
|
| 이 끝점의 호스트 이름 |
|
| 이 끝점의 IP입니다. 루프백(127.0.0.0/8 또는 ::1), 링크-로컬(169.254.0.0/16 또는 fe80::/10) 또는 링크-로컬 멀티 캐스트(224.0.0.0/24 또는 ff02::/16)가 아닐 수 있습니다. |
|
| 선택 사항: 이 끝점을 호스팅하는 노드입니다. 노드에 로컬 끝점을 결정하는 데 사용할 수 있습니다. |
|
| ObjectReference에는 참조된 오브젝트를 검사하거나 수정할 수 있는 충분한 정보가 포함되어 있습니다. |
10.1.8. .subsets[].notReadyAddresses[].targetRef
- 설명
- ObjectReference에는 참조된 오브젝트를 검사하거나 수정할 수 있는 충분한 정보가 포함되어 있습니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 참조의 API 버전입니다. |
|
| 전체 오브젝트 대신 오브젝트 조각을 참조하는 경우 이 문자열에는 desiredState.manifest.containers[2]와 같은 유효한 JSON/Go 필드 액세스 문이 포함되어야 합니다. 예를 들어 오브젝트 참조가 Pod 내의 컨테이너에 대한 경우 "spec.containers{name}"과 같은 값을 사용합니다(여기서 "name"은 이벤트를 트리거한 컨테이너 이름을 참조하거나 컨테이너 이름이 "spec.containers[2]"이 Pod에서 인덱스 2가 있는 컨테이너를 참조하는 경우). 이 구문은 오브젝트의 일부를 참조하는 잘 정의된 방법을 사용하는 경우에만 선택됩니다. |
|
| 일종의 추천입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 추천자의 이름입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 참조의 네임스페이스입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 이 참조가 수행되는 특정 resourceVersion(있는 경우). 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 참조의 UID입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
10.1.9. .subsets[].ports
- 설명
- 관련 IP 주소에서 사용할 수 있는 포트 번호입니다.
- 유형
-
array
10.1.10. .subsets[].ports[]
- 설명
- EndpointPort는 단일 포트를 설명하는 튜플입니다.
- 유형
-
object
- 필수 항목
-
port
-
속성 | 유형 | 설명 |
---|---|---|
|
| 이 포트의 애플리케이션 프로토콜입니다. 이는 구현이 이해할 수 있는 프로토콜에 대해 보다 풍부한 동작을 제공하기 위한 힌트로 사용됩니다. 이 필드는 표준 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과 같은 구현 정의 접두사 이름을 사용해야 합니다. |
|
| 이 포트의 이름입니다. 이는 해당 ServicePort의 'name' 필드와 일치해야 합니다. DNS_LABEL이어야 합니다. 하나의 포트가 정의된 경우에만 선택 사항입니다. |
|
| 끝점의 포트 번호입니다. |
|
| 이 포트의 IP 프로토콜입니다. UDP, TCP 또는 SCTP여야 합니다. 기본값은 TCP입니다.
가능한 열거 값: - |