Istio
Learn about installing Istio ingress controller in a Kubernetes cluster running Seldon Enterprise Platform.
Istio implements the Kubernetes ingress resource to expose a service and make it accessible from outside the cluster. You can install Istio in either a self-hosted Kubernetes cluster or a managed Kubernetes service provided by a cloud provider that is running the Seldon Enterprise Platform.
Prerequisites
Install Seldon Enterprise Platform.
Ensure that you install a version of Istio that is compatible with your Kubernetes cluster version. For detailed information on supported versions, refer to the Istio Compatibility Matrix.
Installing Istio ingress controller
Installing Istio ingress controller in a Kubernetes cluster running Seldon Enterprise Platform involves these tasks:
Install Istio
Download the Istio installation package for the version you want to use. In the following command replace
<version>
with the version of Istio that you downloaded:Install the Istio Custom Resource Definitions (CRDs) and Istio components in your cluster using the
istioctl
command line tool:Create a namespace where you want to enable Istio automatic sidecar injection. For example in the namespace
istio-system
:
Install Istio Ingress Gateway
Verify that Istio Ingress Gateway is installed:
This should return details of the Istio Ingress Gateway, including the external IP address.
Create a YAML file to specify Gateway resource in the
istio-system
namespace to expose your application. For example, create theistio-seldon-gateway.yaml
file. Use your preferred text editor to create and save the file with the following content:Change to the directory that contains
istio-seldon-gateway.yaml
file and apply the configuration:When the configuration is applied, you should see this:
Find the IP address of the Seldon Enterprise Platform instance running with Istio:
Make a note of the IP address that is displayed in the output.
Expose Seldon mesh service
It is important to expose seldon-service
service to enable communication between deployed machine learning models and external clients or services. The Seldon Core 2 inference API is exposed through the seldon-mesh
service in the seldon
namespace. If you install Core 2 in multiple namespaces, you need to expose the seldon-mesh
service in each of namespace.
Verify if the
seldon-mesh
service is running for example, in the namespaceseldon
.When the services are running you should see something similar to this:
Create a YAML file to create a VirtualService Seldon Core 2
seldon-mesh
. For example, create theseldon-mesh-vs.yaml
file. Use your preferred text editor to create and save the file with the following content:Create a virtual service to expose the
seldon-mesh
service.When the virtual service is created, you should see this:
Install Seldon Enterprise Platform with Istio ingress controller
Update the configurations in the
install-values.yaml
file you created during the Seldon Enterprise installation. Replace<ip_address>
with the IP address noted during the Istio Ingress Gateway installation in the following values and save the file:Change to the directory that contains the
install-values.yaml
file and then upgrade the Seldon Enterprise Platform installation in the namespaceseldon-system
.Check the status of the installation seldon-enterprise-seldon-deploy.
When the installation is complete you should see this:
Access Seldon Enterprise Platform.
Get the Pod that is running Seldon Enterprise Platform in the cluster and save it as
$POD_NAME.
You can use port-forwarding to access your application locally.
Open your browser and navigate to
http://127.0.0.1:8000/seldon-deploy/
to access Seldon Enterprise Platform.
Optional: Enable HTTPS/TLS
To secure your Ingress with HTTPS, you can configure TLS settings in the Gateway
resource using a certificate and key. This involves additional steps like creating Kubernetes secrets for your certificates.
Additional Resources
Last updated