Error installing Ignite on K8s

classic Classic list List threaded Threaded
9 messages Options
Jeff Simon Jeff Simon
Reply | Threaded
Open this post in threaded view
|

Error installing Ignite on K8s

Hi, trying to install ignite on k8s running on ec2.  K8s cluster is running on EC2 in AWS (not using EKS.)

 

Following the guide at https://apacheignite.readme.io/docs/stateless-deployment

 

Getting the following error when trying to create the k8s service:  "unsupported load balancer affinity: ClientIP"

 

What is a valid value for sessionAffinity that works with Ignite?  Is sessionAffinity required?

 

Thanks.

 

 

 

// Service spec (from https://apacheignite.readme.io/docs/ignite-service)

// This is supposed to be a guide for k8s, but it doesn't work.

// Could be that there's an issue with creating service on AWS?

 

apiVersion: v1

kind: Service

metadata: 

  # The name must be equal to TcpDiscoveryKubernetesIpFinder.serviceName

  name: ignite

  # The name must be equal to TcpDiscoveryKubernetesIpFinder.namespaceName

  namespace: ignite

spec:

  type: LoadBalancer

  ports:

    - name: rest

      port: 8080

      targetPort: 8080

    - name: sql

      port: 10800

      targetPort: 10800

    - name: thinclients

      port: 10900

      targetPort: 10900

  sessionAffinity: ClientIP   

  selector:

    # Must be equal to the label set for Ignite pods.

    app: ignite

 

This email and any files transmitted with it are confidential, proprietary and intended solely for the individual or entity to whom they are addressed. If you have received this email in error please delete it immediately.
vkulichenko vkulichenko
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Does it work without specifying sessionAffinity?

-Val



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Jeff Simon Jeff Simon
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Yes if I remove session affinity it works.  So my question is does ignite require sessionAffinity?  And to be honest, I'm not really sure what we are using ignite for since it seems to be a multi-purpose app.  I think we are going to use for caching.  So would session affinity be required for caching?  I'm guessing the answer would be 'no, it's not required.'

Thanks, Jeff

On 9/10/18, 4:15 PM, "vkulichenko" <[hidden email]> wrote:

    Does it work without specifying sessionAffinity?

    -Val



    --
    Sent from: https://urldefense.proofpoint.com/v2/url?u=http-3A__apache-2Dignite-2Dusers.70518.x6.nabble.com_&d=DwICAg&c=ObqWq9831a7badpzAhIKIA&r=GDHaUsXuW5l_tQf8Lb0qSFuKsPCA5WAkjY2k5nQo7uw&m=nGR_kKy4EMqQjzu9FfD9BViiBYvvkZabdxLvh7lXjYw&s=Z-AZJ1xOOCKZyUNQNOndPrBGu7rnXR0zTXTyOSUwNbM&e=


This email and any files transmitted with it are confidential, proprietary and intended solely for the individual or entity to whom they are addressed. If you have received this email in error please delete it immediately.
dmagda dmagda
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Jeff,

The sessionAffinity is needed only if you plan to access Ignite cluster deployed in K8 from an application deployed outside of it. For instance, it will ensure that a remote JDBC session will stick to a specific Ignite pod.

However, if all your applications are deployed in K8 as well then you can freely disregard sessionAffinity parameter. Is this your case?

--
Denis

On Tue, Sep 11, 2018 at 10:16 AM Jeff Simon <[hidden email]> wrote:
Yes if I remove session affinity it works.  So my question is does ignite require sessionAffinity?  And to be honest, I'm not really sure what we are using ignite for since it seems to be a multi-purpose app.  I think we are going to use for caching.  So would session affinity be required for caching?  I'm guessing the answer would be 'no, it's not required.'

Thanks, Jeff

On 9/10/18, 4:15 PM, "vkulichenko" <[hidden email]> wrote:

    Does it work without specifying sessionAffinity?

    -Val



    --
    Sent from: https://urldefense.proofpoint.com/v2/url?u=http-3A__apache-2Dignite-2Dusers.70518.x6.nabble.com_&d=DwICAg&c=ObqWq9831a7badpzAhIKIA&r=GDHaUsXuW5l_tQf8Lb0qSFuKsPCA5WAkjY2k5nQo7uw&m=nGR_kKy4EMqQjzu9FfD9BViiBYvvkZabdxLvh7lXjYw&s=Z-AZJ1xOOCKZyUNQNOndPrBGu7rnXR0zTXTyOSUwNbM&e=


This email and any files transmitted with it are confidential, proprietary and intended solely for the individual or entity to whom they are addressed. If you have received this email in error please delete it immediately.
Jeff Simon Jeff Simon
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Hi Denis,

 

