The Hydrosphere platform can be installed in the following orchestrator's:
To install Hydrosphere using docker-compose
, you should have the following prerequisites installed on your machine.
Download the latest released_version release from the releases page:
Unpack the tar ball:
Set up an environment:
Clone the serving repository:
Set up an environment:
To check the installation, open http://localhost/. By default, Hydrosphere UI is available at port 80.
By default, Hydrosphere spins up a minimal installation applicable only for testing purposes. Consult this document for details about deploying production-ready Hydrosphere instance.
To install Hydrosphere on the Kubernetes cluster you should have the following prerequisites fulfilled.
PV support on the underlying infrastructure (if persistence is required)
Docker registry with pull/push access (if the built-in one is not used)
Add the Hydrosphere charts repository:
Install the chart from repo to the cluster:
Clone the repository:
Build dependencies:
Install the chart:
After the chart has been installed, you have to expose the ui
component outside of the cluster. For the sake of simplicity, we will just port-forward it locally.
To check the installation, open http://localhost:8080/.
Python SDK offers a simple and convenient way of integrating a user's workflow scripts with Hydrosphere API.
Source code: https://github.com/Hydrospheredata/hydro-serving-sdk PyPI: https://pypi.org/project/hydrosdk/
You can learn more about it in its documentation here.
You can use pip to install hydrosdk
You can access the locally deployed Hydrosphere platform from previous steps by running the following code:
This article explains the configuration file of the Hydrosphere Helm charts.
To install Hydrosphere on the Kubernetes cluster you should have the following prerequisites fulfilled.
PV support on the underlying infrastructure (if persistence is required)
Docker registry with pull/push access (if the built-in one is not used)
Fetch the newest charts to your local directory.
Add the Hydrosphere charts repository:
Install the chart from repo to the cluster:
Helm charts are bundled with two distinct configuration files. The default one is values.yaml
, the more comprehensive one is values-production.yaml
.
By default (in the values.yaml
), Helm charts are configured to set up a basic Hydrosphere installation aimed for a testing workload. To configure the installation for the production workload you have to set up additional resources, such as separate database instances, a separate docker registry, and override default values in the configuration file.
The contents of values.yaml
and values-production.yaml
files are overlapping, so we will continue with the latter.
values-production.yaml
Let's go over each section one by one.
.global.ui.ingress.enabled
is responsible for creating an ingress resource for the HTTP endpoint of the UI service.
.global.ui.ingress.host
specifies the DNS name of the ingress resource.
.global.ui.ingress.path
specifies the context path of the ingress resource.
.global.ui.ingress.enableGrpc
is responsible for creating an ingress resource for the GRPC endpoint of the UI service. Note, specifying .global.ui.ingress.enableGrpc: true
only works when the path is set to "/", so it's recommended to leave .global.ui.ingress.path
untouched.
.global.ui.ingress.issuer
is the name of the configured certificate issuer for ingress resources. Make sure it's set to either an Issuer or a ClusterIssuer. We do not bundle certificate manager to the Hydrosphere charts, so you have to set up this yourself. Consider consulting cert-manager.io documentation for more help.
.ui.resources
section specifies resource requests and limits for the service.
It is recommended to use a preconfigured docker registry for the production workload.
If you do not specify .global.registry.url,
Hydrosphere will create an internal instance of the docker registry. This approach is only recommended for testing purposes.
.global.registry.url
specifies the endpoint of your preconfigured docker registry.
.global.registry.username
and .global.registry.password
specify the credentials for your registry.
.global.registry.ingress.enabled
is responsible for creating an ingress resource for the registry service. This also issues certificates for the docker registry, which are required for external registries.
If .global.registry.ingress.enabled
is set to "true", .global.registry.insecure
should be set to "false". This will tell Hydrosphere to work with the registry in secure mode.
If .global.registry.ingress.enabled
is set to "false", .global.registry.insecure
_should be set to "true"._ This will tell Hydrosphere to work with the registry in insecure mode. This will also create a DaemonSet which will proxy all requests to the registry from each node.
.global.registry.persistence
section configures persistency options for the service. This is only valid when .global.persistence.mode
is set to "s3".
.global.registry.persistence.bucket
specifies the bucket name, where to store images.
.global.registry.persistence.region
specifies region of the bucket. If not specified, it will be fallback to .global.persistence.region
.
It is recommended to use a preconfigured persistent storage for the production workload.
If you do not specify .global.persistence.url
, Hydrosphere will create an internal instance of the minio storage. This approach is only recommended for testing purposes.
.global.persistence.url
specifies the endpoint for your preconfigured storage.
.global.persistence.mode
specifies, which persistence mode is used. Only valid options are "s3" or "minio".
.global.persistence.accessKey
and .global.persistence.secretKey
specify credentials to the storage.
.global.persistence.region
specifies default regional constraint for the buckets.
Internal instance can be created when .global.persistence.mode
is set to "minio".
It is recommended to use a preconfigured Mongo database instance for the production workload. .global.mongodb.url
specifies the endpoint for your preconfigured Mongo instance.
If you omit specifying .global.mongodb.url
, Hydrosphere will create an internal instance of the MongoDB database. This approach is only recommended for testing purposes.
It is recommended to use a preconfigured PostgreSQL database instance for the production workload. .global.postgresql.url
specifies the endpoint for your preconfigured PostgreSQL instance.
If you omit specifying .global.postgresql.url
, Hydrosphere will create an internal instance of the PostgreSQL database. This approach is only recommended for testing purposes.
.global.alertmanager.url
specifies the endpoint for your preconfigured Prometheus AlertManager instance. If you omit specifying it, Hydrosphere will create an internal instance of AlertManager.
.global.alertmanager.config
specifies configuration file for the AlertManager. Consider consulting AlertManager documentation for more details.
You can learn more about the Manager service in the Serving section.
.manager.javaOpts
specifies Java options for the service.
.manager.serviceAccount
section specifies ServiceAccount details for Manager service to use, when managing Kubernetes resources.
.manager.resources
section specifies resource requests and limits for the service.
You can learn more about the Gateway service in the Serving section.
.gateway.javaOpts
specifies Java options for the service.
.gateway.resources
section specifies resource requests and limits for the service.
You can learn more about the Sonar service in the Monitoring section.
.sonar.javaOpts
specifies Java options for the service.
.sonar.persistence
section configures persistency options for the service.
.sonar.persistence.bucket
specifies the bucket name, where to store training data and other artifacts.
.sonar.persistence.region
specifies region of the bucket. If not specified, it will be fallback to .global.persistence.region
.
.sonar.resources
section specifies resource requests and limits for the service.
You can learn more about the AutoOd service in the Monitoring section.
.auto-od.resources
section specifies resource requests and limits for the service.
You can learn more about the Stat service in the Monitoring section.
.stat.resources
section specifies resource requests and limits for the service.
You can learn more about the Visualization service in the Interpretability section.
.visualization.persistence
section configures persistency options for the service.
.visualization.persistence.bucket
specifies the bucket name, where to store data artifacts.
.visualization.persistence.region
specifies region of the bucket. If not specified, it will be fallback to .global.persistence.region
.
.visualization.resources
section specifies resource requests and limits for the service.
You can learn more about the RootCause service in the Interpretability section.
.rootcause.resources
section specifies resource requests and limits for the service.
Tolerations
You can specify global tolerations for Hydrosphere services to be deployed on particular nodes using .global.tolerations
. Consider consulting Kubernetes documentation for more details.
Once the charts were configured, install the release.
Hydrosphere CLI, orhs
, is a command-line interface designed to work with the Hydrosphere platform.
Source code: PyPI:
Use pip to install hs
:
Check the installation:
hs cluster
This command lets you operate cluster instances. A cluster points to your Hydrosphere instance. You can use this command to work with different Hydrosphere instances.
See hs cluster --help
for more information.
hs apply
This command allows you to upload resources from YAML definitions to the cluster.
See hs apply --help
for more information.
hs profile
This command lets you upload your training data to build profiles.
$ hs profile push
- upload training data to compute its profiles.
$ hs profile status
- show profiling status for a given model.
See hs profile --help
for more information.
hs app
This command provides information about available applications.
$ hs app list
- list all existing applications.
$ hs app rm
- remove a certain application.
See hs app --help
- for more information.
hs model
This command provides information about available models.
$ hs model list
- list all existing models.
$ hs model rm
- remove a certain model.
See hs model --help
for more information.