But again if
Some Cassandra node (pod) with particular IP X is down,
Second Cassandra node (pod) tries to take the IP X of first Cassandra node,
Second Cassandra node should fail to join the cluster as the Cassandra
cluster will complain that IP X is already occupied.
In that sense actual swap of IPs can occur between two nodes and data
issues should not occur.

I am asking this because the only case where I see IP swap can occur is
when two Cassandra nodes are running on the same K8S host node. I am
evaluating how safe it is two run two Cassandra nodes on a single K8S host
node.

Regards
Manish



On Tue, Aug 4, 2020 at 9:01 AM Christopher Bradford <bradfor...@gmail.com>
wrote:

> In *most* k8s environments each Kubernetes worker receives its own
> dedicated CIDR range from the cluster’s CIDR space for allocating pod IP
> addresses. The issue described can occur when a k8s worker goes down then
> comes back up and the pods are rescheduled where either pod starts up with
> another pods previously used IP.
>
> They don’t necessarily have to swap 1:1 (ie one pod could use the other’s
> previous address while that pod receives a new address). Additionally it’s
> not a race condition of which container starts first. The k8s scheduler and
> kubelet daemon assign IPs to pods.
>
> On Mon, Aug 3, 2020 at 11:14 PM manish khandelwal <
> manishkhandelwa...@gmail.com> wrote:
>
>> I have started reading about how to deploy Cassandra with K8S. But as I
>>> read more I feel there are a lot of challenges in running Cassandra on K8s.
>>> Some of the challenges which I feel are
>>>
>>> 1. POD IPs identification - If the pods go down and when they come up
>>> their IPs change, how is it handled as we are dependent on IPs of Cassandra
>>> nodes for internode as well client server communication.
>>>
>>
>> Strictly safe to change an IP to an IP that is unused.
>> Strictly unsafe to use an IP that's already in the cluster (so if two
>> pods go down, having the first pod that comes up grab the IP of the second
>> pod is strictly dangerous and will violate consistency and maybe lose
>> data).
>>
>> *For point 2 (Strictly unsafe to use an IP) , if the first pod grabs the
>> IP of the second node then it should not be able to join the cluster.*
>> *So can IPs still be swapped?  *
>> *When and how this IP swap can occur?*
>>
>> Regards
>> Manish
>>
>> On Mon, Jul 6, 2020 at 10:40 PM Jeff Jirsa <jji...@gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Jul 6, 2020 at 10:01 AM manish khandelwal <
>>> manishkhandelwa...@gmail.com> wrote:
>>>
>>>> I have started reading about how to deploy Cassandra with K8S. But as I
>>>> read more I feel there are a lot of challenges in running Cassandra on K8s.
>>>> Some of the challenges which I feel are
>>>>
>>>> 1. POD IPs identification - If the pods go down and when they come up
>>>> their IPs change, how is it handled as we are dependent on IPs of Cassandra
>>>> nodes for internode as well client server communication.
>>>>
>>>
>>> Strictly safe to change an IP to an IP that is unused.
>>> Strictly unsafe to use an IP that's already in the cluster (so if two
>>> pods go down, having the first pod that comes up grab the IP of the second
>>> pod is strictly dangerous and will violate consistency and maybe lose
>>> data).
>>>
>>>
>>>>
>>>> 2. A K8S node can host  a single pod. This is being done so that even
>>>> if the host goes down we have only one pod down case. With multiple pods on
>>>> a single host there is a risk of traffic failures as consistency might not
>>>> be achieved. But if we keep two pods of the same rack on a single host then
>>>> are we safe or is there  any unknown risk?
>>>>
>>>
>>> This sounds like you're asking if rack aware snitches protect you from
>>> concurrent pods going down. Make sure you're using a rack aware snitch.
>>>
>>>
>>>>
>>>> 3. Seed discovery? Again as an extension of point 1, since IPs can
>>>> change, how we can manage seeds.
>>>>
>>>
>>> Either use DNS instead of static IPs, or use a seed provider that
>>> handles IPs changing.
>>>
>>>
>>>>
>>>> 4. Also I read a lot of use of Cassandra operators for maintaining a
>>>> Cassandra cluster on Kubernetes. I think that Cassandra Operator is like a
>>>> robot (automated admin) which works and acts like a norma admin will work.
>>>> I want to understand that how important is Cassandra operator and what if
>>>> we go on to production without one?
>>>>
>>>> Regards
>>>> Manish
>>>>
>>> --
>
> Christopher Bradford
>
>

Reply via email to