5.6. Ingress 및 Istio 라우팅 확인
Istio를 Ingress 계층으로 사용하면 Ingress 및 Istio 라우팅에 문제가 있습니다. OpenShift CLI(oc)를 사용하여 세부 정보를 확인할 수 있습니다.
프로세스
다음 명령을 실행하여 모든 Ingress 리소스 및 해당 레이블을 나열합니다.
oc get ingresses.networking.internal.knative.dev -o=custom-columns='NAME:.metadata.name,LABELS:.metadata.labels'
$ oc get ingresses.networking.internal.knative.dev -o=custom-columns='NAME:.metadata.name,LABELS:.metadata.labels'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME LABELS helloworld-go map[serving.knative.dev/route:helloworld-go serving.knative.dev/routeNamespace:default serving.knative.dev/service:helloworld-go]
NAME LABELS helloworld-go map[serving.knative.dev/route:helloworld-go serving.knative.dev/routeNamespace:default serving.knative.dev/service:helloworld-go]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 출력에서
serving.knative.dev/route및serving.knative.dev/routeNamespace는 Ingress 리소스가 있는 경로를 나타냅니다.경로및 Ingress가 나열되어야 합니다.Ingress가 없는 경우 경로 컨트롤러는
경로또는Service오브젝트에서 대상으로 하는Revision오브젝트가 준비되지 않은 것으로 가정합니다. 다른 디버깅 절차를 진행하여버전준비 상태를 진단합니다.Ingress가 나열된 경우 다음 명령을 실행하여 경로에 대해 생성된
ClusterIngress오브젝트를 검사합니다.oc get ingresses.networking.internal.knative.dev <ingress_name> --output yaml
$ oc get ingresses.networking.internal.knative.dev <ingress_name> --output yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력의 status 섹션에서
type=Ready조건이True인 경우 Ingress가 올바르게 작동합니다. 그렇지 않으면 출력에 오류 메시지가 포함됩니다.Ingress의 상태가
Ready이면 해당VirtualService오브젝트가 있습니다. 다음 명령을 실행하여VirtualService오브젝트의 구성을 확인합니다.oc get virtualservice -l networking.internal.knative.dev/ingress=<ingress_name> -n <ingress_namespace> --output yaml
$ oc get virtualservice -l networking.internal.knative.dev/ingress=<ingress_name> -n <ingress_namespace> --output yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualService오브젝트의 네트워크 구성이Ingress및Route오브젝트의 네트워크 구성과 일치해야 합니다.VirtualService오브젝트가Status필드를 노출하지 않기 때문에 설정이 전파될 때까지 기다려야 할 수 있습니다.