purser

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2018 License: Apache-2.0

README

Purser extension for K8s

Build Status Go Report Card

Purser

Purser is an extension to Kubernetes tasked at providing an insight into cluster topology, costing, capacity allocations and resource interactions along with the provision of logical grouping of resources for Kubernetes based cloud native applications in a cloud neutral manner, with the focus on catering to a multitude of users ranging from Sys Admins, to DevOps to Developers.

It comprises of three components: a controller, a plugin and a UI dashboard.

The controller component deployed inside the cluster watches for K8s native and custom resources associated with the application, thereby, periodically building not just an inventory but also performing discovery by generating and storing the interactions among the resources such as containers, pods and services.

The plugin component is a CLI tool interfacing with the kubectl that helps query costs, savings defined at a level of control of the application level components rather than at the infrastructure level.

The UI dashboard is a robust application that renders the Purser UI for providing visual representation to the complete cluster metrics in a single pane of glass.

Demo

demo

Features

Purser with it's robust CLI and UI capabilities provides a set of features including, but not limited to the list below.

  • Capability to provide visibility into the following aspects of the K8s cluster

    • workload cost associated with the native/custom resources
    • savings opportunities associated with storage and compute requirements
    • single pane view of the complete cluster hierarchy
    • capacity allocations for CPU, memory, disk space and other resources
    • interactions among associated resources such as pods and services
  • Capability of user defined logical grouping of resources based on K8s CRD implementation for enhanced filtering.

  • A plugin extension to kubectl along with the UI for developer centric usage.

Purser UI demo

demo

Setup and Installation

Follow the instructions below to set up Purser in your environment.

Prerequisites
  • Kubernetes version 1.9 or greater.
  • kubectl installed and configured. For details see here.
Installation

Purser has three components to install.

Purser Controller Setup

Download the controller setup yaml file from here.

# Controller installation
kubectl create -f purser-controller-setup.yaml
Purser UI Setup

Download the UI setup yaml file from here.

# UI installation
kubectl create -f purser-ui-setup.yaml

_NOTE: Use flag --kubeconfig=<absolute path to config> if your cluster configuration is not at the default location.

Purser Plugin Setup
Linux and macOS
# Binary installation
wget -q https://github.com/vmware/purser/blob/master/build/purser-binary-install.sh && sh purser-binary-install.sh

Enter your cluster's configuration path when prompted. The plugin binary needs to be in your PATH environment variable, so once the download of the binary is finished the script tries to move it to /usr/local/bin. This may need your sudo permission.

Windows

For installation on Windows follow the steps in the manual installation guide.

Other Installation Methods

For other installation methods such as manual installation or installation from source code refer guides in docs.

Uninstalling

Uninstalling Purser Controller
kubectl delete -f purser-controller-setup.yaml
kubectl delete pvc datadir-dgraph-0
Uninstalling Purser UI
kubectl delete -f purser-ui-setup.yaml

_NOTE: Use flag --kubeconfig=<absolute path to config> if your cluster configuration is not at the default location.

Uninstalling Purser Binary
Linux/macOS
wget -q https://github.com/vmware/purser/blob/master/build/purser-binary-uninstall.sh && sh purser-binary-uninstall.sh

API Documentation

The project uses Swagger to document API's endpoints. The documentation is available at Swagger Hub.

Additional Documentation

Additional documentation can be found below:

Community, Discussion, Contribution and Support

Issues: Have an issue with Purser, please log it.

Contributing: Would you like to contribute to our project, refer How to contribute and Code of Conduct docs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL