해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.
⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.
다양한 ingress 컨트롤러에는 작동 방식을 사용자 지정하는 데 사용할 수 있는 다양한 옵션이 있습니다. NGINX Ingress 컨트롤러에는 많은 옵션이 있으며 여기에서 볼 수 있습니다. lab에서 사용할 이러한 옵션 중 하나를 설명하고 싶습니다. Rewrite target 옵션입니다.
watch 앱은 비디오 스트리밍 웹페이지를 http://<watch-service>:<port>/ 에서 보여줍니다.
wear 앱은 의류 웹페이지를 http://<wear-service>:<port>/에서 보여줍니다.
아래를 달성하려면 Ingress를 구성해야 합니다. 사용자가 왼쪽의 URL을 방문하면 그 요청은 내부적으로 오른쪽의 URL로 전달되어야 합니다. /watch 및 /wear URL path는 백엔드의 적절한 애플리케이션으로 사용자를 전달할 수 있도록 인그레스 컨트롤러에서 구성하는 것입니다. 애플리케이션에는 이 URL/path가 구성되어 있지 않습니다.
http://<ingress-service>:<ingress-port>/watch --> http://<watch-service>:<port>/
http://<ingress-service>:<ingress-port>/wear --> http://<wear-service>:<port>/
rewrite-target 옵션이 없으면 다음과 같이 target URL 끝에 watch and wear를 표시합니다.
http://<ingress-service>:<ingress-port>/watch --> http://<watch-service>:<port>/watch
http://<ingress-service>:<ingress-port>/wear --> http://<wear-service>:<port>/wear
target 애플리케이션이 /watch 또는 /wear path로 구성되지 않았습니다. 이들은 목적에 맞게 특별히 제작된 서로 다른 애플리케이션이므로 URL에서 /watch 또는 /wear를 기대하지 않습니다. 따라서 요청이 실패하고 404 not found error가 발생합니다.
요청이 wath 또는 wear 애플리케이션에 전달될 때 URL을 "ReWrite"하려는 문제를 해결하기 위해, 사용자가 입력한 것과 동일한 path를 전달하고 싶지 않기 때문에 rewrite-target 옵션을 지정합니다. 이 경우 rules->http->path->path 아래에 있는 모든 항목을 rewrite-target의 값으로 대체하여 URL을 다시 작성합니다. 이 경우에는 /pay입니다. 검색 및 바꾸기 기능과 동일하게 작동합니다.
For example: replace(path, rewrite-target)
In our case: replace("/path","/")
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: critical-space
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /pay
backend:
serviceName: pay-service
servicePort: 8282
또다른 예는 여기에서 볼 수 있습니다. 이것은 다음과 같습니다.
replace("/something(/|$)(.*)", "/$2")
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something(/|$)(.*)
'MLOps > Doker & Kubernetes' 카테고리의 다른 글
Udemy CKA 강의 정리 234: Design a Kubernetes Cluster (0) | 2023.01.27 |
---|---|
Udemy CKA 강의 정리 233: Download Presentation Deck (0) | 2023.01.27 |
Udemy CKA 강의 정리 227: Article: Ingress (0) | 2023.01.26 |
Udemy CKA 강의 정리 226: Ingress (0) | 2023.01.26 |
Udemy CKA 강의 정리 223: CoreDNS in kubernetes (1) | 2023.01.25 |
댓글