Coder Social home page Coder Social logo

mysocialapp / kubernetes-helm-chart-cassandra Goto Github PK

View Code? Open in Web Editor NEW
31.0 31.0 14.0 80 KB

Kubernetes Helm Chart for Cassandra

License: GNU General Public License v3.0

Smarty 13.79% Ruby 10.97% Shell 75.23%
cassandra helm helm-charts kubernetes

kubernetes-helm-chart-cassandra's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubernetes-helm-chart-cassandra's Issues

Duplicity missing from Cassandra Image used in Cassandra StatefulSet

First I'd like to say I really appreciate you putting this together. I ran into a couple of issues getting this to work. I don't mind creating my own docker images for cassandra that include duplicity however I wanted to make sure I wasn't missing something first.

The default image and tag for the statefulset in this chart is: quay.io/mysocialapp/cassandra:3.11.3-1.

Cassandra Exporter

Hi,

I am new to this cassandra_exporter. I have a Cassandra in my Kubernetes cluster. Now I am planning to fetch the Cassandra logs to Prometheus. I have tried to deployed ../kubernetes/templates/ yaml's. But we are getting many error like, missing of api versio, and unknown '{','}' and etc. Can you please let me know, how can I fetch my cassandra logs to Prometheus.
Regards,
Subin

RBAC Missing from Chart to use Reaper and Backups

Thanks again for putting this together.

I had to create a role, rolebinding, service account, and update cassandraReaper and backups in order to use Reaper and the Backups cronjob. Both use kubectl exec which in the default namespace is not included.

pods created but can't connect (from Janus), no nodetool status?

Cassandra pod seem to be up and running

cassandra-1                             2/2       Running            0          1h
cassandra-2                             2/2       Running            0          1h

I'm also able to get Prometheus to scrape the metrics.
But I'm not able to use cassandra. Janus cannot connect to it. It works fine with default Kubernetes statefulset example but not when I replace it with this helm chart.

com.netflix.astyanax.connectionpool.exceptions.TokenRangeOfflineException: TokenRangeOfflineException: [host=10.2.14.17(10.2.14.17):9160, latency=2(2), attempts=1]UnavailableException()
	at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:165)
	at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65)

it looks like Cassandra uses a different port as per the service (9042). I did edit the service to map 9160 to 9042 to try to make Janus happy, but no luck

And I'm not able to run nodetool status for troubleshooting:

bash: nodetool: command not found

Install multiple release in same namespace

In other charts I found that it's generally a convention to use the release name in the resource name. Example:

my-release-cassandra-0

So that we can have multiple installations in the same namespace.

my-releaseX-cassandra-0
my-releaseY-cassandra-0

I've been trying to make that work by editing the templates and using kubernetes.fullname in resource names. Example:

kind: Service
metadata:
  name: {{ template "kubernetes.fullname" . }}
  namespace: {{ .Release.Namespace }}

I had to edit the name in statefulset and edit the configmap to replace kubernetes.name with kubernetes.fullname as well as the service selector. But my pod can't reach the seed, so I must be doing something wrong

Is there a recommended way to use this chart so that it is not dependent on being installed in a new namespace? It would be very useful

I would prefer not to have to alter the templates like I did if possible

ssl encryption ?

Is it possible to use this chart with SSL encryption ?

The truststore and keystore files could be mounted as a kuberntes secret.

kubectl create secret cassandra-secret --from-file=cassandra.truststore.jks --from-file=cassandra.keystore.jks

And similarly voume and volume mount can be attached to the statefulset.yaml

volume:
 - name: cassandra-certificates
    secret:
       name: cassandra-certificates
volumeMounts:
- name: cassandra-certificates
   mountPath: /opt/cassandra/certs

missing settings in value.yaml cassandraAlertmanager.alertsEnabled sloInterrupt

It seems some settings are missing in values.yaml

Error: render error in "cassandra/templates/cassandraExporterConfigmap.yaml": template: cassandra/templates/cassandraExporterConfigmap.yaml:1:14: executing "cassandra/templates/cassandraExporterConfigmap.yaml" at <.Values.cassandraAle...>: can't evaluate field alertsEnabled in type interface {}

External Access To Each Node Using NodePort and this solution is not possible?

Hello,
I have a 3 node cassandra cluster with my service.yaml using NodePort, when I use my java client outside of kubernetes to connect to the cluster, it tries to connect to each host so it can load balance tasks but the problem I have is the IP:PORT returned for all hosts except for the one I provide to establish connection return their Kubernetes Internal IP and Ports which the client cannot connect to.

I see two problems, the first is that there is a single service for the cassandra cluster where I can only define 1 node port making it impossible to assign a unique node port value to each node. Secondly using Stateful service I don't see a way to provide broadcast IP and PORT for each node allowing me to make external connections to to each cluster node.

The default service yaml for this chart uses ClusterIP, with NodePort issues set a side, does this chart make it possible to provide unique broadcast IP:Ports for each POD the stateful set creates?

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.