• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    Go
  • License
    Other
  • Created about 5 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Another great app kind for Kubernetes!

TAPP

TAPP is a CustomResourceDefinition(CRD) based app kind, it contains most features of kubernetes deployment and statefulset, and it is easy for users to run legacy applications on Kubernetes. Nowadays, many customers want to adopt Kubernetes, and migrate their legacy applications to Kubernetes. However they could not use Kubernetes’ workloads(e.g. deployment, statefulset) directly, and it will take a lot of effort to transform those applications to microservices. TAPP could solve these problems.

Features

  • Support unique index for each instance(same as statefulset)

  • Support operating(start/stop/upgrade) on specific instances(pods)

    It is more suitable for traditional operation and maintenance, e.g. when administor want to stop one machine, he could just stop instances on that machine, and do not affect instances on other machines.

  • Support in place update for instances

    While many stateless workloads are designed to withstand such a disruption, some are more sensitive, a Pod restart is a serious disruption, resulting in lower availability or higher cost of running.

  • Support multi versions of instances

    Instances use different images or different config.

  • Support Horizontal Pod Autoscaler(HPA) according to a lot kinds of metrics(e.g. CPU, memory, custom metrics)

  • Support rolling update, rolling back

Usage

Find more usage at tutorial.md.

Build

$ make build

Run

# assumes you have a working kubeconfig, not required if operating in-cluster
$ bin/tapp-controller --master=127.0.0.1:8080    // Assume 127.0.0.1:8080 is k8s master ip:port
or
$ bin/tapp-controller --kubeconfig=$HOME/.kube/config

# create a custom resource of type TApp
$ kubectl create -f artifacts/examples/example-tapp.yaml

# check pods created through the custom resource
$ kubectl get pods

Cleanup

You can clean up the created CustomResourceDefinition with:

$ kubectl delete crd tapps.apps.tkestack.io

More Repositories

1

tke

Native Kubernetes container management platform supporting multi-tenant and multi-cluster
Go
1,474
star
2

gpu-manager

Go
823
star
3

kvass

Kvass is a Prometheus horizontal auto-scaling solution , which uses Sidecar to generate special config file only containes part of targets assigned from Coordinator for every Prometheus shard.
Go
614
star
4

kstone

Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Go
526
star
5

vcuda-controller

C
494
star
6

gpu-admission

Go
128
star
7

galaxy

Providing high-performance network for Kubernetes
Go
109
star
8

image-transfer

Go
74
star
9

cron-hpa

Cron Horizontal Pod Autoscaler(CronHPA)
Go
60
star
10

lb-controlling-framework

A controller that helps you manipulate arbitrary load balancers
Go
56
star
11

charts

Mustache
40
star
12

docs

https://tkestack.github.io/docs/
37
star
13

go-nvml

Go
31
star
14

kube-jarvis

Go
28
star
15

tke-k8s-distro

Repository of Tencent TKE Kubernetes Distribution
Shell
28
star
16

yarn-opterator

An kubernetes opterator to manager the yarn nodemanager, which can be used to deploy yarn on kubernetes.
Go
22
star
17

volume-decorator

Go
14
star
18

csi-operator

Go
14
star
19

kstone-dashboard

Kstone Dashboard is a web-based UI for managing Kstone. It can help users to manage etcd based kstone and enjoy monitoring, inspection, visualization, backup and other features.
TypeScript
14
star
20

kstone-etcd-operator

kstone-etcd-operator is a subproject of etcd cluster management platform kstone. It's inspired by etcd-operator. And has more complete support for persistent storage and better disaster tolerance.
Go
11
star
21

toc

7
star
22

knitnet-operator

Operator for support direct networking between Pods and Services in different Kubernetes clusters
Go
7
star
23

gpu-exporter

C
5
star
24

ronqir

CRI runtime in Rust
5
star
25

gc-controller

Go
4
star
26

kube-event-watcher

Go
4
star
27

aia-ip-controller

Aia-ip-controller is a Kubernetes application, which make it possible for Tencent Kubernetes Engine(TKE) customers to leverage Tencent Cloud's AIa Service to accelerate network with global coverage.
Go
4
star
28

tke-extend-network-controller

A Network Controller for TKE
Go
3
star
29

web

TKEStack website
HTML
1
star