Max,

That improvement automates the cluster discovery if both the cluster and
thin clients are deployed *inside* of Kubernetes. That's my reading of the
ticket's description. While you're referring to the case when the client is
deployed outside of a K8S environment.

@Vladimir Pligin <vpli...@gridgain.com>, could you please join the thread.
I've seen you joined the discussion in JIRA.

-
Denis


On Wed, Aug 12, 2020 at 12:06 PM Max Timonin <timonin.ma...@gmail.com>
wrote:

> Hi, Igniters
>
> I'm now discovering the issue
> https://issues.apache.org/jira/browse/IGNITE-13204 and wondering what is a
> case that requires a client to be able to discover a cluster?
>
> I believe that discovery is a goal of kubernetes itself. We could assign a
> DNS name for a Service [1] and then any request to the Service will be
> forwarded to any of Ignite pods behind it. So there is no need to extract
> pods IP to provide the connection. For example, I've configured a  k8s
> service with name "ignite" and port mapping 10800:9888. Then just connect
> to it with sqlline by a string "ignite:9888".
>
> I think that it's OK that clients should be configured with those settings
> as they aren't changed during cluster live.
>
> Also k8s provides SessionAffinity [2] to guarantee forwarding traffic from
> one client to the same pod for every request. So there is no need to
> provide IP for a specific pod if a state is required.
>
> Maybe I'm missing something about this feature? Could somebody provide more
> details for this task?
>
> Below is the example config and connection string:
>
> apiVersion: v1
> kind: Service
> metadata:
>   name: ignite
> spec:
>   ports:
>     - port: 9888
>       targetPort: 10800
>   selector:
>     app: ignite
>
> ./bin/sqlline.sh --verbose=true -u jdbc:ignite:thin://ignite:9888
> 0: jdbc:ignite:thin://ignite:9888>
>
> [1] https://kubernetes.io/docs/concepts/services-networking/service/
> [2]
>
> https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-userspace
>

Reply via email to