Supervisely
AboutAPI ReferenceSDK Reference
  • 🤖What's Supervisely
  • 🚀Ecosystem of Supervisely Apps
  • 💡FAQ
  • 📌Getting started
    • How to import
    • How to annotate
    • How to invite team members
    • How to connect agents
    • How to train models
  • 🔁Import and Export
    • Import
      • Overview
      • Import using Web UI
      • Supported annotation formats
        • Images
          • 🤖Supervisely JSON
          • 🤖Supervisely Blob
          • COCO
          • Yolo
          • Pascal VOC
          • Cityscapes
          • Images with PNG masks
          • Links from CSV, TXT and TSV
          • PDF files to images
          • Multiview images
          • Multispectral images
          • Medical 2D images
          • LabelMe
          • LabelStudio
          • Fisheye
          • High Color Depth
        • Videos
          • Supervisely
        • Pointclouds
          • Supervisely
          • .PCD, .PLY, .LAS, .LAZ pointclouds
          • Lyft
          • nuScenes
          • KITTI 3D
        • Pointcloud Episodes
          • Supervisely
          • .PCD, .PLY, .LAS, .LAZ pointclouds
          • Lyft
          • nuScenes
          • KITTI 360
        • Volumes
          • Supervisely
          • .NRRD, .DCM volumes
          • NIfTI
      • Import sample dataset
      • Import into an existing dataset
      • Import using Team Files
      • Import from Cloud
      • Import using API & SDK
      • Import using agent
    • Migrations
      • Roboflow to Supervisely
      • Labelbox to Supervisely
      • V7 to Supervisely
      • CVAT to Supervisely
    • Export
  • 📂Data Organization
    • Core concepts
    • MLOps Workflow
    • Projects
      • Datasets
      • Definitions
      • Collections
    • Team Files
    • Disk usage & Cleanup
    • Quality Assurance & Statistics
      • Practical applications of statistics
    • Operations with Data
      • Data Filtration
        • How to use advanced filters
      • Pipelines
      • Augmentations
      • Splitting data
      • Converting data
        • Convert to COCO
        • Convert to YOLO
        • Convert to Pascal VOC
    • Data Commander
      • Clone Project Meta
  • 📝Labeling
    • Labeling Toolboxes
      • Images
      • Videos 2.0
      • Videos 3.0
      • 3D Point Clouds
      • DICOM
      • Multiview images
      • Fisheye
    • Labeling Tools
      • Navigation & Selection Tools
      • Point Tool
      • Bounding Box (Rectangle) Tool
      • Polyline Tool
      • Polygon Tool
      • Brush Tool
      • Mask Pen Tool
      • Smart Tool
      • Graph (Keypoints) Tool
      • Frame-based tagging
    • Labeling Jobs
      • Labeling Queues
      • Labeling Consensus
      • Labeling Statistics
    • Labeling with AI-Assistance
  • 🤝Collaboration
    • Admin panel
      • Users management
      • Teams management
      • Server disk usage
      • Server trash bin
      • Server cleanup
      • Server stats and errors
    • Teams & workspaces
    • Members
    • Issues
    • Guides & exams
    • Activity log
    • Sharing
  • 🖥️Agents
    • Installation
      • Linux
      • Windows
      • AMI AWS
      • Kubernetes
    • How agents work
    • Restart and delete agents
    • Status and monitoring
    • Storage and cleanup
    • Integration with Docker
  • 🔮Neural Networks
    • Overview
    • Inference & Deployment
      • Overview
      • Supervisely Serving Apps
      • Deploy & Predict with Supervisely SDK
      • Using trained models outside of Supervisely
    • Model Evaluation Benchmark
      • Object Detection
      • Instance Segmentation
      • Semantic Segmentation
      • Custom Benchmark Integration
    • Custom Model Integration
      • Overview
      • Custom Inference
      • Custom Training
    • Legacy
      • Starting with Neural Networks
      • Train custom Neural Networks
      • Run pre-trained models
  • 👔Enterprise Edition
    • Get Supervisely
      • Installation
      • Post-installation
      • Upgrade
      • License Update
    • Kubernetes
      • Overview
      • Installation
      • Connect cluster
    • Advanced Tuning
      • HTTPS
      • Remote Storage
      • Single Sign-On (SSO)
      • CDN
      • Notifications
      • Moving Instance
      • Generating Troubleshoot Archive
      • Storage Cleanup
      • Private Apps
      • Data Folder
      • Firewall
      • HTTP Proxy
      • Offline usage
      • Multi-disk usage
      • Managed Postgres
      • Scalability Tuning
  • 🔧Customization and Integration
    • Supervisely .JSON Format
      • Project Structure
      • Project Meta: Classes, Tags, Settings
      • Tags
      • Objects
      • Single-Image Annotation
      • Single-Video Annotation
      • Point Cloud Episodes
      • Volumes Annotation
    • Developer Portal
    • SDK
    • API
  • 💡Resources
    • Changelog
    • GitHub
    • Blog
    • Ecosystem
Powered by GitBook
On this page
  • Pre-requirements
  • Installation
  • Step 1: Request a Kubernetes configuration
  • Step 2: Deploy Supervisely in Kubernetes
  • Step 3: Ingress configuration
  • Step 4: Use the cluster to deploy Supervisely Apps

Was this helpful?

  1. Agents
  2. Installation

Kubernetes

PreviousAMI AWSNextHow agents work

Last updated 1 year ago

Was this helpful?

Follow these steps to deploy Supervisely in Kubernetes cluster.

BETA keep in mind that this is a beta version and some features may not work as expected. The configuration provided by Supervisely is a proof of concept (POC) and not suitable for production use out of the box.

For a production deployment, you should have strong working knowledge of Kubernetes, you can follow the recommendations in this guide to customize the configuration for your needs.

Pre-requirements

  • Kubernetes cluster version 1.21 and later

  • (if you plan to use GPU features)

  • (let us know if you want to use another ingress controller)

Installation

Step 1: Request a Kubernetes configuration

To deploy Supervisely in Kubernetes, you will need a POC configuration file that describes all the Supervisely services required for Kubernetes deployment.

Step 2: Deploy Supervisely in Kubernetes

After receiving the configuration, you will have to make some adjustments to it. The configuration is provided as a YAML file that you can apply to your cluster using the kubectl command.

Here is the list of changes that we recommend for production use:

  1. Deploy a managed PostgreSQL server and change the POSTGRES_URL env in the YAML configuration file. It's highly recommended that you deploy a managed server to make sure your data is safe, scalable and available 24/7. The deployed PostgreSQL server should be accessible from the Kubernetes cluster.

  2. Deploy a managed storage solution and adjust STORAGE_* envs according to the documentation of your storage solution . This is highly recommended for production use.

  3. Change the SERVER_ADDRESS and DOMAIN envs in the YAML configuration file to the URL of your Supervisely server, it can be private or public address. It's mostly used for SSO (in which case it has to match redirect-uri and callback URL) and internal communication between the server and Supervisely agents (if you have dedicated server that are not in Kubernetes cluster, but you want to connect them to the Supervisely cluster).

  4. Change storageClassName in the YAML configuration file to the name of the storage class that you want to use for storing data. It can be a local storage class or a cloud storage class, fast CSI storage class is recommended for production use. Consider using "Retain" reclaim policy for the storage class to avoid accidental data loss. You can find more information about the reclaim policy .

Step 3: Ingress configuration

By default Supervisely ships with NGINX ingress configuration, but you can manually configure your ingress controller to route traffic to Supervisely services.

Step 4: Use the cluster to deploy Supervisely Apps

In order to let Supervisely know that you have a Kubernetes cluster available for Apps deployment, you will have to add the cluster on the Team Cluster page.

Please follow the instructions .

🖥️
NVIDIA Device plugin
NGINX ingress controller
here
here
here