1 - Installation
Deploy Memphis over Kubernetes
Helm is a k8s package manager that allows users to deploy apps in a single, configurable command.
Memphis is cloud-native and agnostic to any Kubernetes on any cloud.
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 |
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
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
- 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.
Last modified 4d ago