Giter VIP home page Giter VIP logo

microkubes's Introduction

microkubes

Microkubes is a ground-up scalable microservice framework

Getting started guide

For more information and how to set up your first microservice with Microkubes, visit our Getting started page.

Deployment guide for Kubernetes

These instructions will let you deploy the Microkubes on Kubernetes

Preparing

  1. Run a single-node Kubernetes cluster via Minikube tool
minikube --memory 8192 --cpus 2 start
  1. Create keys for authorization servers:
./keys/create.sh
  1. Create a default microkubes namespace and service account
kubectl create -f kubernetes/manifests/namespace.yaml
kubectl create -f kubernetes/manifests/serviceaccount.yaml
  1. Create a secret from keys generated in Step 2
kubectl -n microkubes create secret generic microkubes-secrets \
	--from-file=keys/default \
	--from-file=keys/default.pub \
	--from-file=keys/private.pem \
	--from-file=keys/public.pub \
	--from-file=keys/service.cert \
	--from-file=keys/service.key \
	--from-file=keys/system \
	--from-file=keys/system.pub
  1. Create a secret for the mongo objects creation
kubectl -n microkubes create secret generic mongo-init-db \
        --from-file=./kubernetes/manifests/mongo/create_microkubes_db_objects.sh
  1. Create microkubes configmap
kubectl -n microkubes create -f kubernetes/manifests/microkubes-configmap.yaml

Deploy Microkubes

Run the following commands:

cd kubernetes/manifests
kubectl create -f consul.yaml
kubectl create -f kube-consul-register.yaml
kubectl create -f kong.yaml
kubectl create -f mongo.yaml
kubectl create -f rabbitmq.yaml
kubectl create -f fakesmtp.yaml
kubectl create -f microkubes.yaml

The platform takes about 5 minutes to bring up and you can follow the progress using kubectl -n microkubes get pods -w. Once all services are running, you can start using microkubes.

Check that microkubes is up and running

The API gateway is exposed as a nodePort in kubernetes, you can get the URL and do an http GET request to check that microkubes is responding.

MICROKUBES_URL=`minikube service -n microkubes kong --url`
curl $MICROKUBES_URL/users

Contributing

For contributing to this repository or its documentation, see the Contributing guidelines.

microkubes's People

Contributors

draganbocevski avatar dumyan avatar ilchebedelovski avatar kalevski avatar mbocevski avatar ninazid avatar vladoohr avatar vojneski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

microkubes's Issues

Allow sending mail to unencrypted connection when deploying the example configuration

Currently we're getting errors in the log of microservice-mail:

microkubes_microservice-mail.1.uchrwz32tex9@pavle-lx    | 2018/12/07 13:08:03 Failed to send mail to [email protected]: unencrypted connection

The example setup of Microkubes ships with integrated dummy mail server (Mailhog). Mailhog is configured to listen on plain HTTP (unencypted connection), but microservice-mail is not configured to send to unencrypted servers. This ENV variable should be configured:
export ALLOW_UNENCRYPTED_CONNECTION=true

to allow sending the emails over plain text for the dummy mail server.

Creation of mongo-init-db secret is missing from the documentation

The mongo deployment needs the mongo-init-db secret to be created. So, running kubectl create secret generic mongo-init-db --from-file=./kubernetes/mongo/create_microkubes_db_objects.sh does the trick. However this is not an ideal design. We should rather move the creation of databse objects within the actual microservices rather than outside.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.