.. _using_kubernetes:
########################
Xinference on Kubernetes
########################
************
Helm Support
************
Xinference provides a method for installation in a Kubernetes cluster via ``Helm`` .
Prerequisites
=============
* You have a fully functional Kubernetes cluster.
* Enable GPU support in Kubernetes, refer to `here `_.
* ``Helm`` is correctly installed.
Steps
=====
#. Add xinference helm repo.
.. code-block:: bash
helm repo add xinference https://xorbitsai.github.io/xinference-helm-charts
#. Update xinference helm repo indexes and query versions.
.. code-block:: bash
helm repo update xinference
helm search repo xinference/xinference --devel --versions
#. Install
.. code-block:: bash
helm install xinference xinference/xinference -n xinference --version
Customized Installation
=======================
The installation method mentioned above sets up a Xinference cluster similar to a single-machine setup,
with only one worker and all startup parameters at their default values.
However, this is usually not the desired setup.
Below are some common custom installation configurations.
#. I need to download models from ``ModelScope``.
.. code-block:: bash
helm install xinference xinference/xinference -n xinference --version --set config.model_src="modelscope"
#. I want to use cpu image of xinference (or use any other version of xinference images).
.. code-block:: bash
helm install xinference xinference/xinference -n xinference --version --set config.xinference_image=""
#. I want to have 4 Xinference workers, with each worker managing 4 GPUs.
.. code-block:: bash
helm install xinference xinference/xinference -n xinference --version --set config.worker_num=4 --set config.gpu_per_worker="4"
The above installation method is based on Helm ``--set`` option.
For more complex custom installations, such as multiple workers with shared storage,
it is highly recommended to use your own ``values.yaml`` file with Helm ``-f`` option for installation.
The default ``values.yaml`` file is located `here `_.
Some examples can be found `here `_.
******************
KubeBlocks Support
******************
You can also install Xinference in Kubernetes using the third-party ``KubeBlocks``.
This method is not maintained by Xinference and does not guarantee timely updates or availability.
Please refer to the documentation at `here `_.