All Projects → Coderhypo → KubeService

Coderhypo / KubeService

Licence: GPL-3.0 license
A simple Kubernetes⎈ CRD controller build on kubebuilder for micro-service management.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to KubeService

iam-manager
AWS IAM role management for K8s cluster using kube builder "Operator" framework
Stars: ✭ 41 (+105%)
Mutual labels:  crd-controller, kubebuilder
konsumerator
Kafka Consumer Operator. Kubernetes operator to manage consumers of unbalanced kafka topics with per-partition vertical autoscaling based on Prometheus metrics
Stars: ✭ 20 (+0%)
Mutual labels:  crd-controller, kubebuilder
netdash
Delegated IT infrastructure administration
Stars: ✭ 16 (-20%)
Mutual labels:  management
College-Management-Android-App
Compelete College Management Android App
Stars: ✭ 43 (+115%)
Mutual labels:  management
core
Liman Core allows you to centrally manage all servers in your IT processes remotely, with stable and secure. You can improve the features with expandable extensions and modules.
Stars: ✭ 35 (+75%)
Mutual labels:  management
kstone
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Stars: ✭ 592 (+2860%)
Mutual labels:  management
redismanager
a cross-platform redis gui client (or server)
Stars: ✭ 22 (+10%)
Mutual labels:  management
hypertrons
🤖Open source RPA for open organization
Stars: ✭ 51 (+155%)
Mutual labels:  management
sqstorage
A easy to use and quick way to organize your inventory, storages and storage areas
Stars: ✭ 18 (-10%)
Mutual labels:  management
career-ladders
A sample of career ladders I use for my organization, open sourced for anyone.
Stars: ✭ 676 (+3280%)
Mutual labels:  management
storaji-ui
Storaji frontend. Built with Electron and Angular 4.
Stars: ✭ 23 (+15%)
Mutual labels:  management
gcp-serviceaccount-controller
This is a controller to automatically create gcp service accounts an save them into kubernetes secrets
Stars: ✭ 14 (-30%)
Mutual labels:  crd-controller
PM-ClassActivity-C
activity and tasks to be done in small groups as a learning process
Stars: ✭ 15 (-25%)
Mutual labels:  management
management-sdk-python
Cohesity Management SDK for Python.
Stars: ✭ 18 (-10%)
Mutual labels:  management
docs
The documentation for Firefly III
Stars: ✭ 30 (+50%)
Mutual labels:  management
emhass
emhass: Energy Management for Home Assistant, is a Python module designed to optimize your home energy interfacing with Home Assistant.
Stars: ✭ 54 (+170%)
Mutual labels:  management
cardanocli-js
Wrapping the cardano-cli inside JavaScript
Stars: ✭ 173 (+765%)
Mutual labels:  management
bonsai
Open source software for product footprinting.
Stars: ✭ 45 (+125%)
Mutual labels:  management
Switch
Manage chrome extensions from the toolbar
Stars: ✭ 13 (-35%)
Mutual labels:  management
vueman.ga
Delightful reading and tracking of your mangas.
Stars: ✭ 32 (+60%)
Mutual labels:  management

KubeService

A simple CRD controller for micro-service management.

What's KubeService

KubeService is a CRD controller build on KubeBuilder, and this define some CR in kubernetes like: AppMicroService for micro-service management easier .

The logical structure like:

Feature

Deploy management

User can define a App resource to manage multiple micro services, and use DeployVersion to making multiple versions coexist.

Load balancing configuration

User use define CurrentVersion make the current version provide services, and define Canary to Canary Deploy other versions.

Usage

install and run

Add CRD to kubernetes:

make install

run controller on local

make run

App Demo

apiVersion: app.o0w0o.cn/v1
kind: App
metadata:
  name: voting-sample
spec:
  microServices:
    - name: voting-web
      spec:
        loadBalance:
          service:
            name: voting-web
            spec:
              ports:
                - protocol: TCP
                  port: 80
                  targetPort: 80
          ingress:
            name: voting-web
            spec:
              rules:
                - host: voting.o0w0o.cn
                  http:
                    paths:
                      - path: /
                        backend:
                          serviceName: voting-web
                          servicePort: 80
        versions:
          - name: v1
            template:
              replicas: 2
              selector:
                matchLabels:
                  app: voting-web
              template:
                metadata:
                  labels:
                    app: voting-web
                spec:
                  containers:
                    - image: daocloud.io/w0v0w/voting-demo-voting:v1
                      name: voting-web
          - name: v2
            canary:
              weight: 30
            template:
              replicas: 1
              selector:
                matchLabels:
                  app: voting-web-for-kid
              template:
                metadata:
                  labels:
                    app: voting-web-for-kid
                spec:
                  containers:
                    - image: daocloud.io/w0v0w/voting-demo-voting:v2
                      name: voting-web-for-kid
        currentVersionName: v1
    - name: voting-result
      spec:
        loadBalance:
          service:
            name: voting-result
            spec:
              ports:
                - protocol: TCP
                  port: 80
                  targetPort: 80
          ingress:
            name: voting-result
            spec:
              rules:
                - host: result.voting.o0w0o.cn
                  http:
                    paths:
                      - path: /
                        backend:
                          serviceName: voting-result
                          servicePort: 80
        versions:
          - name: v1
            template:
              replicas: 1
              selector:
                matchLabels:
                  app: voting-result
              template:
                metadata:
                  labels:
                    app: voting-result
                spec:
                  containers:
                    - image: daocloud.io/w0v0w/voting-demo-result:v1
                      name: voting-result
        currentVersionName: v1

---

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: redis
  name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - image: redis
          name: redis

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: redis
  name: redis
spec:
  ports:
    - port: 6379
      protocol: TCP
      targetPort: 6379
  selector:
    app: redis
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].