Search…
⌃K
Links

1 - Installation

Deploy Memphis over Kubernetes
If you prefer using Terraform, head here
Helm is a k8s package manager that allows users to deploy apps in a single, configurable command.
More information about Helm can be found here.
Memphis is cloud-native and agnostic to any Kubernetes on any cloud.

Requirements

Kubernetes
Docker
Minimum Requirements (No HA)
Resource
Quantity
Minimum Kubernetes version
1.20 and above
K8S Nodes
1
CPU
2 CPU
Memory
4GB RAM
Storage
12GB PVC
Recommended Requirements (HA)
Resource
Minimum Quantity
Minimum Kubernetes version
1.20 and above
K8S Nodes
3
CPU
4 CPU
Memory
8GB RAM
Storage
12GB PVC Per node
Requirements (No HA)
Resource
Quantity
OS
Mac / Windows / Linux
CPU
1 CPU
Memory
4GB
Storage
6GB

Installation

Production-grade Memphis with three memphis brokers configured in cluster-mode
helm repo add memphis https://k8s.memphis.dev/charts/ --force-update &&
helm install memphis --set cluster.enabled="true" memphis/memphis --create-namespace --namespace memphis --wait
Standard installation of Memphis with a single broker
helm repo add memphis https://k8s.memphis.dev/charts/ --force-update &&
helm install memphis memphis/memphis --create-namespace --namespace memphis --wait

Helm Install Options

Option
Description
Default Value
Example
rootPwd
Root password for the dashboard
"memphis"
"memphis"
connectionToken
Token for connecting an app to the Memphis Message Queue. Auto generated
""
"memphis"
dashboard.port
Dashboard's (GUI) port
9000
9000
cluster.enabled
Cluster mode for HA and Performance
"false"
"false"
exporter.enabled
Prometheus exporter
"false"
"false"
analytics
Collection of anonymous metadata
"true"
"true"
websocket.tls.secret.name
*Optional* Memphis GUI using websockets for live rendering. K8S secret name for the certs
""
"memphis-ws-tls-secret"
websocket.tls.cert
*Optional* Memphis GUI using websockets for live rendering. .pem file to use
""
"memphis_local.pem"
websocket.tls.key
*Optional* Memphis GUI using websockets for live rendering. key file
""
"memphis-key_local.pem"
nats.tls.verify
*Optional* For encrypted client-memphis communication.
""
"true"
nats.tls.secret.name
*Optional* For encrypted client-memphis communication. K8S secret name that holds the certs
""
"memphis-client-tls-secret"
nats.tls.cert
*Optional* For encrypted client-memphis communication. .pem file to use
""
"memphis_client.pem"
nats.tls.key
*Optional* For encrypted client-memphis communication. Private key file to use
""
"memphis-key_client.pem"
nats.tls.ca
*Optional* For encrypted client-memphis communication. CA file to use
""
"rootCA.pem"
An example with configured options:
helm install memphis --set cluster.replicas=1,rootPwd="rootpassword" memphis/memphis --create-namespace --namespace memphis
Successful deployment should print the following notes. If not, please raise an issue over Github.
NAME: memphis
LAST DEPLOYED: Sun Jan 8 20:59:30 2023
NAMESPACE: memphis
STATUS: deployed
REVISION: 1
NOTES:
__ __ _ _
| \/ | ___ _ __ ___ _ __ | |__ (_)___
| |\/| |/ _ \ '_ ` _ \| '_ \| '_ \| / __|
| | | | __/ | | | | | |_) | | | | \__ \
|_| |_|\___|_| |_| |_| .__/|_| |_|_|___/
|_|
Melvis thank you for installing memphis!
A dev first event-processing platform.
---------------------------------------------------------------------------------------------------------------------------------------------
Memphis UI can be accessed on the following DNS name from within your cluster: memphis-cluster.memphis.svc.cluster.local:9000
To access Memphis using UI/CLI/SDK from localhost, run the below commands:
- kubectl port-forward service/memphis-cluster 6666:6666 9000:9000 7770:7770 --namespace memphis > /dev/null &
For interacting with the broker via HTTP:
- kubectl port-forward service/memphis-http-proxy 4444:4444 --namespace memphis > /dev/null &
Dashboard/CLI: http://localhost:9000
Broker: localhost:6666 (Client Connections)
HTTP proxy: localhost:4444 (Data + Mgmt)
---------------------------------------------------------------------------------------------------------------------------------------------
Read more about networking options here: https://docs.memphis.dev/deployment/kubernetes
Website: https://memphis.dev
Documentations: https://docs.memphis.dev
Deployment Information
-------------------------
## Secrets ##
UI/CLI/SDK root username - root
UI/CLI root Password - kubectl get secret memphis-creds -n memphis -o jsonpath="{.data.ROOT_PASSWORD}" | base64 --decode
SDK root connection token - kubectl get secret memphis-creds -n memphis -o jsonpath="{.data.CONNECTION_TOKEN}" | base64 --decode
## Components ##
Broker - Where data flows through
MongoDB - Internal Database for management
If the output did not save, or regeneration is needed, please use the following command:
helm get notes memphis -n memphis

Deployed Pods

  • memphis-broker-0: Memphis worker. Responsible for data ingestion and process, just like "Kafka's" brokers
  • memphis-ui-xxx: UI. Responsible for delivering a graphical user interface for managing the cluster.
  • memphis-mongodb-0/1: MongoDB, for Memphis internal usage.