All Projects → ColinSullivan1 → Nats K8s

ColinSullivan1 / Nats K8s

Licence: mit
Various k8s/nats artifacts in experimental work.

Projects that are alternatives of or similar to Nats K8s

Chartkick.py
Create beautiful Javascript charts with minimal code
Stars: ✭ 695 (+5691.67%)
Mutual labels:  charts
Umami
Umami is a simple, fast, website analytics alternative to Google Analytics.
Stars: ✭ 9,228 (+76800%)
Mutual labels:  charts
Reasonbizcharts
ReasonML binding for BizCharts https://bizcharts.net/products/bizCharts/demo
Stars: ✭ 23 (+91.67%)
Mutual labels:  charts
Ggcharts
可以高度自定义的图表框架。柱状图、折线图、雷达图、饼图、K线图、分时图。
Stars: ✭ 713 (+5841.67%)
Mutual labels:  charts
Hemera
🔬 Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/
Stars: ✭ 773 (+6341.67%)
Mutual labels:  nats
Vue Apexcharts
📊 Vue.js component for ApexCharts
Stars: ✭ 889 (+7308.33%)
Mutual labels:  charts
Archarts
Lovely Augmented Reality Charts for iOS - Built with ARKit
Stars: ✭ 679 (+5558.33%)
Mutual labels:  charts
Pipe
Multi provider event grid written in go
Stars: ✭ 9 (-25%)
Mutual labels:  nats
Rickshaw
JavaScript toolkit for creating interactive real-time graphs
Stars: ✭ 6,506 (+54116.67%)
Mutual labels:  charts
Amcharts4
The most advanced amCharts charting library for JavaScript and TypeScript apps.
Stars: ✭ 907 (+7458.33%)
Mutual labels:  charts
Explorer
Data Explorer by Keen - point-and-click interface for analyzing and visualizing event data.
Stars: ✭ 725 (+5941.67%)
Mutual labels:  charts
Geom
2D/3D geometry toolkit for Clojure/Clojurescript
Stars: ✭ 759 (+6225%)
Mutual labels:  charts
Teacup nats
Teacup based NATS client for Erlang
Stars: ✭ 16 (+33.33%)
Mutual labels:  nats
Terriajs
A library for building rich, web-based geospatial data platforms.
Stars: ✭ 699 (+5725%)
Mutual labels:  charts
Teechart Vcl Samples
Sample programs showing how to use TeeChart VCL for Delphi and C++ Builder
Stars: ✭ 24 (+100%)
Mutual labels:  charts
React Apexcharts
📊 React Component for ApexCharts
Stars: ✭ 677 (+5541.67%)
Mutual labels:  charts
Primeng
The Most Complete Angular UI Component Library
Stars: ✭ 7,180 (+59733.33%)
Mutual labels:  charts
Kchartview
KChart for Android ;股票k线图
Stars: ✭ 864 (+7100%)
Mutual labels:  charts
Nats.rb
Ruby client for NATS, the cloud native messaging system.
Stars: ✭ 850 (+6983.33%)
Mutual labels:  nats
Zingchart Ember
A ZingChart component for Ember CLI
Stars: ✭ 18 (+50%)
Mutual labels:  charts

nats-k8s

Research into k8s and NATS with some experimental work. Eventually, charts here will be checked into Kubernetes.

Note that this is a WORK IN PROGRESS; much of what you see here may change, drastically. Feedback is welcome though.

Setup

Launch k8s

Minikube

minicube start

GKE

TBD

Charts

There are charts for core NATS and NATS streaming in the charts directory.

Requirements

To use the charts, helm is required. Follow the installation instructions there.

cd charts

Core NATS

The Core NATS server installation can be installed via:

helm install nats-server

$ helm list
NAME          	REVISION	UPDATED                 	STATUS  	CHART            	NAMESPACE
eponymous-worm	1       	Wed Dec  6 14:51:15 2017	DEPLOYED	nats-server-0.1.0	default  

NATS Streaming

If you are using NATS streaming, be sure to locally update your dependencies, otherwise installation will fail with the message Error: found in requirements.yaml, but missing in charts/ directory: nats-server.

helm dependency build nats-streaming-server

Now you can install nats streaming server:

helm install nats-streaming-server

$ helm list
NAME       	REVISION	UPDATED                 	STATUS  	CHART                      	NAMESPACE
yellow-pika	1       	Wed Dec  6 15:20:10 2017	DEPLOYED	nats-streaming-server-0.1.0	default  

At this time, either install core NATS or nats streaming.

Manual Testing

There are a few hacky manual tests for sanity checking the NATS server and NATS streaming server installations. Tests are run as jobs in your Kubernetes cluster.

Build & install the docker images

If using minikube, run . ./scripts/use_minikube_docker.sh to use the local minikube docker repo. Otherwise, setup the appropriate docker repository for your environment. If you haven't installed docker this won't go well.

./images/nats-bench/build.sh

./images/stan-bench/build.sh

Make sure you are using a version of docker that support multi-stage builds.

NATS

Single Pub/Sub App

There is a basic pub/sub test, that sends 10M messages through a single server.

kubectl create -f manual_tests/job-nats-bench-pubsub.yaml 

Seperate publisher and subscriber applications

You can do one pub to one sub. These may or may not connect to different servers in your cluster.

kubectl create -f manual_tests/job-nats-bench-sub.yaml

Wait for it to start and subscribe, then launch the publisher.

kubectl create -f manual_tests/job-nats-bench-pub.yaml

Seperate publisher to many subscriber applications

For fanout, and to more confidently test the NATS server service, you can run one pub to five subs.

kubectl create -f manual_tests/job-nats-bench-sub-5.yaml 

Wait for it to start and subscribe, then launch the publisher.

kubectl create -f manual_tests/job-nats-bench-pub.yaml

NATS streaming

Use this pub/sub benchmark to sanity check the streaming server.

kubectl create -f manual_tests/job-stan-bench-pubsub.yaml

Example NATS Kubernetes objects

You can create a NATS server deployment and service directly; check out the files in the ./example_objects directory.

./example_objects/setup.sh

TODO

Charts

  • [ ] TLS options
  • [ ] Encrypt passwords
  • [ ] Annotations (service, controllers, etc)
  • [ ] Configuration files on a pvc
  • [ ] Do not solicit routes on a single server NATS deployment
  • [X] Chart READMEs
  • [ ] LoadBalancerIP value
  • [X] Add NATS streaming file store parameters
  • [ ] Monitoring (Prometheus)
  • [ ] Support conditional install of NATS in NATS streaming.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].