KtEnv (Virtual Environment Operator)

September 15, 2021 · View on GitHub

Isolate kubernetes pod communication into virtual groups according to pod label, with route fallback support.

diagram-en-us.jpg

Check ☞document☜ for more information.

中文介绍

Instruction

This project inspired by the "project environment" practice widely used in Alibaba Group, witch allow developers create virtual testing environment cheaply and quickly by reusing many service instances from another testing environment.

           +----------+   +----------+   +----------+
ParentEnv  | ServiceA |   | ServiceB |   | ServiceC |
           +----------+   +-^------+-+   +----------+
                            |      |
           +-----------+    |      |    +-----------+
SubEnv    -> ServiceA' +----+      +----> ServiceC' |
           +-----------+                +-----------+

This is a simple example of 2 virtual environments. A ParentEnv contains instances of all the 3 services, while a SubEnv inherited from ParentEnv only contains instance of ServiceA and ServiceC (record as ServiceA' and ServiceC').

The arrow shows a call sequence "ServiceA->ServiceB->ServiceC", when the request comes from instance ServiceA', it should firstly fallback to hit ServiceB in the ParentEnv, and finally turn to ServiceC' in SubEnv.

Support

Contact us with DingTalk:

dingtalk-group-en-us.jpg