Skip to content

Latest commit

 

History

History
45 lines (27 loc) · 2.14 KB

README.md

File metadata and controls

45 lines (27 loc) · 2.14 KB

HBase chart

A chart to deploy Hbase with Hadoop using Kubernetes. Heavily inspired by the Hadoop chart.

How-to contribute

This chart was developed without former k8s experience, please help us improve the chart by contributing to it!

Getting started

You need:

  • Kubernetes 1.8
  • Helm
helm install --name myzk incubator/zookeeper --set servers=1,heap="1G"
helm del --purge hbase;helm install . --name hbase

Architecture

This chart is using several functionalities from Kubernetes.

  • ConfigMap: at first, it is used as key-value to store elements. Here, we are using it to store config files. Furthermore, we are using it to inject a boostrap.sh to start our container.

    • For every container, we are mouting a container in /tmp based on the content of the ConfigMap (one entry == one file).
    • Entrypoint for every component is the bash called bootstrap.sh, which is hold by the ConfigMap.
    • bootstrap.sh is copying the files in the ConfigMap to the right location, starting the daemon and tail the logs
  • Headless Service: In Kubernetes, every request to a pod a loadbalanced through a proxy by default. But Hbase is directly trying to connect to the RS, so by enabling headless mode, we can directly access the RS container.

  • StatefulSet: it is used to deploy stateful applications to Kubernetes.

  • PodDisruptionBudget: Allow user to define policy on pod failure.

  • PersistentVolumClaim: allows pod to have volumes for data. Used for HDFS.

There's a YAML per role and per functionality. Binding is done through Selectors.

TODO

  • Namenode HA
  • Hbase Master HA
  • Include Zookeeper into the Charts