Enterprises are building Kubernetes platforms by extending Kubernetes APIs (Resources) using required Operators. Platform teams are faced with following challenges while managing such environments:
Establish required guardrails around Custom API usage
Inventory of resource relationships to visualize application stacks
Application stack level monitoring and charge-back
KubePlus is a Custom API Manager that allows you to
Discover, monitor and troubleshoot Custom Resources and their dependencies
Application stacks are realized by establishing relationships between available Kubernetes Resources / APIs (built-in or Custom). These relationships are primarily of four types - (1) Owner references, (2) Labels, (3) Annotations, (4) Spec Properties. KubePlus is able to runtime construct Kubernetes Resource relationship graphs. This enables KubePlus to build resource topologies and offer required visibility and control at Custom API or application stack level.
Here is a sample workload on a cluster of two wordpress stacks. Wordpress pods depend on MySqlCluster Custom Resources.
Platform team composes a new WebAppService CRD for application developers to deploy these wordpress stacks. This allows Platform team to establish required guardrails and expose only those parameters as variables that application developers need to set. It also allows them to gather various stack level Prometheus metrics.
Here is a visual representation of the complete resource relationship graph for one of the platform stacks.
This resource inventory and their inter-relationships can be discovered using following KubePlus kubectl commands:
# kubectl connections Service wordpress
# kubectl connections cr MysqlCluster cluster1
#kubectl metrics cr MysqlCluster cluster1
#kubectl metrics service wordpress
#kubectl metrics account <Service account>