kserve:如何根据url将请求路由到k8s svc中?
作者:互联网
当个kserve发送一个请求时,请求是如何到达pod中的呢?
首先看一个InferenceService拥有的resource:
1、拥有的k8s service:
2、拥有的istio的virtual service:
接下来看
1、发送请求:curl -v -H ""c1.test.10.166.15.29.sslip.io" 10.166.15.29:80/v1/models/custom-sample:predict
2、到达gateway:
3、到达virtual service:
istio-ingressgateway-86759d4f89-82xnk的日志:
3、到达knative-local-gateway.istio-system.svc.cluster.local,
service通过selector和pod建立关联,
k8s会根据service关联到pod的podIP信息组合成一个endpoint
istio-ingressgateway-86759d4f89-82xnk是service关联到的pod,如果pod没有时,endpoints的ENDPOINTS列是<None>
istio-ingressgateway-86759d4f89-82xnk的日志:
4、到达c1-predictor-default:
istio-ingressgateway-86759d4f89-82xnk的日志:
4、到达k8s service c1-predictor-default-00001:
这个svc指向knative的activator pod:
activator根据header中的knative-serving-namespace和knative-serving-revision来将pod拉起来,然后把请求到对应的c1-predictor-default-00001-private
istio-ingressgateway-86759d4f89-82xnk的日志:
6、请求到对应的c1-predictor-default-00001-private:
activator把pod拉起来后,endpoints有值:
pod:
标签:ingressgateway,kserve,service,url,82xnk,svc,istio,pod,c1 来源: https://www.cnblogs.com/c-rex/p/16225195.html