Skip to main content

Pre-Deployment Guide KOBIL Shift

Pre-Deployment Guide KOBIL Shift

KOIBL Shift is an application suite hosted on Kubernetes platform delivered by a Helm chart packages (via private KOBIL Chart repository) with references to a private KOBIL image repository for pulling the KOBIL images. The application suite is strictly docker image based and compatible to higher level orchestration tools on top of kubernetes - like Openshift. The KOBIL Shift services install is flexible by configuration at time of deployment. So one install fits to all requirements by specific deployment configuration.

  • Target platform is Kubernetes

  • At technology level the Shift deployment is done using Operator technology per KOBILShift-Operator which is loading the KOBIL service images from private KOBIL image repository (KOBIL Repository) or a local repository operated by the deploying party.

  • At infrastructure level the KOBIL Shift is by default implemented using a Service-Mesh (ISTIO) Network services (ISTIO-Gateway and VirtualServices) which provides connectivity between KOBIL Services and Service-Provider Loadbalancer or Gateway services.

KOBIL Shift - Helm packages names are: "shift" and "shift-operator"

KOBIL Shift suite and the KOBIL Shift-Operator is delivered by KOBIL helm chart package named shift and shift-operator which is available from KOBIL private Chart repository. From the KOBIL Shift Charts it is referring to KOBIL images provided by KOBIL private image repository.

The KOBIL Shift deployment is a 2step helm chart deployment to install first the Shift-Operator and then the Shift deployments:

  • The helm KOBIL shift-operator chart package covers the configuration of the shift-operator.

  • The helm KOBIL shift chart package covers the KOBIL services components which are deployed by the Shift-Operator to the Kubernetes cluster. The Helm charts and configuration data are used to generate all required Kubernetes objects. Main configuration file is the meta-configuration file values.yaml in the KOBIL Shift Chart package. For the KOBIL Shift-Operator package the very same design is used covering the values.yaml in the root directory.

KOBIL images are available only on private KOBIL Repositories (request for access). KOBIL helm charts are available only on private KOBIL helm-repository (request for access) or could be provided by KOBIL as tar-package. KOBIL will provide access credentials for both private repositories.

Installing KOBIL Shift

The deployment for KOBIL Shift requires a Kubernetes Cluster environment running at time of deployment with appropriate requirements (Resources, Secrets and StorageClass). All KOBIL Shift specific setup is done by initial edit to the metaconfiguration chart-file ./shift/values.yaml. This is the main configuration file covering for all components the "switches (enable/disable)" and "configuration settings". Find details from Shift-README which is available via KOBIL chart repository.

The deployment is done using "helm"-tool running a single helm install command for all the KOBIL Shift packages/charts. There is no need to edit sub-chart configuration files (values.yaml) to deploy a full KOBIL Shift suite, nor to run additional "helm install" actions on sub-charts. Installing KOBIL Shift meta-Chart covers all components and allows specific enablement by editing the KOBIL Shift values.yaml.

Installation is typically done by these steps:

  • Having a prepared workstation (i.e. helm and kubectl runtime) to access the Kubernetes platform environment.
  • Prepare cluster hosted on Kubernetes (workstation and user-context granted for cluster access) to fulfill KOBIL Shift required services.
  • Prepare/Configure for KOBIL Shift requirements (here Kafka- and Redis-services setup)
  • Deploy/Install KOBIL Shift-Operator first using "helm" tool
  • Deploy/Install KOBIL Shift using "helm" tool

The install/deployment for KOBIL Shift fully relies on "helm3" capable workstation (pipeline) setup.

The KOBIL Shift deployment is flexible to address a new install from scratch without any additional license resulting in a full functional test-install.

Monitoring and Tracing functionality

The available Charts also offers support for setting up monitoring and tracing stacks tools. Similar to the Shift deployment options, it supports several levels.

Certain KOBIL Shift components expose metrics in prometheus format. Those metrics can be scraped by existing tools supporting prometheus format to perform e.g. health monitoring.

Certain KOBIL Shift components as well as KOBIL Shift clients report spans & traces via Agent sidecars. The service can be configured to report to existing tools to perform in depth monitoring and application performance management. See ie. https://opencensus.io/service/exporters/ for supported export formats. To receive data from KOBIL Shift client services, an additional Agents must be deployed and exposed via ingress resources.

Find more details here: KOBIL Shift Metrics - Monitoring

KOBIL Shift services write logs to stdout and files. Existing tools can be used to collect these logs as per sample configuration covered in the KOBIL Shift charts. Sample implementation for logging via promtail, jaeger, promtail and grafana is part of the KOBIL chart packages.

Monitoring

The following Kubernetes objects are optionally available for the monitoring stack

  • Prometheus Service Monitor definitions

    • CRDs as part of the Prometheus Operator
    • Fully configures to scrape the Shift service metrics endpoints
  • Prometheus instance to scrape metrics

    • CRD as part of the Prometheus Operator

    • requires storage class for persistant storage

    • Alertmanager to emit alerts based on thresholds and prometheus queries

    • CRD as part of the Prometheus Operator

  • Grafana deployment to visualize metrics

    • fully configured to use provided prometheus data source
    • contains preconfigured dashboards

Tracing

The following Kubernetes objects are optionally available for the tracing stack

  • OpenCensus Collector deployment 

    • central point for exporting to tracing backend
  • Jaeger tracing backend and UI

    • CRD of Jaeger operator
    • Requires database for persistent storage
  • KubeDB for Elasticsearch

    • Requires storage class for persistent storage
  • Grafana deployment as Frontend for Elasticsearch