其他分享
首页 > 其他分享> > kserve:如何根据url将请求路由到k8s svc中?

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