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
Copy 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
Copy 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