Giter Site home page Giter Site logo

yeouchien / charts-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from streamnative/charts

0.0 1.0 0.0 696 KB

StreamNative / Apache Pulsar Helm Charts Repository

Home Page: https://charts.streamnative.io

License: Apache License 2.0

Smarty 41.04% Shell 47.91% Go 7.22% Dockerfile 0.54% HTML 3.30%

charts-1's Introduction

Official Helm Chart for Apache Pulsar and StreamNative Platform

This is the officially supported Helm Chart for install Apache Pulsar or StreamNative Platform on Kubernetes.

This Helm Chart includes all the components of Apache Pulsar for a complete experience.

  • Pulsar core components:
    • ZooKeeper
    • Bookies
    • Brokers
    • Function workers
    • Proxies
    • Kafka-on-Pulsar
    • Presto
  • StreamNative Control Center:
    • Pulsar Manager
    • Node Exporter
    • Prometheus
    • Grafana
    • Grafana Loki
    • Alert Manager

It includes support for:

  • Security
    • Automatically provisioned TLS certs, using Jetstack's cert-manager
    • TLS Encryption
      • Proxy
      • Broker
      • Toolset
      • Kafka-on-Pulsar
      • Bookie
      • ZooKeeper
    • Authentication
      • JWT
      • Mutal TLS
      • Kerberos
    • Authorization
  • Storage
    • Non-persistence storage
    • Persistence Volume
    • Local Persistent Volumes
    • Tiered Storage
  • Functions
    • Kubernetes Runtime
    • Process Runtime
    • Thread Runtime
  • Operations
    • Independent Image Versions for all components, enabling controlled upgrades
  • External Connectivies
    • External DNS
    • Control Center Ingress

Requirements

In order to use this chart to deploy Apache Pulsar on Kubernetes, the followings are required.

  1. kubectl 1.14 or higher, compatible with your cluster (+/- 1 minor release from your cluster)
  2. Helm v3 (3.0.2 or higher)
  3. A Kubernetes cluster, version 1.14 or higher.

Environment setup

Before proceeding to deploying Pulsar, you need to prepare your environment.

Tools

helm and kubectl need to be installed on your computer.

Add to local Helm repository

To add this chart to your local Helm repository:

helm repo add streamnative https://charts.streamnative.io

To use the helm chart:

NOTE: Please specify --set initialize=true when installing a release at the first time. initialize=true will start initialize jobs to initialize the cluster metadata for both bookkeeper and pulsar clusters.

helm install --set initialize=true <release-name> streamnative/pulsar

Kubernetes cluster preparation

You need a Kubernetes cluster whose version is 1.14 or higher in order to use this chart, due to the usage of certain Kubernetes features.

We provide some instructions to guide you through the preparation for the following cloud providers.

Deploy Pulsar to Kubernetes

  1. Clone the StreamNative Helm charts repository.

    git clone https://github.com/streamnative/charts.git
    cd charts
  2. Run prepare_helm_release.sh to create required kubernetes resources for installing this Helm chart.

    • A k8s namespace for installing the Pulsar release (if -c is specified)
    • Create the JWT secret keys and tokens for three superusers: broker-admin, proxy-admin, and admin. By default, it generates asymmeric pubic/private key pair. You can choose to generate symmeric secret key by specifying --symmetric in the following command.
      • proxy-admin role is used for proxies to communicate to brokers.
      • broker-admin role is used for inter-broker communications.
      • admin role is used by the admin tools.
    ./scripts/pulsar/prepare_helm_release.sh -n <k8s-namespace> -k <pulsar-release-name> -c
  3. Add loki Helm Charts repository and update charts.

    $ helm repo add loki https://grafana.github.io/loki/charts
    $ helm dependency update pulsar
  4. Use the Pulsar Helm charts to install StreamNative Platform.

NOTE: Please specify --set initialize=true when installing a release at the first time. initialize=true will start initialize jobs to initialize the cluster metadata for both bookkeeper and pulsar clusters.

This command installs and starts StreamNative Platform.

```bash 
$ helm install --set initialize=true <pulsar-release-name> streamnative/pulsar
```
  1. Access the Pulsar cluster

    The default values will create a ClusterIP for the proxy you can use to interact with the cluster. To find the IP address of proxy use:

    kubectl get service -n <k8s-namespace>

For more information, please follow our detailed quick start guide.

Customize the deployment

We provide a detailed guideline for you to customize the Helm Chart for a production-ready deployment.

You can also checkout out the example values file for different deployments.

Upgrading

Once your Pulsar Chart is installed, configuration changes and chart updates should be done using helm upgrade.

If you are updating images used by the Helm chart, you can specify imagePuller.hook.enabled to enable a Helm hook to pull images before deploying a newer Helm release. The imagePuller ensures all the images are pulled to all kubernetes hosts before deploying the Helm release.

helm repo add streamnative https://charts.streamnative.io/
helm repo update
helm get values <pulsar-release-name> > pulsar.yaml
helm upgrade -f pulsar.yaml \
    [--set imagePuller.hook.enabled=true] \
    <pulsar-release-name> streamnative/pulsar

For more detailed information, see our Upgrading guide.

Uninstall

To uninstall the Pulsar Chart, run the following command:

helm delete <pulsar-release-name>

For the purposes of continuity, these charts have some Kubernetes objects that are not removed when performing helm delete. These items we require you to conciously remove them, as they affect re-deployment should you choose to.

  • PVCs for stateful data, which you must consciously remove
    • ZooKeeper: This is your metadata.
    • BookKeeper: This is your data.
    • Prometheus: This is your metrics data, which can be safely removed.
  • Secrets, if generated by our prepare release script. They contain secret keys, tokens, etc. You can use cleanup release script to remove these secrets and tokens as needed.

Troubleshooting

We've done our best to make these charts as seamless as possible, occasionally troubles do surface outside of our control. We've collected tips and tricks for troubleshooting common issues. Please examine these first before raising an issue, and feel free to add to them by raising a Pull Request!


Please visit StreamNative Docs for more details.

charts-1's People

Contributors

addisonj avatar congbobo184 avatar dave-b-code avatar dwyger-ci avatar eaba avatar enriched avatar freeznet avatar jonaskint avatar jujugrrr avatar lukestephenson avatar mistertimn avatar nickelozz avatar sijie avatar stevenarvar avatar tabalt avatar vkvm avatar wolfstudy avatar wuyin avatar zymap avatar

Watchers

 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.