You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Magda (JIRA)" <ji...@apache.org> on 2017/01/23 02:38:26 UTC

[jira] [Commented] (IGNITE-4160) Discovery SPI Implementation for Ignite Kubernetes Pods

    [ https://issues.apache.org/jira/browse/IGNITE-4160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15833820#comment-15833820 ] 

Denis Magda commented on IGNITE-4160:
-------------------------------------

Kubernetes IP finder will be based on Kubernetes REST API [1] which allows to get IP addresses of all the pods using a command like the one below:

{code}
curl http://{api_server}/api/v1/namespaces/{namespace}/endpoints/{ignite_service_name}
{code}

Considering that we connect to the kubernetes master using the HTTP proxy [2] with {{default}} as the namespace and the service name is {{ignite}}, then the command will be the following:

{code}
curl http://localhost:8080/api/v1/namespaces/default/endpoints/ignite
{code}

The IP finder will provide a list of IP addresses with the empty port number by parsing the endpoints only. The port number will be set to local node's discovery port.

[1] https://kubernetes.io/docs/api-reference/v1/operations/
[2] https://kubernetes.io/docs/tasks/access-kubernetes-api/http-proxy-access-api/

> Discovery SPI Implementation for Ignite Kubernetes Pods
> -------------------------------------------------------
>
>                 Key: IGNITE-4160
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4160
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Denis Magda
>            Assignee: Denis Magda
>             Fix For: 2.0
>
>
> There is no way to set a predefined internal IP address and port number for a Kubernetes pod. Kubernetes manages this on its own by assigning an IP address and port dynamically.
> In order to assemble an Ignite cluster under Kubernetes supervision we have to provide a Kubernetes specific implementation of discovery SPI. The discovery implementation has to use Kubernetes API to locate private IP addresses of all the Ignite pods (nodes) started so far and use these IP addresses at the join phase.
> Refer to an exemplary implementation of a discovery component in other distributed storage:
> https://github.com/pires/hazelcast-kubernetes#hazelcast-discovery-source



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)