Navigator
v0.1.0-alpha.1

Contents:

  • Quick-start
  • Elasticsearch
  • Cassandra
  • Development guide
Navigator
  • Docs »
  • Navigator - self managed DBaaS on Kubernetes
  • Edit on GitHub

Navigator - self managed DBaaS on Kubernetes¶

Navigator is a Kubernetes extension for managing common stateful services on Kubernetes. It is implemented as a custom apiserver that operates behind kube-aggregator and introduces a variety of new Kubernetes resource types.

As well as following “the operator model”, Navigator additionally introduces the concept of ‘Pilots’ - small ‘nanny’ processes that run inside each pod in your application deployment. These Pilots are responsible for managing the lifecycle of your underlying application process (e.g. an Elasticsearch JVM process) and periodically report state information about the individual node back to the Navigator API.

By separating this logic into it’s own binary that is run alongside each node, in certain failure events the Pilot is able to intervene in order to help prevent data loss, or otherwise update the Navigator API with details of the failure so that navigator-controller can take action to restore service.

  • navigator-apiserver - this takes on a similar role to kube-apiserver. It is responsible for storing and coordinating all of the state stored for Navigator. It requires a connection to an etcd cluster in order to do this. In order to make Navigator API types generally consumable to users of your cluster, it registers itself with kube-aggregator. It performs validation of your resources, as well as performing conversions between API versions which allow us to maintain a stable API without hindering development.
  • navigator-controller - the controller is akin to kube-controller-manager. It is responsible for actually realizing your deployments within the Kubernetes cluster. It can be seen as the ‘operator’ for the various applications supported by navigator-apiserver.
  • pilots - the pilot is responsible for managing each database process. Currently Navigator has two types: pilot-elasticsearch and pilot-cassandra.
_images/arch.jpg

Contents:

  • Quick-start
    • 1) Install Navigator using Helm
    • 2) Prepare your Kubernetes nodes
    • 3) Create an Elasticsearch cluster
    • 4) Scale the data nodes
  • Elasticsearch
    • Example cluster definition
    • Node Pools
    • Configure Scheduler Type
    • Managing Compute Resources for Clusters
    • Pilots
    • Other Supplementary Resources
    • System Configuration for Elasticsearch Nodes
  • Cassandra
    • Example cluster definition
    • Node Pools
    • Configure Scheduler Type
    • Cassandra Across Multiple Availability Zones
    • Managing Compute Resources for Clusters
    • Connecting to Cassandra
    • Pilots
    • Other Supplementary Resources
    • The Life Cycle of a Navigator Cassandra Cluster
  • Development guide
    • Setting up
    • Developing

Indices and tables¶

  • Index
  • Search Page
Next

© Copyright 2018, Jetstack Ltd.. Revision 13d9bd12.

Built with Sphinx using a theme provided by Read the Docs.