Deploy_Dynamo_Kubernetes_Platform.md 2.9 KB
Newer Older
1
# Steps to install Dynamo Kubernetes Platform from Source
Anish's avatar
Anish committed
2
3
4
5
6
7
8
9
10
11
12
13
14

## 1. Build Dynamo Base Image

Create 1 ECR repositoriy

```
aws configure
aws ecr create-repository --repository-name <ECR_REPOSITORY>
```

Build Image

```
15
export NAMESPACE=dynamo-system
Anish's avatar
Anish committed
16
17
18
19
export DOCKER_SERVER=<ECR_REGISTRY>
export DOCKER_USERNAME=AWS
export DOCKER_PASSWORD="$(aws ecr get-login-password --region <ECR_REGION>)"
export IMAGE_TAG=0.3.2.1
20
python container/render.py --framework=dynamo --target=runtime --output-short-filename
21
docker build -t dynamo:latest-vllm -f container/rendered.Dockerfile .
Anish's avatar
Anish committed
22
23
24
25
26
27
28
29
30
31
```

Push Image

```
docker tag dynamo:latest-vllm <ECR_REGISTRY>/<ECR_REPOSITORY>:$IMAGE_TAG
aws ecr get-login-password | docker login --username AWS --password-stdin <ECR_REGISTRY>
docker push <ECR_REGISTRY>/<ECR_REPOSITORY>:$IMAGE_TAG
```

32
## 2. Install Dynamo Kubernetes Platform
Anish's avatar
Anish committed
33
34
35
36

Build and Push Operator Image

```
37
cd deploy/operator
38
39
docker build -t $DOCKER_SERVER/kubernetes-operator:$IMAGE_TAG .
docker push $DOCKER_SERVER/kubernetes-operator:$IMAGE_TAG
Anish's avatar
Anish committed
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
```

Create secrets

```
kubectl create namespace ${NAMESPACE}
kubectl create secret docker-registry docker-imagepullsecret \
  --docker-server=${DOCKER_SERVER} \
  --docker-username=${DOCKER_USERNAME} \
  --docker-password=${DOCKER_PASSWORD} \
  --namespace=${NAMESPACE}
export HF_TOKEN=<HF_TOKEN>
kubectl create secret generic hf-token-secret \
  --from-literal=HF_TOKEN=${HF_TOKEN} \
  -n ${NAMESPACE}
```

57
Install Dynamo Kubernetes Platform
Anish's avatar
Anish committed
58
59

```
60
cd deploy/helm/charts
Anish's avatar
Anish committed
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
helm install dynamo-crds ./crds/ \
  --namespace default \
  --wait \
  --atomic
```

```
helm dep build ./platform/

kubectl create namespace ${NAMESPACE}

# Create docker registry secret
kubectl create secret docker-registry docker-imagepullsecret \
  --docker-server=${DOCKER_SERVER} \
  --docker-username=${DOCKER_USERNAME} \
  --docker-password=${DOCKER_PASSWORD} \
  --namespace=${NAMESPACE}

# Install platform
helm install dynamo-platform ./platform/ \
  --namespace ${NAMESPACE} \
82
  --set "dynamo-operator.controllerManager.manager.image.repository=${DOCKER_SERVER}/kubernetes-operator" \
Anish's avatar
Anish committed
83
84
85
86
87
88
89
  --set "dynamo-operator.controllerManager.manager.image.tag=${IMAGE_TAG}" \
  --set "dynamo-operator.imagePullSecrets[0].name=docker-imagepullsecret"
```

Your pods should be running like below

```
90
ubuntu@ip-192-168-83-157:~/dynamo/examples/backends/vllm/deploy$ kubectl get pods -A
Anish's avatar
Anish committed
91
NAMESPACE      NAME                                                              READY   STATUS    RESTARTS   AGE
92
93
94
95
dynamo-system   dynamo-platform-dynamo-operator-controller-manager-86795c5f4j4k   2/2     Running   0          4h17m
dynamo-system   dynamo-platform-etcd-0                                            1/1     Running   0          4h17m
dynamo-system   dynamo-platform-nats-0                                            2/2     Running   0          4h17m
dynamo-system   dynamo-platform-nats-box-5dbf45c748-bxqj7                         1/1     Running   0          4h17m
Anish's avatar
Anish committed
96
```