Unverified Commit 9b05a5b7 authored by mohammedabdulwahhab's avatar mohammedabdulwahhab Committed by GitHub
Browse files

docs: add dedicated minikube guide (#735)

parent 831bc725
......@@ -15,18 +15,18 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
# Deploy Dynamo Cloud to Kubernetes
# 🚀 Deploy Dynamo Cloud to Kubernetes
## Building Docker images for Dynamo Cloud components
## 🏗️ Building Docker images for Dynamo Cloud components
You can build and push Docker images for the Dynamo cloud components (API server, API store, and operator) to any container registry of your choice. Here's how to build each component:
### Prerequisites
### 📋 Prerequisites
- [Earthly](https://earthly.dev/) installed
- Docker installed and running
- Access to a container registry of your choice
### Building and Pushing Images
### ⚙️ Building and Pushing Images
First, set the required environment variables:
```bash
......@@ -45,17 +45,17 @@ docker login <CONTAINER_REGISTRY>
You can build each component individually or build all components at once:
#### Build and push platform components
#### 🛠️ Build and push platform components
```bash
earthly --push +all-docker --DOCKER_SERVER=$DOCKER_SERVER --IMAGE_TAG=$IMAGE_TAG
```
## Deploy Dynamo Cloud Platform
## 🚀 Deploy Dynamo Cloud Platform
### Prerequisites
### 📋 Prerequisites
Before deploying Dynamo Cloud, ensure your Kubernetes cluster meets the following requirements:
#### 1. Istio Installation
#### 1. 🛡️ Istio Installation
Dynamo Cloud requires Istio for service mesh capabilities. Verify Istio is installed and running:
```bash
......@@ -66,7 +66,7 @@ kubectl get pods -n istio-system
# istiod-* pods should be in Running state
```
#### 2. PVC Support with Default Storage Class
#### 2. 💾 PVC Support with Default Storage Class
Dynamo Cloud requires Persistent Volume Claim (PVC) support with a default storage class. Verify your cluster configuration:
```bash
......@@ -79,7 +79,10 @@ kubectl get storageclass
# standard (default) kubernetes.io/gce-pd Delete Immediate true 1d
```
### Installation
> [!TIP]
> Don't have a Kubernetes cluster? Check out our [Minikube setup guide](../../../docs/guides/dynamo_deploy/minikube.md) to set up a local environment! 🏠
### 📥 Installation
1. Set the required environment variables:
```bash
......@@ -97,7 +100,6 @@ cd deploy/dynamo/helm
kubectl create namespace $NAMESPACE
kubectl config set-context --current --namespace=$NAMESPACE
# [Optional] if needed, create image pull secrets
kubectl create secret docker-registry docker-imagepullsecret \
--docker-server=$DOCKER_SERVER \
--docker-username=$DOCKER_USERNAME \
......
......@@ -19,7 +19,7 @@ limitations under the License.
The Dynamo Cloud platform is a comprehensive solution for deploying and managing Dynamo inference graphs (also referred to as pipelines) in Kubernetes environments. It provides a streamlined experience for deploying, scaling, and monitoring your inference services. You can interface with Dynamo Cloud using the `deploy` subcommand available in the Dynamo CLI (e.g `dynamo deploy`)
## Overview
## 📋 Overview
The Dynamo cloud platform consists of several key components:
......@@ -31,7 +31,7 @@ These components work together to provide a seamless deployment experience, hand
![Dynamo Deploy](../../images/dynamo-deploy.png)
## Prerequisites
## 🎯 Prerequisites
Before getting started with the Dynamo cloud platform, ensure you have:
......@@ -42,11 +42,14 @@ Before getting started with the Dynamo cloud platform, ensure you have:
- `kubectl` configured to access your cluster
- Helm installed (version 3.0 or later)
## Building Docker Images for Dynamo Cloud Components
> [!TIP]
> Don't have a Kubernetes cluster? Check out our [Minikube setup guide](./minikube.md) to set up a local environment! 🏠
## 🏗️ Building Docker Images for Dynamo Cloud Components
The Dynamo cloud platform components need to be built and pushed to a container registry before deployment. You can build these components individually or all at once.
### Setting Up Environment Variables
### ⚙️ Setting Up Environment Variables
First, set the required environment variables for building and pushing images:
......@@ -67,7 +70,7 @@ Where:
> docker login <CONTAINER_REGISTRY>
> ```
### Building Components
### 🛠️ Building Components
You can build and push all platform components at once:
......@@ -75,15 +78,15 @@ You can build and push all platform components at once:
earthly --push +all-docker --DOCKER_SERVER=$DOCKER_SERVER --IMAGE_TAG=$IMAGE_TAG
```
## Deploying the Dynamo Cloud Platform
## 🚀 Deploying the Dynamo Cloud Platform
Once you've built and pushed the components, you can deploy the platform to your Kubernetes cluster.
### Prerequisites
### 📋 Prerequisites
Before deploying Dynamo Cloud, ensure your Kubernetes cluster meets the following requirements:
#### 1. Istio Installation
#### 1. 🛡️ Istio Installation
Dynamo Cloud requires Istio for service mesh capabilities. Verify Istio is installed and running:
```bash
......@@ -94,7 +97,7 @@ kubectl get pods -n istio-system
# istiod-* pods should be in Running state
```
#### 2. PVC Support with Default Storage Class
#### 2. 💾 PVC Support with Default Storage Class
Dynamo Cloud requires Persistent Volume Claim (PVC) support with a default storage class. Verify your cluster configuration:
```bash
......@@ -107,7 +110,7 @@ kubectl get storageclass
# standard (default) kubernetes.io/gce-pd Delete Immediate true 1d
```
### Installation
### 📥 Installation
1. Set the required environment variables:
```bash
......@@ -125,7 +128,6 @@ cd deploy/dynamo/helm
kubectl create namespace $NAMESPACE
kubectl config set-context --current --namespace=$NAMESPACE
# [Optional] if needed, create image pull secrets
kubectl create secret docker-registry docker-imagepullsecret \
--docker-server=$DOCKER_SERVER \
--docker-username=$DOCKER_USERNAME \
......@@ -139,11 +141,11 @@ kubectl create secret docker-registry docker-imagepullsecret \
./deploy.sh
```
4. **Expose Dynamo Cloud Externally**
4. 🌐 **Expose Dynamo Cloud Externally**
You must also expose the `dynamo-store` service within the namespace externally. This will be the endpoint the CLI uses to interface with Dynamo Cloud. You might setup an Ingress, use an `ExternalService` with Istio, or simply port-forward. In our docs, we refer to this externally available endpoint as `DYNAMO_CLOUD`.
## Next Steps
## 🎯 Next Steps
After deploying the Dynamo cloud platform, you can:
......
<!--
SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# 🏠 Minikube Setup Guide
Don't have a Kubernetes cluster? No problem! You can set up a local development environment using Minikube. This guide will walk you through setting up everything you need to run Dynamo Cloud locally.
## Setting Up Minikube
### 1. Install Minikube
First things first! You'll need to install Minikube. Follow the official [Minikube installation guide](https://minikube.sigs.k8s.io/docs/start/) for your operating system.
### 2. Configure GPU Support (Optional)
Planning to use GPU-accelerated workloads? You'll need to configure GPU support in Minikube. Follow the [Minikube GPU guide](https://minikube.sigs.k8s.io/docs/tutorials/nvidia/) to set up NVIDIA GPU support before proceeding.
> [!TIP]
> Make sure to configure GPU support before starting Minikube if you plan to use GPU workloads!
### 3. Start Minikube
Time to launch your local cluster!
```bash
# Start Minikube with GPU support (if configured)
minikube start --driver docker --container-runtime docker --gpus all --memory=16000mb --cpus=8
# Enable required addons
minikube addons enable istio-provisioner
minikube addons enable istio
minikube addons enable storage-provisioner-rancher
```
### 4. Verify Installation
Let's make sure everything is working correctly!
```bash
# Check Minikube status
minikube status
# Verify Istio installation
kubectl get pods -n istio-system
# Verify storage class
kubectl get storageclass
```
## Next Steps
Once your local environment is set up, you can proceed with the [Dynamo Cloud deployment guide](./dynamo_cloud.md) to deploy the platform to your local cluster.
## Coming Soon
- MicroK8s setup guide
- Kind setup guide
- More local development tips and tricks
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment