Page cover image

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.dev 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

Last updated

Logo

All rights reserved to Memphis.dev 2023