Yes, all of our apps reside in k8s, so there would be no need for external access.

 

Thanks for the info!

 

Jeff

 

From: Denis Magda <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Tuesday, September 11, 2018 at 8:30 AM
To: "[hidden email]" <[hidden email]>
Subject: Re: Error installing Ignite on K8s

 

Jeff,

 

The sessionAffinity is needed only if you plan to access Ignite cluster deployed in K8 from an application deployed outside of it. For instance, it will ensure that a remote JDBC session will stick to a specific Ignite pod.

 

However, if all your applications are deployed in K8 as well then you can freely disregard sessionAffinity parameter. Is this your case?

 

--

Denis

 

On Tue, Sep 11, 2018 at 10:16 AM Jeff Simon <[hidden email]> wrote:

Yes if I remove session affinity it works.  So my question is does ignite require sessionAffinity?  And to be honest, I'm not really sure what we are using ignite for since it seems to be a multi-purpose app.  I think we are going to use for caching.  So would session affinity be required for caching?  I'm guessing the answer would be 'no, it's not required.'

Thanks, Jeff

On 9/10/18, 4:15 PM, "vkulichenko" <[hidden email]> wrote:

    Does it work without specifying sessionAffinity?

    -Val



    --
    Sent from: https://urldefense.proofpoint.com/v2/url?u=http-3A__apache-2Dignite-2Dusers.70518.x6.nabble.com_&d=DwICAg&c=ObqWq9831a7badpzAhIKIA&r=GDHaUsXuW5l_tQf8Lb0qSFuKsPCA5WAkjY2k5nQo7uw&m=nGR_kKy4EMqQjzu9FfD9BViiBYvvkZabdxLvh7lXjYw&s=Z-AZJ1xOOCKZyUNQNOndPrBGu7rnXR0zTXTyOSUwNbM&e=


This email and any files transmitted with it are confidential, proprietary and intended solely for the individual or entity to whom they are addressed. If you have received this email in error please delete it immediately.

This email and any files transmitted with it are confidential, proprietary and intended solely for the individual or entity to whom they are addressed. If you have received this email in error please delete it immediately.
sv sv
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

In reply to this post by Jeff Simon
Ok.. so what IS the proper way to use sessionAffinity?  I am also getting the
same error, using the same yaml.  

Warning  CreatingLoadBalancerFailed  7s (x10 over 17m)  service-controller 
Error creating load balancer (will retry): failed to ensure load balancer
for service ignite/ignite: unsupported load balancer affinity: ClientIP

It appears that Denis Magda's k8s scripts are broken.






--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
dmagda dmagda
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Hi,

Please check the updated docs. For instance, this section elaborates on sessionAffinity key usage:

Plus, depending on your cloud environment, you have an option of using getting started guides created for AWS, GCE or Azure:

Let us know if anything is outdated.

-
Denis


On Sat, May 4, 2019 at 4:01 PM sv <[hidden email]> wrote:
Ok.. so what IS the proper way to use sessionAffinity?  I am also getting the
same error, using the same yaml. 

Warning  CreatingLoadBalancerFailed  7s (x10 over 17m)  service-controller 
Error creating load balancer (will retry): failed to ensure load balancer
for service ignite/ignite: unsupported load balancer affinity: ClientIP

It appears that Denis Magda's k8s scripts are broken.






--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
sv sv
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Denis,
I am going by the latest updated docs.  The instructions DO NOT work as
described, producing the error above, same as last year.  

Of course, this is for thin clients connecting from outside the cluster.
Your instructions state:  "The sessionAffinity used below is required only
if Ignite cluster is deployed in Kubernetes and your applications are
outside of it. The property ensures that Ignite thin clients, JDBC/ODBC
drivers preserve a connection with a specific Ignite pod. "  So, that sounds
like we need it.  And yet, it does NOT work, giving the error above.  Taking
that one line out works, but then we lose the ability to "ensure that Ignite
thin clients preserve a connection with a specific pod", which sounds
important?

This is for an Ignite cluster running in a k8s cluster in AWS.  

--Stan



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Vladimir Pligin Vladimir Pligin
Reply | Threaded
Open this post in threaded view
|

Re: Error installing Ignite on K8s

Hi,

As far as can see you're facing an issue related to k8s service
configuration.
It's quite difficult to say whether you have issues with Ignite pods at this
stage.
So let's try to figure it out step by step. I suppose that the error is
related to load balancing.
As far as I know AWS provides multiple load balancer types and it seems like
the particular one doesn't support session affinity based on client IP.
Could you please check whether this one works for you
https://pastebin.com/uEfL0rDd?
I've changed a type of load balancer to network load balancer.

Depending on the result let's discuss further steps.

-
Vladimir



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/