Search
⌃K
Links

Deploy on DigitalOcean

Introduction

DigitalOcean simplifies cloud computing so builders can spend more time creating software that changes the world.
DigitalOcean offers easy-to-use and configure cloud services like servers, kubernetes, object storage, serverless functions, a marketplace of applications, and much more.
Memphis chose DigitalOcean Kubernetes Marketplace to offer both DO and Memphis users a 1-click installation of memphis cluster in a production kubernetes environment.

Prerequisites

Step 1: Create DigitalOcean Kubernetes Cluster

Nodes are the servers that provide the Kubernetes compute and storage resources

Step 2: Connect to the Kubernetes cluster

Follow the below instructions to communicate with the newly created cluster

Step 3: Install Memphis

We need to create two different load balancers, one for data (the broker itself) and one for the UI.

Step 4: Expose Memphis for data using a load balancer

Run the following YAML
apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: memphis
meta.helm.sh/release-namespace: memphis
creationTimestamp: "2022-07-19T16:25:00Z"
finalizers:
- service.kubernetes.io/load-balancer-cleanup
labels:
app.kubernetes.io/instance: memphis
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: memphis
app.kubernetes.io/version: 1.16.0
helm.sh/chart: memphis-0.1.0
name: memphis-cluster
namespace: memphis
spec:
allocateLoadBalancerNodePorts: true
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: memphis-cp-management
nodePort: 30794
port: 5555
protocol: TCP
targetPort: 5555
- name: memphis-cp-tcp
nodePort: 31534
port: 6666
protocol: TCP
targetPort: 6666
- name: client
nodePort: 30363
port: 7766
protocol: TCP
targetPort: 7766
selector:
app.kubernetes.io/instance: memphis
app.kubernetes.io/name: memphis
sessionAffinity: None
type: LoadBalancer
The above will create a digitalocean load balancer with a public ip.

Step 5: Expose Memphis UI using a load balancer

Run the following YAML
kubectl expose deployment memphis-ui --port=80 --target-port=80 \
--name=memphis-ui --type=LoadBalancer

Step 6: Connect your 1st app

To get the public IPs of the load balancers we created before, run
kubectl get svc