GithubHelp home page GithubHelp logo

piyushkamboj / cmak-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eshepelyuk/cmak-operator

0.0 1.0 0.0 288 KB

CMAK (prev. Kafka Manager) for Kubernetes

License: MIT License

Dockerfile 5.20% Python 68.90% Smarty 25.90%

cmak-operator's Introduction

CMAK operator

Release Docker Hub Artifact HUB MIT licence

CMAK operator is a set of tools packaged as Helm chart, that allows to install and configure CMAK (previously Kafka Manager) into Kubernetes cluster.

CMAK (previously Kafka Manager) is well-known and mature tool for monitoring and managing Apache Kafka clusters.

Installation

CMAK operator could be installed only with Helm 3. Helm chart is published to public Helm repository, hosted on GitHub itself.

It’s recommended to install CMAK operator into a dedicated namespace.

Add Helm repository
$ helm repo add cmak https://eshepelyuk.github.io/cmak-operator
$ helm repo update
Install latest version
$ helm install --create-namespace -n cmak-ns mycmak cmak/cmak-operator
Seach for available versions
$ helm search repo cmak-operator --versions
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
cmak/cmak-operator      0.2.1           3.0.0.5         CMAK operator for K8S.
cmak/cmak-operator      0.2.0           3.0.0.5         CMAK operator for K8S.
Install specific version
$ helm install --create-namespace -n cmak-ns --version 0.2.1 mycmak cmak/cmak-operator

Verify installation

Exposing CMAK UI

Currently, CMAK operator doesn’t create neither Ingress nor any other K8S resources to expose UI via HTTP. Users of CMAK operator should take care of this by themselves.

The simpliest test is to port forward CMAK UI HTTP port and access it from browser .

$ kubectl port-forward -n cmak-ns service/cmak 9000:9000

Then, open http://localhost:9000 in your browser.

Configuration

It’s extremely easy to configure multiple clusters in CMAK, starting from cluster setup, connection settings and ending with authorization using Helm values files.

Check CMAK operator values for all available options and their description.

  1. Minimal values.yaml configuration for adding a several Kafka clusters to CMAK.

cmak:
  clusters:
    - name: "cluster-stage"
      curatorConfig:
        zkConnect: "kafka01.stage:2181,kafka02.stage:2181"
    - name: "cluster-prod"
      curatorConfig:
        zkConnect: "kafka01.prod:2181,kafka02.prod:2181,kafka03.prod:2181"

Connection settings could be configured for all clusters at once or per dedicated cluster.

  1. Configuring connection settings

cmak:
  clustersCommon:
    curatorConfig:
      zkMaxRetry: 100 # (1)
  clusters:
    - name: "cluster-stage"
      kafkaVersion: "2.5.0" # (2)
      curatorConfig:
        zkConnect: "kafka01.stage:2181,kafka02.stage:2181"
    - name: "cluster-prod"
      kafkaVersion: "2.1.0" # (3)
      enabled: false
      curatorConfig:
        zkConnect: "kafka01.prod:2181,kafka02.prod:2181,kafka03.prod:2181"
  1. this setting is applied to both clusters.

  2. applied only to cluster-stage.

  3. applied only to cluster-prod.

Configuration should be passed to helm via command line during installation or upgrade.

$ helm install --create-namespace -n cmak-ns -f cmak-values.yaml mycmak cmak/cmak-operator

Troubleshooting

CMAK doesn’t configure clusters from Helm values
  • CMAK settings are not applied immediately, but only after reconcile.schedule period had passed.

  • Check logs of cron job to see if there’s no connection failure to ZK.

Internals

CMAK operator comprises following components:

Design choices

Dedicated Zookeeper instance.

TO BE DEFINED.

Not using REST for configuring CMAK clusters.

TO BE DEFINED.

Reconciliation with CronJob.

TO BE DEFINED.

cmak-operator's People

Contributors

eshepelyuk avatar eshepelyuknewagesol avatar piyushkamboj avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.