Learn more about the Ingress controllers that Seldon Enterprise Platform supports.
istio-seldon-gateway.yaml file and apply the configuration:ISTIO_INGRESS=$(kubectl get svc -n istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
ISTIO_INGRESS+=$(kubectl get svc -n istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
echo "Seldon Enterprise Platform: http://$ISTIO_INGRESS/seldon-deploy/"
kubectl apply -f seldon-mesh-vs.yamlvirtualservice.networking.istio.io/seldon-mesh createdkubectl rollout status deployment/seldon-enterprise-seldon-deploy -n seldon-systemdeployment "seldon-enterprise-seldon-deploy" successfully rolled outcurl -L https://istio.io/downloadIstio | sh -
cd istio-<version>
export PATH=$PWD/bin:$PATHistioctl install --set profile=default -ykubectl get svc istio-ingressgateway -n istio-system apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
namespace: istio-system
spec:
selector:
istio: ingressgateway # Use Istio's default ingress gateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"kubectl get svc -n seldonmlserver-0 ClusterIP None <none> 9000/TCP,9500/TCP,9005/TCP 43m
seldon-mesh LoadBalancer 34.118.225.130 34.90.213.15 80:32228/TCP,9003:31265/TCP 45m
seldon-pipelinegateway ClusterIP None <none> 9010/TCP,9011/TCP 45m
seldon-scheduler LoadBalancer 34.118.225.138 35.204.34.162 9002:32099/TCP,9004:32100/TCP,9044:30342/TCP,9005:30473/TCP,9055:32732/TCP,9008:32716/TCP 45m
triton-0 ClusterIP None <none> 9000/TCP,9500/TCP,9005/TCP apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: seldon-mesh
namespace: seldon
spec:
gateways:
- istio-system/seldon-gateway
hosts:
- "*"
http:
- name: "data-plane-seldon"
match:
- authority:
exact: "seldon.inference.seldon"
route:
- destination:
host: "seldon-mesh.seldon.svc.cluster.local"
port:
number: 80
- name: "control-plane-seldon"
match:
- authority:
exact: "seldon.admin.seldon"
route:
- destination:
host: "seldon-scheduler.seldon.svc.cluster.local"
port:
number: 9004ingressGateway:
seldonIngressService: "istio-ingressgateway"
ingressNamespace: "istio-system"
virtualService:
create: true
gateways:
- istio-system/seldon-gateway
seldon:
curlForm: |
curl -k https://<ip_address>/seldon/{{ .Namespace }}/{{ .ModelName }}/api/v0.1/predictions \<br/>
-H "{{ .TokenHeader }}: {{ .Token }}" \<br/>
-H "Content-Type: application/json" \<br/>
-d '{{ .Payload }}'
tensorFlowCurlForm: |
curl -k https://<ip_address>/seldon/{{ .Namespace }}/{{ .ModelName }}/v1/models/:predict \<br/>
-H "{{ .TokenHeader }}: {{ .Token }}" \<br/>
-H "Content-Type: application/json" \<br/>
-d '{{ .Payload }}'
seldonCoreV2:
curlForm: |
curl -k https://<ip_address>/v2/models/{{ .ModelName }}/infer \<br/>
-H "Host: {{ .Namespace }}.inference.seldon" \<br/>
-H "Content-Type: application/json" \<br/>
-H "Seldon-Model: {{ .ModelName }}.pipeline" \<br/>
-d '{{ .Payload }}'
enabled: true
requestForm: '{{ .SeldonProtocol }}://seldon-mesh.{{ .Namespace }}.svc.cluster.local/v2/pipelines/{{
.ModelName }}/infer'
helm upgrade seldon-enterprise seldon-charts/seldon-deploy --namespace seldon-system -f install-values.yaml --version 2.4.0 --installexport POD_NAME=$(kubectl get pods --namespace seldon-system -l "app.kubernetes.io/name=seldon-deploy,app.kubernetes.io/instance=seldon-enterprise" -o jsonpath="{.items[0].metadata.name}")kubectl port-forward $POD_NAME 8000:8000 --namespace seldon-systemkubectl label namespace istio-system istio-injection=enabledkubectl apply -f istio-seldon-gateway.yamlgateway.networking.istio.io/seldon-gateway created