9장. Ingress [networking.k8s.io/v1]
- 설명
- Ingress는 인바운드 연결이 백엔드에서 정의한 엔드포인트에 도달할 수 있도록 하는 규칙 컬렉션입니다. 외부에서 접근할 수 있는 URL, 로드 밸런싱 트래픽, SSL 종료, 이름 기반 가상 호스팅 등을 제공하도록 Ingress를 구성할 수 있습니다.
- 유형
-
object
9.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 | |
|
| IngressSpec은 사용자가 원하는 Ingress를 설명합니다. |
|
| IngressStatus는 Ingress의 현재 상태를 설명합니다. |
9.1.1. .spec
- 설명
- IngressSpec은 사용자가 원하는 Ingress를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| IngressBackend는 지정된 서비스 및 포트의 모든 끝점을 설명합니다. |
|
|
IngressClassName은 IngressClass 클러스터 리소스의 이름입니다. Ingress 컨트롤러 구현에서는 이 필드를 사용하여 전송 연결(controller |
|
| Ingress를 구성하는 데 사용되는 호스트 규칙 목록입니다. 지정되지 않았거나 규칙이 일치하지 않으면 모든 트래픽이 기본 백엔드로 전송됩니다. |
|
| IngressRule은 지정된 호스트의 경로를 관련 백엔드 서비스에 매핑하는 규칙을 나타냅니다. 들어오는 요청은 먼저 호스트 일치에 대해 평가된 다음 일치하는 IngressRuleValue와 연결된 백엔드로 라우팅됩니다. |
|
| TLS 구성입니다. 현재 Ingress는 단일 TLS 포트 443만 지원합니다. 이 목록의 여러 멤버가 다른 호스트를 지정하는 경우 수신 컨트롤러가 SNI를 지원하는 경우 SNI TLS 확장을 통해 지정된 호스트 이름에 따라 동일한 포트에서 멀티플렉싱됩니다. |
|
| IngressTLS는 Ingress와 관련된 전송 계층 보안을 설명합니다. |
9.1.2. .spec.defaultBackend
- 설명
- IngressBackend는 지정된 서비스 및 포트의 모든 끝점을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
| resource는 Ingress 오브젝트의 네임스페이스에 있는 다른 Kubernetes 리소스에 대한 ObjectRef입니다. 리소스가 지정된 경우 service.Name 및 service.Port를 지정할 수 없습니다. 이는 "Service"와 함께 사용할 수 있는 설정입니다. | |
|
| IngressServiceBackend는 Kubernetes 서비스를 백엔드로 참조합니다. |
9.1.3. .spec.defaultBackend.service
- 설명
- IngressServiceBackend는 Kubernetes 서비스를 백엔드로 참조합니다.
- 유형
-
object
- 필수 항목
-
name
-
속성 | 유형 | 설명 |
---|---|---|
|
| name은 참조된 서비스입니다. 서비스는 Ingress 오브젝트와 동일한 네임스페이스에 있어야 합니다. |
|
| ServiceBackendPort는 참조 중인 서비스 포트입니다. |
9.1.4. .spec.defaultBackend.service.port
- 설명
- ServiceBackendPort는 참조 중인 서비스 포트입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| name은 서비스에 있는 포트의 이름입니다. 이는 "Number"와 함께 상호 배타적인 설정입니다. |
|
| number는 서비스의 숫자 포트 번호(예: 80)입니다. 이는 "Name"과 함께 사용할 수 있는 설정입니다. |
9.1.5. .spec.rules
- 설명
- Ingress를 구성하는 데 사용되는 호스트 규칙 목록입니다. 지정되지 않았거나 규칙이 일치하지 않으면 모든 트래픽이 기본 백엔드로 전송됩니다.
- 유형
-
array
9.1.6. .spec.rules[]
- 설명
- IngressRule은 지정된 호스트의 경로를 관련 백엔드 서비스에 매핑하는 규칙을 나타냅니다. 들어오는 요청은 먼저 호스트 일치에 대해 평가된 다음 일치하는 IngressRuleValue와 연결된 백엔드로 라우팅됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
|
host는 RFC 3986에 정의된 네트워크 호스트의 정규화된 도메인 이름입니다. RFC 3986: 1에 정의된 URI의 "호스트" 부분에서의 다음 편차에 유의하십시오. IP는 허용되지 않습니다. 현재 IngressRuleValue는 상위 Ingress 사양의 IP에만 적용할 수 있습니다. 2. 포트가 허용되지 않기 때문에 구분 기호는 보장되지 않습니다. 호스트는 네트워크 호스트의 종료점(예: "foo.bar.com") 또는 "wildcard"(예: ".foo.foo.com")로 접두사가 지정된 도메인 이름 없이 도메인 이름인 "precise"일 수 있습니다. 와일드카드 문자 ''는 그 자체로 첫 번째 DNS 레이블로 표시되어야 하며 단일 레이블과 일치해야 합니다. 와일드카드 레이블 자체(예: Host == "*")를 포함할 수 없습니다. 요청은 다음과 같은 방식으로 Host 필드와 일치됩니다. 1. Host가 정확하면 http 호스트 헤더가 Host와 같은 경우 요청이 이 규칙과 일치합니다. 2. Host가 와일드카드인 경우 http 호스트 헤더가 와일드카드 규칙의 접미사(첫 번째 레이블 제거)와 같은 경우 요청은 이 규칙과 일치합니다. |
|
|
HTTPIngressRuleValue는 백엔드를 가리키는 http 선택기 목록입니다. 예제에서 http://<host>/<path>?<searchpart > |
9.1.7. .spec.rules[].http
- 설명
-
HTTPIngressRuleValue는 백엔드를 가리키는 http 선택기 목록입니다. 예제에서 http://<host>/<path>?<searchpart >
URL의 일부가 RFC 3986에 해당하는 백엔드에서 이 리소스는 마지막 '/' 이후의 모든 항목과 일치시키는 데 사용됩니다. - 유형
-
object
- 필수 항목
-
경로
-
속성 | 유형 | 설명 |
---|---|---|
|
| 요청을 백엔드에 매핑하는 경로 컬렉션입니다. |
|
| HTTPIngressPath는 경로를 백엔드와 연결합니다. 경로와 일치하는 들어오는 URL은 백엔드로 전달됩니다. |
9.1.8. .spec.rules[].http.paths
- 설명
- 요청을 백엔드에 매핑하는 경로 컬렉션입니다.
- 유형
-
array
9.1.9. .spec.rules[].http.paths[]
- 설명
- HTTPIngressPath는 경로를 백엔드와 연결합니다. 경로와 일치하는 들어오는 URL은 백엔드로 전달됩니다.
- 유형
-
object
- 필수 항목
-
pathType
-
백엔드
-
속성 | 유형 | 설명 |
---|---|---|
|
| IngressBackend는 지정된 서비스 및 포트의 모든 끝점을 설명합니다. |
|
| 경로는 들어오는 요청 경로와 일치합니다. 현재 RFC 3986에서 정의한 URL의 기존 "path" 부분에서 허용되지 않은 문자를 포함할 수 있습니다. 경로는 '/'로 시작해야 하며 값 "Exact" 또는 "Prefix"와 함께 PathType을 사용할 때 존재해야 합니다. |
|
| pathType은 일치하는 경로의 해석을 결정합니다. pathType은 다음 값 중 하나일 수 있습니다. * Exact: URL 경로가 정확히 일치합니다. * 접두사: '/'로 분할되는 URL 경로 접두사에 따라 일치합니다. 일치는 요소별로 경로 요소에 따라 수행됩니다. 경로 요소는 경로의 레이블 목록을 '/' 구분 기호로 나눈 값입니다. 요청은 모든 p가 요청 경로 p의 element-wise 접두사인 경우 경로 p에 대한 일치입니다. 경로의 마지막 요소가 요청 경로의 마지막 요소의 하위 요소인 경우 일치하는 항목이 아닙니다(예: /foo/bar/baz와 /foo/bar/baz와 일치하지만 /foo/barbaz와 일치하지 않음). * ImplementationSpecific: 경로 일치의 상호 운용성은 IngressClass에 따라 다릅니다. 구현은 이를 별도의 PathType으로 처리하거나 Prefix 또는 Exact 경로 유형과 동일하게 처리할 수 있습니다. 구현은 모든 경로 유형을 지원하는 데 필요합니다. |
9.1.10. .spec.rules[].http.paths[].backend
- 설명
- IngressBackend는 지정된 서비스 및 포트의 모든 끝점을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
| resource는 Ingress 오브젝트의 네임스페이스에 있는 다른 Kubernetes 리소스에 대한 ObjectRef입니다. 리소스가 지정된 경우 service.Name 및 service.Port를 지정할 수 없습니다. 이는 "Service"와 함께 사용할 수 있는 설정입니다. | |
|
| IngressServiceBackend는 Kubernetes 서비스를 백엔드로 참조합니다. |
9.1.11. .spec.rules[].http.paths[].backend.service
- 설명
- IngressServiceBackend는 Kubernetes 서비스를 백엔드로 참조합니다.
- 유형
-
object
- 필수 항목
-
name
-
속성 | 유형 | 설명 |
---|---|---|
|
| name은 참조된 서비스입니다. 서비스는 Ingress 오브젝트와 동일한 네임스페이스에 있어야 합니다. |
|
| ServiceBackendPort는 참조 중인 서비스 포트입니다. |
9.1.12. .spec.rules[].http.paths[].backend.service.port
- 설명
- ServiceBackendPort는 참조 중인 서비스 포트입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| name은 서비스에 있는 포트의 이름입니다. 이는 "Number"와 함께 상호 배타적인 설정입니다. |
|
| number는 서비스의 숫자 포트 번호(예: 80)입니다. 이는 "Name"과 함께 사용할 수 있는 설정입니다. |
9.1.13. .spec.tls
- 설명
- TLS 구성입니다. 현재 Ingress는 단일 TLS 포트 443만 지원합니다. 이 목록의 여러 멤버가 다른 호스트를 지정하는 경우 수신 컨트롤러가 SNI를 지원하는 경우 SNI TLS 확장을 통해 지정된 호스트 이름에 따라 동일한 포트에서 멀티플렉싱됩니다.
- 유형
-
array
9.1.14. .spec.tls[]
- 설명
- IngressTLS는 Ingress와 관련된 전송 계층 보안을 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 호스트는 TLS 인증서에 포함된 호스트 목록입니다. 이 목록의 값은 tlsSecret에 사용된 name/s와 일치해야 합니다. 지정되지 않은 경우 기본값은 loadbalancer 컨트롤러의 와일드카드 호스트 설정을 통해 이 Ingress를 이행합니다. |
|
| secretName은 포트 443에서 TLS 트래픽을 종료하는 데 사용되는 시크릿의 이름입니다. SNI 호스트 이름만으로 TLS 라우팅을 허용하는 필드는 선택 사항입니다. 리스너의 SNI 호스트가 IngressRule에서 사용하는 "Host" 헤더 필드와 충돌하면 SNI 호스트가 종료에 사용되며 Host 헤더의 값이 라우팅에 사용됩니다. |
9.1.15. .status
- 설명
- IngressStatus는 Ingress의 현재 상태를 설명합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| IngressLoadBalancerStatus는 로드 밸런서의 상태를 나타냅니다. |
9.1.16. .status.loadBalancer
- 설명
- IngressLoadBalancerStatus는 로드 밸런서의 상태를 나타냅니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| Ingress는 로드 밸런서에 대한 수신 지점을 포함하는 목록입니다. |
|
| IngressLoadBalancerIngress는 로드 밸런서 인그레스 지점의 상태를 나타냅니다. |
9.1.17. .status.loadBalancer.ingress
- 설명
- Ingress는 로드 밸런서에 대한 수신 지점을 포함하는 목록입니다.
- 유형
-
array
9.1.18. .status.loadBalancer.ingress[]
- 설명
- IngressLoadBalancerIngress는 로드 밸런서 인그레스 지점의 상태를 나타냅니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 호스트 이름은 DNS 기반 로드 밸런서 인그레스 지점에 대해 설정됩니다. |
|
| IP는 IP 기반 로드 밸런서 인그레스 지점에 대해 설정됩니다. |
|
| 포트는 이 LoadBalancer에서 노출하는 포트에 대한 정보를 제공합니다. |
|
| IngressPortStatus는 서비스 포트의 오류 조건을 나타냅니다. |
9.1.19. .status.loadBalancer.ingress[].ports
- 설명
- 포트는 이 LoadBalancer에서 노출하는 포트에 대한 정보를 제공합니다.
- 유형
-
array
9.1.20. .status.loadBalancer.ingress[].ports[]
- 설명
- IngressPortStatus는 서비스 포트의 오류 조건을 나타냅니다.
- 유형
-
object
- 필수 항목
-
port
-
protocol
-
속성 | 유형 | 설명 |
---|---|---|
|
| Error is to record the problem with the service port The format of the error should comply with the following rules: - built-in error values should be specified in this file and those must use CamelCase name - cloud provider specific error values must have names that comply with the format foo.example.com/CamelCase. |
|
| port는 Ingress 포트의 포트 번호입니다. |
|
| protocol은 Ingress 포트의 프로토콜입니다. 지원되는 값은 "TCP", "UDP", "SCTP"입니다.
가능한 열거 값: - |