/katlas

A distributed graph-based platform to automatically collect, discover, explore and relate multi-cluster Kubernetes resources and metadata.

Primary LanguageGoApache License 2.0Apache-2.0

K-Atlas

Build Status codecov Go Report Card Slack Chat

What It Does?

K-Atlas (pronounced Cutlass), is a distributed graph based platform to automatically collect, discover, explore and relate multi-cluster Kubernetes resources and metadata. K-Atlas's rich query language allows for simple and efficient exploration and extensibility.

It addresses following problems in a large scale enterprise environment of Kubernetes.

  • Discoverability
    • Find K8s objects across multiple distributed K8s clusters
    • Real-time view of discovered objects
    • Streaming APIs and UI for both programmatic and human interactions
  • Advanced Exploration
    • Identify similarities and differences between objects from pods to clusters
    • Correlate different objects by performing advanced join operations
  • Federated Application View
    • Applications take center stage. K-Atlas provides a unique, application-centric view, with metadata from multiple clusters
    • Single pane of glass view of the entire application - from edge to database, across all clusters, regions etc.
  • Reporting
    • Provide advanced reporting on compliance, security and other organizational policies
  • Policy Enforcement
    • Allow for organizational policies to be enforced across the fleet in a consistent manner

Check out more details on Motivation and Use Cases that K-Atlas is addressing.

It provides a Web Viewer that can be used to search the Kubernetes cluster data and view graphical results in real time.

Click on the thumbnail below to see a demo video.

KAtlas Demo Video

Core Components

Collector

The collector is responsible for discovery of Kubernetes assets in Kubernetes Clusters. For details on the Collector design, please refer Design Concepts

K-Atlas Service

The K-Atlas Service exposes APIs that can be used to get details about Kubernetes entities and run queries to help diagnose issues in Kubernetes clusters. For details , please refer K-Atlas APIs

K-Atlas Browser

The Web Application exposes UI search capability to search clusters based on several criteria and provide a real time graphical view of entities. For details on usage, please Click here to see a demo

Graph Database

Dgraph is used as the graph database. To know more about our motivation to choose Dgraph, please refer Design Concepts

Deploying to a Cluster

Technical Requirements

Make sure you have the following prerequisites:

  • A local Go 1.7+ development environment.
  • Access to a Kubernetes cluster.

Setup Steps

How to Set Up.

Releases

Latest version (v0.6)

  • QSL query support
  • Dynamic search result layout based on QSL
  • Graph view based on QSL query required objects & relationships
  • Pagination support for both API and UI
  • Custom metadata definition via new API

More details about specific K-Atlas features are at Release Notes.

Contributing

We encourage you to get involved with K-Atlas, as users or contributors and help with code reviews.

Read the contributing guidelines to learn about building the project, the project structure, and the purpose of each package.