What is K8ssandra?
It is the kubernetes cluster version of the Database Apache-Cassandra along with Stargate, Prometheus operators, it is a simple and quick method to setup a near-full stack of the database instance
Requisites:
- 4 CPU cores
- 8128 MB
Software Requirements:
- Minikube
- Helm (v3)
Installation
Install the Rancher Local path provisoner by running the command
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
Add the lightweight K8ssandra chart running the following command
helm repo add dokc https://dokc.github.io/Helm-Charts/
Check whether the repo was installed
helm repo list
It must show something like this:
NAME URL cassandra https://helm.k8ssandra.io/stable traefik https://helm.traefik.io/traefik minio https://helm.min.io dok https://dokc.github.io/Helm-Charts/
The chart now has been configured for installation, to install the K8ssandra Chart
You can run the k8ssandra configuration yaml with the chart
cassandra: version: < Cassandra Version Number, preferred version = 4.0.1 > cassandraLibDirVolume: storageClass: local-path size: 5Gi allowMultipleNodesPerWorker: true heap: size: 1G newGenSize: 1G resources: requests: cpu: 1000m memory: 2Gi limits: cpu: 1000m memory: 2Gi datacenters: - name: < Data Center Name > size: < Size > racks: - name: < Rack Name > kube-prometheus-stack: grafana: adminUser: < Grafana Admin User > adminPassword: < Grafana Password > stargate: enabled: < Boolean > replicas: 1 heapMB: 256 cpuReqMillicores: 200 cpuLimMillicores: 1000
To run this:
helm install <cluster_name> dok/k8s-lightweight -f <filename>.yaml
This will run your Kubernetes cluster, To check the pods that are running, you can run the kubectl get pods
and it must be like this
NAME READY STATUS RESTARTS AGE prometheus-test-dep-kube-prometheus-s-prometheus-0 2/2 Running 0 2m43s test-dep-cass-operator-6c75d6d684-vh2ts 1/1 Running 0 2m45s test-dep-datacenter1-default-sts-0 2/2 Running 0 2m28s test-dep-datacenter1-stargate-699f64f646-w85kw 1/1 Running 0 2m45s test-dep-grafana-57fd996d9-c58tf 2/2 Running 0 2m45s test-dep-kube-prometheus-s-operator-767fc8984c-9rlmj 1/1 Running 0 2m45s
** The pods may take up to 4 minutes to setup, please be patient **
Once the pods are setup, you can run kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 144m prometheus-operated ClusterIP None <none> 9090/TCP 33s test-dep-dc-test-additional-seed-service ClusterIP None <none> <none> 32s test-dep-dc-test-all-pods-service ClusterIP None <none> 9042/TCP,8080/TCP,9103/TCP 32s test-dep-dc-test-service ClusterIP None <none> 9042/TCP,9142/TCP,8080/TCP,9103/TCP,9160/TCP 33s test-dep-dc-test-stargate-service ClusterIP 10.96.125.32 <none> 8080/TCP,8081/TCP,8082/TCP,8084/TCP,8085/TCP,9042/TCP 35s test-dep-grafana ClusterIP 10.106.69.131 <none> 80/TCP 35s test-dep-kube-prometheus-s-operator ClusterIP 10.100.170.208 <none> 443/TCP 35s test-dep-kube-prometheus-s-prometheus ClusterIP 10.109.19.63 <none> 9090/TCP 35s test-dep-seed-service ClusterIP None <none> <none> 32s
You can port-forward these services as per your requirement
Example: kubectl port-foward svc/test-dep-grafana 80
You can use the kube-forwarder tool to port-forward the services in your local machines
Top comments (0)