Skip to content
This repository was archived by the owner on Aug 24, 2020. It is now read-only.
This repository was archived by the owner on Aug 24, 2020. It is now read-only.

Use service discovery in scheduler to discover where log-cache nodes are #52

Open

Description

@jasonkeene

This would allow for log-cache instances to come and go and the cluster to adapt dynamically to scaling events, outages, etc.

Activity

  1. cf-gitbot commented on Apr 30, 2018

    @cf-gitbot

    We have created an issue in Pivotal Tracker to manage this:

    https://www.pivotaltracker.com/story/show/157208717

    The labels on this github issue will be updated when the story is started.

  2. poy commented on May 16, 2018

    @poy
    Contributor

    @jasonkeene How do other systems manage this? Some form of a gossip protocol?

  3. jasonkeene commented on May 16, 2018

    @jasonkeene
    ContributorAuthor

    @apoydence I was thinking of doing something similar to what the loggregator agent does.

    1. Accept a DNS name in config.
    2. At runtime query DNS to get A or AAAA records for that name.
    3. Use these IP addresses.
    4. Periodically query DNS to refresh the list of IP addresses.

    This would be compatible with a LOT of service discovery systems, including kube-dns and bosh-dns.

    Alternatively, you can query for SRV records which allows for port, weighting, transport and service name to be discovered. kube-dns supports this but I am not sure about bosh-dns.

  4. poy commented on May 22, 2018

    @poy
    Contributor

    @jasonkeene This sounds reasonable.

    I would want to do more experiments with multiple schedulers after this is completed to see if there is any thrashing. I suspect each scheduler would be looking at a different subset of log cache nodes and would be instructing them differently.

  5. jasonkeene commented on May 22, 2018

    @jasonkeene
    ContributorAuthor

    That is a possibility. We can have an algo that is resistant to sudden changes to prevent nodes dropping out when they come right back. Something like a TTL for a node to stop being scheduled to. This would help with thrashing, allow for nodes that are truely gone to expire, and allow for new nodes to come online.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions