cass-operator | The DataStax Kubernetes Operator for Apache Cassandra
kandi X-RAY | cass-operator Summary
kandi X-RAY | cass-operator Summary
The DataStax Kubernetes Operator for Apache Cassandra. This repository replaces the old [datastax/cass-operator] for use-cases in the k8ssandra project. Some documentation is still out of date and will be modified in the future. Check [k8ssandra/k8ssandra] for more up to date information.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- checkNodeEMM is used to check the EMMileResult for a given node
- buildContainers builds cassandra containers
- newStatefulSetForCassandraDatacenter creates a StatefulSet for a given Cassandra Datacenter .
- buildPodTemplateSpec returns a shallow copy of the PodTemplateSpec
- main is the main subcommand .
- buildInitContainers builds an init container from the given base template
- ValidateDatacenterFieldChanges validates the fields of a CassandraDatacenter .
- CreateReconciliationContext creates a new ReconciliationContext
- Call node mgmt endpoint
- CheckNetworkPolicies is used to check if a network policy exists
cass-operator Key Features
cass-operator Examples and Code Snippets
Community Discussions
Trending Discussions on cass-operator
QUESTION
I'm trying to run K8ssandra but the Cassandra container keeps failing with the following message (Repeating over and over):
...ANSWER
Answered 2022-Jan-05 at 01:25I was able to fix this by increasing the memory to 12Gi
QUESTION
I am moving my MVP application to GCP. It is a general web application with standard database workload (CRUD). I am using cassandra
and play
, each has its own docker image. I am not expecting much traffic to begin with so would like to start with smaller VMs to keep cost low. I am also using kubernetes
operator for Cassandra
- https://github.com/datastax/cass-operator
Would it be possible to change the machine configuration later (CPUs, disk size) for Cassandra
when the traffic load increases? Would I have to stop the application completely when I am upgrading or would I be able to do rolling upgrade?
Any tips on how to approach upgrade later would be most appreciated.
...ANSWER
Answered 2020-Dec-17 at 14:34Yes, it's possible to change machine configuration later without downtime when using GKE cluster.
Have a look at the documentation Migrating workloads to different machine types:
A node pool is a subset of machines that all have the same configuration, including machine type (CPU and memory) authorization scopes. Node pools represent a subset of nodes within a cluster; a container cluster can contain one or more node pools.
When you need to change the machine profile of your Compute Engine cluster, you can create a new node pool and then migrate your workloads over to the new node pool.
and
To migrate your workloads without incurring downtime, you need to:
- Mark the existing node pool as unschedulable.
- Drain the workloads running on the existing node pool.
- Delete the existing node pool.
Kubernetes, which is the cluster orchestration system of GKE clusters, automatically reschedules the evicted Pods to the new node pool as it drains the existing node pool.
Note: This tutorial is only applicable if your container does not have Cluster Autoscaling enabled. If the Autoscaler adds or removes nodes while you are attempting a migration, you might not be able to mark all the nodes in the pool as unschedulable and drain them properly.
Detailed step by step instruction with commands and examples available at the documentation. To disable Cluster Autoscaling you can follow the documentation Disabling autoscaling for an existing node pool:
QUESTION
I have started using Cass-Operator and the setup worked like a charm! https://github.com/datastax/cass-operator.
I have an issue though. My cluster is up and running on GCP. But how do I access it from my laptop (basically from outside)? Sorry, I'm new to Kubernetes so I do not know how to access the cluster from outside?
I can see the nodes are up on the GCP dashboard. I can ping the external IP of the nodes from my laptop but when I run cqlsh external_ip 9042
then the connection fails.
How do I go about connecting the K8s/Cassandra cluster to outside work so that my web application can access it?
I would like to:
- have a url so that my web application uses that URL to connect to the cassandra/K8s cluster instead of IP address. Thus, I need a dns. Does it come by default in K8S? Would would be the url? Would K8s managing the dns mapping for me in some nodes get restarted?
- My web application should be able to reach Cassandra on 9042. It seems load balancing is done for http/https. The Cassandra application is not a http/https request. So I don't need port 80 or 443
I have read few tutorials which talk about Service, Loadbalancer and Ingress. But I am unable to make a start.
I created a service like this
...ANSWER
Answered 2020-Jun-30 at 08:19To output the stable external IP address under loadBalancer:ingress
use the following command:
QUESTION
I have a 3 node Kubernetes cluster and I have set up Cassandra on it using Cass-Operator. I am following the instructions from here - https://github.com/datastax/cass-operator
What does the 2/2 mean in the output of the following command
...ANSWER
Answered 2020-Jul-03 at 14:00When you are deploying some application, one pod can have more than 1 container inside. If you will check Kubernetes Pod docs you can find 2 typs:
Pods that run a single container.
The "one-container-per-Pod" model is the most common Kubernetes use case; in this case, you can think of a Pod as a wrapper around a single container, and Kubernetes manages the Pods rather than the containers directly.
Pods that run multiple containers that need to work together.
A Pod might encapsulate an application composed of multiple co-located containers that are tightly coupled and need to share resources. These co-located containers might form a single cohesive unit of service--one container serving files from a shared volume to the public, while a separate "sidecar" container refreshes or updates those files. The Pod wraps these containers and storage resources together as a single manageable entity.
More information you can find in this docs.
How Pod
configuration YAML with 2 containers looks like can be found here. In .spec.containers
you can specify 2 or more containers.
Ive deployed those YAMLs.
QUESTION
I have a Cassandra/Kubernetes cluster on GCP
...ANSWER
Answered 2020-Jul-02 at 06:29Use -n
parameter to specify correct namespace
where the statfulset
is deployed. Without the namespace
it's trying to delete from default
namespace where the statfulset
cluster1-dc1-default-sts
does not exist.
QUESTION
I have made a service.yaml and have created the service.
...ANSWER
Answered 2020-Jun-30 at 08:14You can get pods by querying with selector like following
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install cass-operator
Updates are supported from previous versions of k8ssandra/cass-operator. If upgrading from versions older than 1.7.0 (released under datastax/cass-operator name), please upgrade first to version 1.7.1. The following instructions apply when upgrading from 1.7.1 to 1.8.0 or newer. Due to the modifications to cass-operator’s underlying controller-runtime and updated Kubernetes versions, there is a need to do couple of manual steps before updating to a newest version of cass-operator. Newer Kubernetes versions require stricter validation and as such we need to remove preserveUnknownFields global property from the CRD to allow us to update to a newer CRD. The newer controller-runtime on the other hand modifies the liveness, readiness and configuration options, which require us to delete the older deployment. These commands do not delete your running Cassandra instances. You can now install new version of cass-operator as instructed previously.
If you have Prometheus installed in your cluster, you can apply the following command to install the Prometheus support:.
We have tested the cass-operator to work with cert-manager versions 1.3.1, 1.5.3 and 1.7.1. Other versions might work also. To install 1.7.1 to your cluster, run the following command:.
Almost every build, test, or development task requires the following pre-requisites….
Golang 1.17 or newer
Docker, either the docker.io packages on Ubuntu, Docker Desktop for Mac, or your preferred docker distribution. Other container engines such as podman should work also.
Kind or similar Kubernetes distribution for testing (Docker Desktop / Minikube will work if correct StorageClass is added)
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page