Phoenix can be deployed on Kubernetes with either SQLite backed by a persistent disc or with PostgreSQL.
Prerequisites
You must have a working Kubernetes cluster accessible via kubectl.
PostgreSQL
Manifests for PostgreSQL tend to be complex, so we recommend using kustomize.
Clone the Arize-Phoenix repository:
git clone https://github.com/Arize-ai/phoenix.git
From the repository root, apply the kustomize configuration for PostgreSQL:
kubectl apply -k kustomize/backends/postgres
This will yield a single node deployment of Phoenix pointed to a remote PostgreSQL.
SQLite with a StatefulSet
We love SQLite! However it might not be the best choice of database if you have a need for a high volume of reads and writes (e.g. you have multiple applications and users using your application simultaniously).
Clone the Arize-Phoenix repository:
git clone https://github.com/Arize-ai/phoenix.git
From the repository root, apply the kustomize configuration for SQLite:
kubectl apply -k kustomize/base
This will yield a single node deployment of Phoenix with a local SQLite.
Copy the manifest below into a file named phoenix.yaml.