You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by rammohan ganapavarapu <ra...@gmail.com> on 2019/02/08 22:52:20 UTC

RR DNS name instead of list of server

Hi,

Does zookeper support RR DNS name in the config instead of giving each
server name/ip like what consul does to join the cluster?


server.1=server1
server.2=server2
server.3=server3

vs
server=example.com
where example.com is RR of server1, server2 and server3

And does any one know if zk team has any plans to add cloud autodiscovery
based on cloud instance tags?

Thanks,
Ram

Re: RR DNS name instead of list of server

Posted by "Jürgen Wagner (DVT)" <ju...@devoteam.com.INVALID>.
Hello all,

  I've been following this discussion, and there seem to be some
misconceptions or wrong assumptions involved, esp. as Consul does have a
different architecture from Zookeeper.

First of all, it is unclear to me what exactly the goal of this should
be. It sounds a bit like jumping in the midst of a discussion without
knowing what it is really about originally. Therefore, I have a few
general remarks, some of which may already provide a hint to address the
original challende the OP is facing.

- I recommend having a look at the dynamic reconfiguration feature of
Zookeeper. This will allow changing clusters., e.g., the addition of nodes.

- If you have a Zookeeper cluster, you'd like to not start new and kill
old Zookeeper pods all the time, have changing IP addresses and all
that, but keep them reliable. Therefore, I don't see the benefit of RR
DNS names in the Zookeeper configuration AT ALL. Why would you need any
form of discovery between the Zk nodes if they have their own
cluster-forming and election protocols?

- Clients will receive a list of Zk node names and can also inquire the
cluster in case of reconfigurations, but will then randomly make choices
from that list to connect to a cluster. There is no need for RR here.
You will already get balanced access.

- RR on the DNS level or a dumb load balancer is not a good idea for
session-oriented protocols, anyway.

So, Ram, can you explain once more why you want RR DNS in the first
place? What do you want to achieve really?

Cheers,

--Jürgen


On 11.02.2019 00:42, rammohan ganapavarapu wrote:
> Clod providers have api to query instance IP based in tags, actually consul
> is doing that to form a cluster.
>
> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <an...@cloudera.com.invalid>
> wrote:
>
>> Hi Ram!
>>
>> What exactly do you mean by "auto-discovery on cloud instance tags"?
>> Is there a standard way of doing that?
>>
>> Regards,
>> Andor
>>
>>
>>
>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar <nkalmar@cloudera.com.invalid
>> wrote:
>>
>>> Hi Ram,
>>>
>>> Unfortunately ZK does not support RR DNS name.
>>> As for plans on discovery based on cloud tags, I am not aware of any
>> plans.
>>> You can create a jira for it if you'd like, but I can't tell you when
>> that
>>> would make it into a release.
>>>
>>> Regards,
>>> Norbert
>>>
>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
>>> rammohanganap@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> Does zookeper support RR DNS name in the config instead of giving each
>>>> server name/ip like what consul does to join the cluster?
>>>>
>>>>
>>>> server.1=server1
>>>> server.2=server2
>>>> server.3=server3
>>>>
>>>> vs
>>>> server=example.com
>>>> where example.com is RR of server1, server2 and server3
>>>>
>>>> And does any one know if zk team has any plans to add cloud
>> autodiscovery
>>>> based on cloud instance tags?
>>>>
>>>> Thanks,
>>>> Ram
>>>>

Re: RR DNS name instead of list of server

Posted by rammohan ganapavarapu <ra...@gmail.com>.
ok, got it thank you!

On Tue, Feb 12, 2019 at 8:49 AM Andor Molnar <an...@cloudera.com.invalid>
wrote:

> Not sure what do you mean by 'static'?
> ZK instance cannot change myid, it's tight to the database.
>
> Andor
>
>
> On Tue, Feb 12, 2019 at 5:18 PM rammohan ganapavarapu <
> rammohanganap@gmail.com> wrote:
>
> > Andor,
> >
> > Thanks you, do we have to have a static myid? any alternatives to it?
> >
> > Ram
> >
> > On Tue, Feb 12, 2019 at 3:44 AM Andor Molnar <andor@cloudera.com.invalid
> >
> > wrote:
> >
> > > Hi Ram / Alan,
> > >
> > > I quite like the idea of implementing some kind of autoconfiguration
> for
> > > ZooKeeper, because currently it's entirely based on static config files
> > > which is not 100% cloud-friendly. Starting the project with an initial
> > > support for EC2 instances based on Alan's approach would be awesome.
> > > There's no concept of "seed nodes" in ZK, like Cassandra, e.g. neither
> > > clients nor servers are able to learn cluster topology from each other
> > > (that could be another improvement). In order to start a participant we
> > > have to provide "myid" (from instance tag), server IP addresses
> > > (autoscaling group), election and quorum port numbers and participant
> > type.
> > > Basically replacing the "server.X" section of the config.
> > >
> > > RR DNS might not be a good option, because as Alan mentioned the order
> of
> > > returning IPs is not guaranteed, so myid config would be cumbersome.
> > >
> > > Need to think about it more, but I believe it's definitely worth to
> > raise a
> > > Jira.
> > >
> > > Cool stuff.
> > >
> > > Regards,
> > > Andor
> > >
> > >
> > >
> > >
> > >
> > > On Mon, Feb 11, 2019 at 5:48 PM rammohan ganapavarapu <
> > > rammohanganap@gmail.com> wrote:
> > >
> > > > Jürgen,
> > > >
> > > > I have zk clusters in dynamic environment like Autoscalling groups
> and
> > as
> > > > you know in ASG it is quite common for a instance to get terminate
> and
> > > new
> > > > one comes up right, so in that case if i rely on static config it
> will
> > be
> > > > little bit hard to manage the cluster, i was thinking if we have RR
> DNS
> > > > name atleast i can update the DNS entry when new nodes comes up or
> old
> > > one
> > > > terminate. I have not played with dynamic config option yet but if
> that
> > > > solves the problem we see in dynamic environments i am good. And i am
> > not
> > > > comparing with consul but just pointing out the existing example.
> > > >
> > > >
> > > >
> > > > Alan,
> > > >
> > > > Yes i am looking for the similar solution.
> > > >
> > > > Thanks,
> > > > Ram
> > > >
> > > > On Mon, Feb 11, 2019 at 6:52 AM Alan Scherger <
> alan.scherger@gmail.com
> > >
> > > > wrote:
> > > >
> > > > > Hey Jürgen,
> > > > >
> > > > > My intent was to simply suggest a more programmatic means for
> dynamic
> > > > > configuration. In particular, the detecting of seed nodes and their
> > > > > appropriate id numbers. One might imagine provisioning 3 nodes with
> > > tags
> > > > > like:
> > > > >
> > > > > zk_cluster=thebestcluster
> > > > > zk_myid={1,2,3}
> > > > >
> > > > > and then in the zk configuration we might have:
> > > > >
> > > > > discovery=ec2Tags
> > > > > discovery.ec2Tags.tagCluster=zk_cluster
> > > > > discovery.ec2Tags.tagMyid=zk_myid
> > > > >
> > > > > This would allow a little code to parse the tags out of ec2 and
> build
> > > the
> > > > > seed node configurations.
> > > > >
> > > > > Similarly we could build and maintain a custom auth provider that
> > could
> > > > use
> > > > > the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI
> > APIs
> > > > to
> > > > > automatically create and fetch the appropriate certificates and
> > > > > configurations.
> > > > >
> > > > > To your point, the security of introducing autoconfiguration of
> > > settings
> > > > > like these might not be appropriate for all folks or installations,
> > but
> > > > > environments where things like instance level IAM exist help
> mitigate
> > > > some
> > > > > risk assuming the proper access controls have been put in place.
> > > > <Redacted
> > > > > rant :) >
> > > > >
> > > > > I believe it's the lack of autoconfiguration in Zookeeper that has
> > led
> > > to
> > > > > the creation of tools like Exhibitor or other tools that have never
> > > been
> > > > > open sourced for one reason or another. The introduction of Dynamic
> > > > > Reconfiguration is quite great, but the 'Re' part might imply we
> > still
> > > > have
> > > > > some initial work left to be done.
> > > > >
> > > > > I'm also not sure how a RR DNS record mechanism would satisfy the
> id
> > > > > assignment requirement since typically the value of such a record
> is
> > > that
> > > > > the results never return in a guaranteed order. Historically, I've
> > seen
> > > > > tools, Netflix's Eureka, over come such a challenge by use of TXT
> > > records
> > > > > instead. One might argue an SRV record with appropriate priority
> > values
> > > > > could also ensure the ordering. However, personally none of this is
> > > > > particularly my cup of tea, but I do enjoy coming across and
> > existence
> > > of
> > > > > such systems.
> > > > >
> > > > > Hopefully this helps? I'm certainly not trying to advocate for busy
> > > work,
> > > > > extensive feature design, or russle any jimmies.
> > > > >
> > > > > Alan Scherger
> > > > >
> > > > >
> > > > >
> > > > > On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
> > > > > <juergen.wagner@devoteam.com.invalid wrote:
> > > > >
> > > > > > ...and come to think of it, there is another question. Cloud
> > instance
> > > > > > tags are simply labels. There is no real semantics associated or
> > > > > > mandated by tags.
> > > > > >
> > > > > > In particular, there is no guarantee that a Zk instance is
> running
> > > on,
> > > > > > e.g., an EC2 instance labelled as "Zookeeper". Tags don't make
> > > > services.
> > > > > >
> > > > > > If you want to use auto-scaling to create more Zk nodes and
> > > reconfigure
> > > > > > an existing cluster, the cluster will take care of discovering
> its
> > > > > > members, so only clients would be affected by the changes. They,
> > > > however
> > > > > > could start with a well-known set of Zk nodes (e.g., the initial
> > > > three),
> > > > > > inquire about the actual configuration, and subscribe to
> > > configuration
> > > > > > changes. There is no need for a tag- or DNS-based grouping this
> > way.
> > > > > >
> > > > > > If you wanted to say, "hey, all of you Zk instances in my VPC,
> > form a
> > > > > > cluster right now", you could do this indeed with tagging to seed
> > the
> > > > > > server list initially. However, keep in mind that Zk is often a
> > > > > > security-relevant component and you don't really want ANY new Zk
> > > server
> > > > > > out there to be able to join your precious cluster - only the
> ones
> > > you
> > > > > > know about already.
> > > > > >
> > > > > > The fact that Consul may support something like it, doesn't mean
> it
> > > > also
> > > > > > makes sense for Zookeeper. Consul and Zookeeper protocols and
> > > > > > architectures are quite different.
> > > > > >
> > > > > > I still don't understand what the precise requirement is that
> lead
> > to
> > > > > > this question.
> > > > > >
> > > > > > I hope you'll enlighten me :-)
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > --Jürgen
> > > > > >
> > > > > >
> > > > > > On 11.02.2019 01:20, rammohan ganapavarapu wrote:
> > > > > >
> > > > > > > Should I open a feature request? For both cloud auto discovery
> > and
> > > > use
> > > > > > DNS
> > > > > > > end point to form a quorum.
> > > > > > >
> > > > > > > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <
> > > alan.scherger@gmail.com
> > > > >
> > > > > > wrote:
> > > > > > >
> > > > > > >> We might look at something like this:
> > > > > > https://github.com/hekate-io/hekate
> > > > > > >> for inspiration (or adoption). In the Golang community
> Hashicorp
> > > has
> > > > > > built
> > > > > > >> something similar: https://github.com/hashicorp/go-discover
> --
> > > this
> > > > > > >> problem
> > > > > > >> set itself probably warrants a multilingual Apache project to
> > help
> > > > > drive
> > > > > > >> some standards and interoperability.
> > > > > > >>
> > > > > > >> Alan
> > > > > > >>
> > > > > > >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> > > > > > >> rammohanganap@gmail.com
> > > > > > >> wrote:
> > > > > > >>
> > > > > > >>> Clod providers have api to query instance IP based in tags,
> > > > actually
> > > > > > >> consul
> > > > > > >>> is doing that to form a cluster.
> > > > > > >>>
> > > > > > >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar
> > > > > <andor@cloudera.com.invalid
> > > > > > >
> > > > > > >>> wrote:
> > > > > > >>>
> > > > > > >>>> Hi Ram!
> > > > > > >>>>
> > > > > > >>>> What exactly do you mean by "auto-discovery on cloud
> instance
> > > > tags"?
> > > > > > >>>> Is there a standard way of doing that?
> > > > > > >>>>
> > > > > > >>>> Regards,
> > > > > > >>>> Andor
> > > > > > >>>>
> > > > > > >>>>
> > > > > > >>>>
> > > > > > >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > > > > > >>> <nkalmar@cloudera.com.invalid
> > > > > > >>>> wrote:
> > > > > > >>>>
> > > > > > >>>>> Hi Ram,
> > > > > > >>>>>
> > > > > > >>>>> Unfortunately ZK does not support RR DNS name.
> > > > > > >>>>> As for plans on discovery based on cloud tags, I am not
> aware
> > > of
> > > > > any
> > > > > > >>>> plans.
> > > > > > >>>>> You can create a jira for it if you'd like, but I can't
> tell
> > > you
> > > > > when
> > > > > > >>>> that
> > > > > > >>>>> would make it into a release.
> > > > > > >>>>>
> > > > > > >>>>> Regards,
> > > > > > >>>>> Norbert
> > > > > > >>>>>
> > > > > > >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > > > > >>>>> rammohanganap@gmail.com> wrote:
> > > > > > >>>>>
> > > > > > >>>>>> Hi,
> > > > > > >>>>>>
> > > > > > >>>>>> Does zookeper support RR DNS name in the config instead of
> > > > giving
> > > > > > >>> each
> > > > > > >>>>>> server name/ip like what consul does to join the cluster?
> > > > > > >>>>>>
> > > > > > >>>>>>
> > > > > > >>>>>> server.1=server1
> > > > > > >>>>>> server.2=server2
> > > > > > >>>>>> server.3=server3
> > > > > > >>>>>>
> > > > > > >>>>>> vs
> > > > > > >>>>>> server=example.com
> > > > > > >>>>>> where example.com is RR of server1, server2 and server3
> > > > > > >>>>>>
> > > > > > >>>>>> And does any one know if zk team has any plans to add
> cloud
> > > > > > >>>> autodiscovery
> > > > > > >>>>>> based on cloud instance tags?
> > > > > > >>>>>>
> > > > > > >>>>>> Thanks,
> > > > > > >>>>>> Ram
> > > > > > >>>>>>
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by Andor Molnar <an...@cloudera.com.INVALID>.
Not sure what do you mean by 'static'?
ZK instance cannot change myid, it's tight to the database.

Andor


On Tue, Feb 12, 2019 at 5:18 PM rammohan ganapavarapu <
rammohanganap@gmail.com> wrote:

> Andor,
>
> Thanks you, do we have to have a static myid? any alternatives to it?
>
> Ram
>
> On Tue, Feb 12, 2019 at 3:44 AM Andor Molnar <an...@cloudera.com.invalid>
> wrote:
>
> > Hi Ram / Alan,
> >
> > I quite like the idea of implementing some kind of autoconfiguration for
> > ZooKeeper, because currently it's entirely based on static config files
> > which is not 100% cloud-friendly. Starting the project with an initial
> > support for EC2 instances based on Alan's approach would be awesome.
> > There's no concept of "seed nodes" in ZK, like Cassandra, e.g. neither
> > clients nor servers are able to learn cluster topology from each other
> > (that could be another improvement). In order to start a participant we
> > have to provide "myid" (from instance tag), server IP addresses
> > (autoscaling group), election and quorum port numbers and participant
> type.
> > Basically replacing the "server.X" section of the config.
> >
> > RR DNS might not be a good option, because as Alan mentioned the order of
> > returning IPs is not guaranteed, so myid config would be cumbersome.
> >
> > Need to think about it more, but I believe it's definitely worth to
> raise a
> > Jira.
> >
> > Cool stuff.
> >
> > Regards,
> > Andor
> >
> >
> >
> >
> >
> > On Mon, Feb 11, 2019 at 5:48 PM rammohan ganapavarapu <
> > rammohanganap@gmail.com> wrote:
> >
> > > Jürgen,
> > >
> > > I have zk clusters in dynamic environment like Autoscalling groups and
> as
> > > you know in ASG it is quite common for a instance to get terminate and
> > new
> > > one comes up right, so in that case if i rely on static config it will
> be
> > > little bit hard to manage the cluster, i was thinking if we have RR DNS
> > > name atleast i can update the DNS entry when new nodes comes up or old
> > one
> > > terminate. I have not played with dynamic config option yet but if that
> > > solves the problem we see in dynamic environments i am good. And i am
> not
> > > comparing with consul but just pointing out the existing example.
> > >
> > >
> > >
> > > Alan,
> > >
> > > Yes i am looking for the similar solution.
> > >
> > > Thanks,
> > > Ram
> > >
> > > On Mon, Feb 11, 2019 at 6:52 AM Alan Scherger <alan.scherger@gmail.com
> >
> > > wrote:
> > >
> > > > Hey Jürgen,
> > > >
> > > > My intent was to simply suggest a more programmatic means for dynamic
> > > > configuration. In particular, the detecting of seed nodes and their
> > > > appropriate id numbers. One might imagine provisioning 3 nodes with
> > tags
> > > > like:
> > > >
> > > > zk_cluster=thebestcluster
> > > > zk_myid={1,2,3}
> > > >
> > > > and then in the zk configuration we might have:
> > > >
> > > > discovery=ec2Tags
> > > > discovery.ec2Tags.tagCluster=zk_cluster
> > > > discovery.ec2Tags.tagMyid=zk_myid
> > > >
> > > > This would allow a little code to parse the tags out of ec2 and build
> > the
> > > > seed node configurations.
> > > >
> > > > Similarly we could build and maintain a custom auth provider that
> could
> > > use
> > > > the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI
> APIs
> > > to
> > > > automatically create and fetch the appropriate certificates and
> > > > configurations.
> > > >
> > > > To your point, the security of introducing autoconfiguration of
> > settings
> > > > like these might not be appropriate for all folks or installations,
> but
> > > > environments where things like instance level IAM exist help mitigate
> > > some
> > > > risk assuming the proper access controls have been put in place.
> > > <Redacted
> > > > rant :) >
> > > >
> > > > I believe it's the lack of autoconfiguration in Zookeeper that has
> led
> > to
> > > > the creation of tools like Exhibitor or other tools that have never
> > been
> > > > open sourced for one reason or another. The introduction of Dynamic
> > > > Reconfiguration is quite great, but the 'Re' part might imply we
> still
> > > have
> > > > some initial work left to be done.
> > > >
> > > > I'm also not sure how a RR DNS record mechanism would satisfy the id
> > > > assignment requirement since typically the value of such a record is
> > that
> > > > the results never return in a guaranteed order. Historically, I've
> seen
> > > > tools, Netflix's Eureka, over come such a challenge by use of TXT
> > records
> > > > instead. One might argue an SRV record with appropriate priority
> values
> > > > could also ensure the ordering. However, personally none of this is
> > > > particularly my cup of tea, but I do enjoy coming across and
> existence
> > of
> > > > such systems.
> > > >
> > > > Hopefully this helps? I'm certainly not trying to advocate for busy
> > work,
> > > > extensive feature design, or russle any jimmies.
> > > >
> > > > Alan Scherger
> > > >
> > > >
> > > >
> > > > On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
> > > > <juergen.wagner@devoteam.com.invalid wrote:
> > > >
> > > > > ...and come to think of it, there is another question. Cloud
> instance
> > > > > tags are simply labels. There is no real semantics associated or
> > > > > mandated by tags.
> > > > >
> > > > > In particular, there is no guarantee that a Zk instance is running
> > on,
> > > > > e.g., an EC2 instance labelled as "Zookeeper". Tags don't make
> > > services.
> > > > >
> > > > > If you want to use auto-scaling to create more Zk nodes and
> > reconfigure
> > > > > an existing cluster, the cluster will take care of discovering its
> > > > > members, so only clients would be affected by the changes. They,
> > > however
> > > > > could start with a well-known set of Zk nodes (e.g., the initial
> > > three),
> > > > > inquire about the actual configuration, and subscribe to
> > configuration
> > > > > changes. There is no need for a tag- or DNS-based grouping this
> way.
> > > > >
> > > > > If you wanted to say, "hey, all of you Zk instances in my VPC,
> form a
> > > > > cluster right now", you could do this indeed with tagging to seed
> the
> > > > > server list initially. However, keep in mind that Zk is often a
> > > > > security-relevant component and you don't really want ANY new Zk
> > server
> > > > > out there to be able to join your precious cluster - only the ones
> > you
> > > > > know about already.
> > > > >
> > > > > The fact that Consul may support something like it, doesn't mean it
> > > also
> > > > > makes sense for Zookeeper. Consul and Zookeeper protocols and
> > > > > architectures are quite different.
> > > > >
> > > > > I still don't understand what the precise requirement is that lead
> to
> > > > > this question.
> > > > >
> > > > > I hope you'll enlighten me :-)
> > > > >
> > > > > Cheers,
> > > > >
> > > > > --Jürgen
> > > > >
> > > > >
> > > > > On 11.02.2019 01:20, rammohan ganapavarapu wrote:
> > > > >
> > > > > > Should I open a feature request? For both cloud auto discovery
> and
> > > use
> > > > > DNS
> > > > > > end point to form a quorum.
> > > > > >
> > > > > > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <
> > alan.scherger@gmail.com
> > > >
> > > > > wrote:
> > > > > >
> > > > > >> We might look at something like this:
> > > > > https://github.com/hekate-io/hekate
> > > > > >> for inspiration (or adoption). In the Golang community Hashicorp
> > has
> > > > > built
> > > > > >> something similar: https://github.com/hashicorp/go-discover --
> > this
> > > > > >> problem
> > > > > >> set itself probably warrants a multilingual Apache project to
> help
> > > > drive
> > > > > >> some standards and interoperability.
> > > > > >>
> > > > > >> Alan
> > > > > >>
> > > > > >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> > > > > >> rammohanganap@gmail.com
> > > > > >> wrote:
> > > > > >>
> > > > > >>> Clod providers have api to query instance IP based in tags,
> > > actually
> > > > > >> consul
> > > > > >>> is doing that to form a cluster.
> > > > > >>>
> > > > > >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar
> > > > <andor@cloudera.com.invalid
> > > > > >
> > > > > >>> wrote:
> > > > > >>>
> > > > > >>>> Hi Ram!
> > > > > >>>>
> > > > > >>>> What exactly do you mean by "auto-discovery on cloud instance
> > > tags"?
> > > > > >>>> Is there a standard way of doing that?
> > > > > >>>>
> > > > > >>>> Regards,
> > > > > >>>> Andor
> > > > > >>>>
> > > > > >>>>
> > > > > >>>>
> > > > > >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > > > > >>> <nkalmar@cloudera.com.invalid
> > > > > >>>> wrote:
> > > > > >>>>
> > > > > >>>>> Hi Ram,
> > > > > >>>>>
> > > > > >>>>> Unfortunately ZK does not support RR DNS name.
> > > > > >>>>> As for plans on discovery based on cloud tags, I am not aware
> > of
> > > > any
> > > > > >>>> plans.
> > > > > >>>>> You can create a jira for it if you'd like, but I can't tell
> > you
> > > > when
> > > > > >>>> that
> > > > > >>>>> would make it into a release.
> > > > > >>>>>
> > > > > >>>>> Regards,
> > > > > >>>>> Norbert
> > > > > >>>>>
> > > > > >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > > > >>>>> rammohanganap@gmail.com> wrote:
> > > > > >>>>>
> > > > > >>>>>> Hi,
> > > > > >>>>>>
> > > > > >>>>>> Does zookeper support RR DNS name in the config instead of
> > > giving
> > > > > >>> each
> > > > > >>>>>> server name/ip like what consul does to join the cluster?
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>> server.1=server1
> > > > > >>>>>> server.2=server2
> > > > > >>>>>> server.3=server3
> > > > > >>>>>>
> > > > > >>>>>> vs
> > > > > >>>>>> server=example.com
> > > > > >>>>>> where example.com is RR of server1, server2 and server3
> > > > > >>>>>>
> > > > > >>>>>> And does any one know if zk team has any plans to add cloud
> > > > > >>>> autodiscovery
> > > > > >>>>>> based on cloud instance tags?
> > > > > >>>>>>
> > > > > >>>>>> Thanks,
> > > > > >>>>>> Ram
> > > > > >>>>>>
> > > > >
> > > >
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by rammohan ganapavarapu <ra...@gmail.com>.
Andor,

Thanks you, do we have to have a static myid? any alternatives to it?

Ram

On Tue, Feb 12, 2019 at 3:44 AM Andor Molnar <an...@cloudera.com.invalid>
wrote:

> Hi Ram / Alan,
>
> I quite like the idea of implementing some kind of autoconfiguration for
> ZooKeeper, because currently it's entirely based on static config files
> which is not 100% cloud-friendly. Starting the project with an initial
> support for EC2 instances based on Alan's approach would be awesome.
> There's no concept of "seed nodes" in ZK, like Cassandra, e.g. neither
> clients nor servers are able to learn cluster topology from each other
> (that could be another improvement). In order to start a participant we
> have to provide "myid" (from instance tag), server IP addresses
> (autoscaling group), election and quorum port numbers and participant type.
> Basically replacing the "server.X" section of the config.
>
> RR DNS might not be a good option, because as Alan mentioned the order of
> returning IPs is not guaranteed, so myid config would be cumbersome.
>
> Need to think about it more, but I believe it's definitely worth to raise a
> Jira.
>
> Cool stuff.
>
> Regards,
> Andor
>
>
>
>
>
> On Mon, Feb 11, 2019 at 5:48 PM rammohan ganapavarapu <
> rammohanganap@gmail.com> wrote:
>
> > Jürgen,
> >
> > I have zk clusters in dynamic environment like Autoscalling groups and as
> > you know in ASG it is quite common for a instance to get terminate and
> new
> > one comes up right, so in that case if i rely on static config it will be
> > little bit hard to manage the cluster, i was thinking if we have RR DNS
> > name atleast i can update the DNS entry when new nodes comes up or old
> one
> > terminate. I have not played with dynamic config option yet but if that
> > solves the problem we see in dynamic environments i am good. And i am not
> > comparing with consul but just pointing out the existing example.
> >
> >
> >
> > Alan,
> >
> > Yes i am looking for the similar solution.
> >
> > Thanks,
> > Ram
> >
> > On Mon, Feb 11, 2019 at 6:52 AM Alan Scherger <al...@gmail.com>
> > wrote:
> >
> > > Hey Jürgen,
> > >
> > > My intent was to simply suggest a more programmatic means for dynamic
> > > configuration. In particular, the detecting of seed nodes and their
> > > appropriate id numbers. One might imagine provisioning 3 nodes with
> tags
> > > like:
> > >
> > > zk_cluster=thebestcluster
> > > zk_myid={1,2,3}
> > >
> > > and then in the zk configuration we might have:
> > >
> > > discovery=ec2Tags
> > > discovery.ec2Tags.tagCluster=zk_cluster
> > > discovery.ec2Tags.tagMyid=zk_myid
> > >
> > > This would allow a little code to parse the tags out of ec2 and build
> the
> > > seed node configurations.
> > >
> > > Similarly we could build and maintain a custom auth provider that could
> > use
> > > the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI APIs
> > to
> > > automatically create and fetch the appropriate certificates and
> > > configurations.
> > >
> > > To your point, the security of introducing autoconfiguration of
> settings
> > > like these might not be appropriate for all folks or installations, but
> > > environments where things like instance level IAM exist help mitigate
> > some
> > > risk assuming the proper access controls have been put in place.
> > <Redacted
> > > rant :) >
> > >
> > > I believe it's the lack of autoconfiguration in Zookeeper that has led
> to
> > > the creation of tools like Exhibitor or other tools that have never
> been
> > > open sourced for one reason or another. The introduction of Dynamic
> > > Reconfiguration is quite great, but the 'Re' part might imply we still
> > have
> > > some initial work left to be done.
> > >
> > > I'm also not sure how a RR DNS record mechanism would satisfy the id
> > > assignment requirement since typically the value of such a record is
> that
> > > the results never return in a guaranteed order. Historically, I've seen
> > > tools, Netflix's Eureka, over come such a challenge by use of TXT
> records
> > > instead. One might argue an SRV record with appropriate priority values
> > > could also ensure the ordering. However, personally none of this is
> > > particularly my cup of tea, but I do enjoy coming across and existence
> of
> > > such systems.
> > >
> > > Hopefully this helps? I'm certainly not trying to advocate for busy
> work,
> > > extensive feature design, or russle any jimmies.
> > >
> > > Alan Scherger
> > >
> > >
> > >
> > > On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
> > > <juergen.wagner@devoteam.com.invalid wrote:
> > >
> > > > ...and come to think of it, there is another question. Cloud instance
> > > > tags are simply labels. There is no real semantics associated or
> > > > mandated by tags.
> > > >
> > > > In particular, there is no guarantee that a Zk instance is running
> on,
> > > > e.g., an EC2 instance labelled as "Zookeeper". Tags don't make
> > services.
> > > >
> > > > If you want to use auto-scaling to create more Zk nodes and
> reconfigure
> > > > an existing cluster, the cluster will take care of discovering its
> > > > members, so only clients would be affected by the changes. They,
> > however
> > > > could start with a well-known set of Zk nodes (e.g., the initial
> > three),
> > > > inquire about the actual configuration, and subscribe to
> configuration
> > > > changes. There is no need for a tag- or DNS-based grouping this way.
> > > >
> > > > If you wanted to say, "hey, all of you Zk instances in my VPC, form a
> > > > cluster right now", you could do this indeed with tagging to seed the
> > > > server list initially. However, keep in mind that Zk is often a
> > > > security-relevant component and you don't really want ANY new Zk
> server
> > > > out there to be able to join your precious cluster - only the ones
> you
> > > > know about already.
> > > >
> > > > The fact that Consul may support something like it, doesn't mean it
> > also
> > > > makes sense for Zookeeper. Consul and Zookeeper protocols and
> > > > architectures are quite different.
> > > >
> > > > I still don't understand what the precise requirement is that lead to
> > > > this question.
> > > >
> > > > I hope you'll enlighten me :-)
> > > >
> > > > Cheers,
> > > >
> > > > --Jürgen
> > > >
> > > >
> > > > On 11.02.2019 01:20, rammohan ganapavarapu wrote:
> > > >
> > > > > Should I open a feature request? For both cloud auto discovery and
> > use
> > > > DNS
> > > > > end point to form a quorum.
> > > > >
> > > > > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <
> alan.scherger@gmail.com
> > >
> > > > wrote:
> > > > >
> > > > >> We might look at something like this:
> > > > https://github.com/hekate-io/hekate
> > > > >> for inspiration (or adoption). In the Golang community Hashicorp
> has
> > > > built
> > > > >> something similar: https://github.com/hashicorp/go-discover --
> this
> > > > >> problem
> > > > >> set itself probably warrants a multilingual Apache project to help
> > > drive
> > > > >> some standards and interoperability.
> > > > >>
> > > > >> Alan
> > > > >>
> > > > >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> > > > >> rammohanganap@gmail.com
> > > > >> wrote:
> > > > >>
> > > > >>> Clod providers have api to query instance IP based in tags,
> > actually
> > > > >> consul
> > > > >>> is doing that to form a cluster.
> > > > >>>
> > > > >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar
> > > <andor@cloudera.com.invalid
> > > > >
> > > > >>> wrote:
> > > > >>>
> > > > >>>> Hi Ram!
> > > > >>>>
> > > > >>>> What exactly do you mean by "auto-discovery on cloud instance
> > tags"?
> > > > >>>> Is there a standard way of doing that?
> > > > >>>>
> > > > >>>> Regards,
> > > > >>>> Andor
> > > > >>>>
> > > > >>>>
> > > > >>>>
> > > > >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > > > >>> <nkalmar@cloudera.com.invalid
> > > > >>>> wrote:
> > > > >>>>
> > > > >>>>> Hi Ram,
> > > > >>>>>
> > > > >>>>> Unfortunately ZK does not support RR DNS name.
> > > > >>>>> As for plans on discovery based on cloud tags, I am not aware
> of
> > > any
> > > > >>>> plans.
> > > > >>>>> You can create a jira for it if you'd like, but I can't tell
> you
> > > when
> > > > >>>> that
> > > > >>>>> would make it into a release.
> > > > >>>>>
> > > > >>>>> Regards,
> > > > >>>>> Norbert
> > > > >>>>>
> > > > >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > > >>>>> rammohanganap@gmail.com> wrote:
> > > > >>>>>
> > > > >>>>>> Hi,
> > > > >>>>>>
> > > > >>>>>> Does zookeper support RR DNS name in the config instead of
> > giving
> > > > >>> each
> > > > >>>>>> server name/ip like what consul does to join the cluster?
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> server.1=server1
> > > > >>>>>> server.2=server2
> > > > >>>>>> server.3=server3
> > > > >>>>>>
> > > > >>>>>> vs
> > > > >>>>>> server=example.com
> > > > >>>>>> where example.com is RR of server1, server2 and server3
> > > > >>>>>>
> > > > >>>>>> And does any one know if zk team has any plans to add cloud
> > > > >>>> autodiscovery
> > > > >>>>>> based on cloud instance tags?
> > > > >>>>>>
> > > > >>>>>> Thanks,
> > > > >>>>>> Ram
> > > > >>>>>>
> > > >
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by Andor Molnar <an...@cloudera.com.INVALID>.
Hi Ram / Alan,

I quite like the idea of implementing some kind of autoconfiguration for
ZooKeeper, because currently it's entirely based on static config files
which is not 100% cloud-friendly. Starting the project with an initial
support for EC2 instances based on Alan's approach would be awesome.
There's no concept of "seed nodes" in ZK, like Cassandra, e.g. neither
clients nor servers are able to learn cluster topology from each other
(that could be another improvement). In order to start a participant we
have to provide "myid" (from instance tag), server IP addresses
(autoscaling group), election and quorum port numbers and participant type.
Basically replacing the "server.X" section of the config.

RR DNS might not be a good option, because as Alan mentioned the order of
returning IPs is not guaranteed, so myid config would be cumbersome.

Need to think about it more, but I believe it's definitely worth to raise a
Jira.

Cool stuff.

Regards,
Andor





On Mon, Feb 11, 2019 at 5:48 PM rammohan ganapavarapu <
rammohanganap@gmail.com> wrote:

> Jürgen,
>
> I have zk clusters in dynamic environment like Autoscalling groups and as
> you know in ASG it is quite common for a instance to get terminate and new
> one comes up right, so in that case if i rely on static config it will be
> little bit hard to manage the cluster, i was thinking if we have RR DNS
> name atleast i can update the DNS entry when new nodes comes up or old one
> terminate. I have not played with dynamic config option yet but if that
> solves the problem we see in dynamic environments i am good. And i am not
> comparing with consul but just pointing out the existing example.
>
>
>
> Alan,
>
> Yes i am looking for the similar solution.
>
> Thanks,
> Ram
>
> On Mon, Feb 11, 2019 at 6:52 AM Alan Scherger <al...@gmail.com>
> wrote:
>
> > Hey Jürgen,
> >
> > My intent was to simply suggest a more programmatic means for dynamic
> > configuration. In particular, the detecting of seed nodes and their
> > appropriate id numbers. One might imagine provisioning 3 nodes with tags
> > like:
> >
> > zk_cluster=thebestcluster
> > zk_myid={1,2,3}
> >
> > and then in the zk configuration we might have:
> >
> > discovery=ec2Tags
> > discovery.ec2Tags.tagCluster=zk_cluster
> > discovery.ec2Tags.tagMyid=zk_myid
> >
> > This would allow a little code to parse the tags out of ec2 and build the
> > seed node configurations.
> >
> > Similarly we could build and maintain a custom auth provider that could
> use
> > the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI APIs
> to
> > automatically create and fetch the appropriate certificates and
> > configurations.
> >
> > To your point, the security of introducing autoconfiguration of settings
> > like these might not be appropriate for all folks or installations, but
> > environments where things like instance level IAM exist help mitigate
> some
> > risk assuming the proper access controls have been put in place.
> <Redacted
> > rant :) >
> >
> > I believe it's the lack of autoconfiguration in Zookeeper that has led to
> > the creation of tools like Exhibitor or other tools that have never been
> > open sourced for one reason or another. The introduction of Dynamic
> > Reconfiguration is quite great, but the 'Re' part might imply we still
> have
> > some initial work left to be done.
> >
> > I'm also not sure how a RR DNS record mechanism would satisfy the id
> > assignment requirement since typically the value of such a record is that
> > the results never return in a guaranteed order. Historically, I've seen
> > tools, Netflix's Eureka, over come such a challenge by use of TXT records
> > instead. One might argue an SRV record with appropriate priority values
> > could also ensure the ordering. However, personally none of this is
> > particularly my cup of tea, but I do enjoy coming across and existence of
> > such systems.
> >
> > Hopefully this helps? I'm certainly not trying to advocate for busy work,
> > extensive feature design, or russle any jimmies.
> >
> > Alan Scherger
> >
> >
> >
> > On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
> > <juergen.wagner@devoteam.com.invalid wrote:
> >
> > > ...and come to think of it, there is another question. Cloud instance
> > > tags are simply labels. There is no real semantics associated or
> > > mandated by tags.
> > >
> > > In particular, there is no guarantee that a Zk instance is running on,
> > > e.g., an EC2 instance labelled as "Zookeeper". Tags don't make
> services.
> > >
> > > If you want to use auto-scaling to create more Zk nodes and reconfigure
> > > an existing cluster, the cluster will take care of discovering its
> > > members, so only clients would be affected by the changes. They,
> however
> > > could start with a well-known set of Zk nodes (e.g., the initial
> three),
> > > inquire about the actual configuration, and subscribe to configuration
> > > changes. There is no need for a tag- or DNS-based grouping this way.
> > >
> > > If you wanted to say, "hey, all of you Zk instances in my VPC, form a
> > > cluster right now", you could do this indeed with tagging to seed the
> > > server list initially. However, keep in mind that Zk is often a
> > > security-relevant component and you don't really want ANY new Zk server
> > > out there to be able to join your precious cluster - only the ones you
> > > know about already.
> > >
> > > The fact that Consul may support something like it, doesn't mean it
> also
> > > makes sense for Zookeeper. Consul and Zookeeper protocols and
> > > architectures are quite different.
> > >
> > > I still don't understand what the precise requirement is that lead to
> > > this question.
> > >
> > > I hope you'll enlighten me :-)
> > >
> > > Cheers,
> > >
> > > --Jürgen
> > >
> > >
> > > On 11.02.2019 01:20, rammohan ganapavarapu wrote:
> > >
> > > > Should I open a feature request? For both cloud auto discovery and
> use
> > > DNS
> > > > end point to form a quorum.
> > > >
> > > > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <alan.scherger@gmail.com
> >
> > > wrote:
> > > >
> > > >> We might look at something like this:
> > > https://github.com/hekate-io/hekate
> > > >> for inspiration (or adoption). In the Golang community Hashicorp has
> > > built
> > > >> something similar: https://github.com/hashicorp/go-discover -- this
> > > >> problem
> > > >> set itself probably warrants a multilingual Apache project to help
> > drive
> > > >> some standards and interoperability.
> > > >>
> > > >> Alan
> > > >>
> > > >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> > > >> rammohanganap@gmail.com
> > > >> wrote:
> > > >>
> > > >>> Clod providers have api to query instance IP based in tags,
> actually
> > > >> consul
> > > >>> is doing that to form a cluster.
> > > >>>
> > > >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar
> > <andor@cloudera.com.invalid
> > > >
> > > >>> wrote:
> > > >>>
> > > >>>> Hi Ram!
> > > >>>>
> > > >>>> What exactly do you mean by "auto-discovery on cloud instance
> tags"?
> > > >>>> Is there a standard way of doing that?
> > > >>>>
> > > >>>> Regards,
> > > >>>> Andor
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > > >>> <nkalmar@cloudera.com.invalid
> > > >>>> wrote:
> > > >>>>
> > > >>>>> Hi Ram,
> > > >>>>>
> > > >>>>> Unfortunately ZK does not support RR DNS name.
> > > >>>>> As for plans on discovery based on cloud tags, I am not aware of
> > any
> > > >>>> plans.
> > > >>>>> You can create a jira for it if you'd like, but I can't tell you
> > when
> > > >>>> that
> > > >>>>> would make it into a release.
> > > >>>>>
> > > >>>>> Regards,
> > > >>>>> Norbert
> > > >>>>>
> > > >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > >>>>> rammohanganap@gmail.com> wrote:
> > > >>>>>
> > > >>>>>> Hi,
> > > >>>>>>
> > > >>>>>> Does zookeper support RR DNS name in the config instead of
> giving
> > > >>> each
> > > >>>>>> server name/ip like what consul does to join the cluster?
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> server.1=server1
> > > >>>>>> server.2=server2
> > > >>>>>> server.3=server3
> > > >>>>>>
> > > >>>>>> vs
> > > >>>>>> server=example.com
> > > >>>>>> where example.com is RR of server1, server2 and server3
> > > >>>>>>
> > > >>>>>> And does any one know if zk team has any plans to add cloud
> > > >>>> autodiscovery
> > > >>>>>> based on cloud instance tags?
> > > >>>>>>
> > > >>>>>> Thanks,
> > > >>>>>> Ram
> > > >>>>>>
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by rammohan ganapavarapu <ra...@gmail.com>.
Jürgen,

I have zk clusters in dynamic environment like Autoscalling groups and as
you know in ASG it is quite common for a instance to get terminate and new
one comes up right, so in that case if i rely on static config it will be
little bit hard to manage the cluster, i was thinking if we have RR DNS
name atleast i can update the DNS entry when new nodes comes up or old one
terminate. I have not played with dynamic config option yet but if that
solves the problem we see in dynamic environments i am good. And i am not
comparing with consul but just pointing out the existing example.



Alan,

Yes i am looking for the similar solution.

Thanks,
Ram

On Mon, Feb 11, 2019 at 6:52 AM Alan Scherger <al...@gmail.com>
wrote:

> Hey Jürgen,
>
> My intent was to simply suggest a more programmatic means for dynamic
> configuration. In particular, the detecting of seed nodes and their
> appropriate id numbers. One might imagine provisioning 3 nodes with tags
> like:
>
> zk_cluster=thebestcluster
> zk_myid={1,2,3}
>
> and then in the zk configuration we might have:
>
> discovery=ec2Tags
> discovery.ec2Tags.tagCluster=zk_cluster
> discovery.ec2Tags.tagMyid=zk_myid
>
> This would allow a little code to parse the tags out of ec2 and build the
> seed node configurations.
>
> Similarly we could build and maintain a custom auth provider that could use
> the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI APIs to
> automatically create and fetch the appropriate certificates and
> configurations.
>
> To your point, the security of introducing autoconfiguration of settings
> like these might not be appropriate for all folks or installations, but
> environments where things like instance level IAM exist help mitigate some
> risk assuming the proper access controls have been put in place. <Redacted
> rant :) >
>
> I believe it's the lack of autoconfiguration in Zookeeper that has led to
> the creation of tools like Exhibitor or other tools that have never been
> open sourced for one reason or another. The introduction of Dynamic
> Reconfiguration is quite great, but the 'Re' part might imply we still have
> some initial work left to be done.
>
> I'm also not sure how a RR DNS record mechanism would satisfy the id
> assignment requirement since typically the value of such a record is that
> the results never return in a guaranteed order. Historically, I've seen
> tools, Netflix's Eureka, over come such a challenge by use of TXT records
> instead. One might argue an SRV record with appropriate priority values
> could also ensure the ordering. However, personally none of this is
> particularly my cup of tea, but I do enjoy coming across and existence of
> such systems.
>
> Hopefully this helps? I'm certainly not trying to advocate for busy work,
> extensive feature design, or russle any jimmies.
>
> Alan Scherger
>
>
>
> On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
> <juergen.wagner@devoteam.com.invalid wrote:
>
> > ...and come to think of it, there is another question. Cloud instance
> > tags are simply labels. There is no real semantics associated or
> > mandated by tags.
> >
> > In particular, there is no guarantee that a Zk instance is running on,
> > e.g., an EC2 instance labelled as "Zookeeper". Tags don't make services.
> >
> > If you want to use auto-scaling to create more Zk nodes and reconfigure
> > an existing cluster, the cluster will take care of discovering its
> > members, so only clients would be affected by the changes. They, however
> > could start with a well-known set of Zk nodes (e.g., the initial three),
> > inquire about the actual configuration, and subscribe to configuration
> > changes. There is no need for a tag- or DNS-based grouping this way.
> >
> > If you wanted to say, "hey, all of you Zk instances in my VPC, form a
> > cluster right now", you could do this indeed with tagging to seed the
> > server list initially. However, keep in mind that Zk is often a
> > security-relevant component and you don't really want ANY new Zk server
> > out there to be able to join your precious cluster - only the ones you
> > know about already.
> >
> > The fact that Consul may support something like it, doesn't mean it also
> > makes sense for Zookeeper. Consul and Zookeeper protocols and
> > architectures are quite different.
> >
> > I still don't understand what the precise requirement is that lead to
> > this question.
> >
> > I hope you'll enlighten me :-)
> >
> > Cheers,
> >
> > --Jürgen
> >
> >
> > On 11.02.2019 01:20, rammohan ganapavarapu wrote:
> >
> > > Should I open a feature request? For both cloud auto discovery and use
> > DNS
> > > end point to form a quorum.
> > >
> > > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <al...@gmail.com>
> > wrote:
> > >
> > >> We might look at something like this:
> > https://github.com/hekate-io/hekate
> > >> for inspiration (or adoption). In the Golang community Hashicorp has
> > built
> > >> something similar: https://github.com/hashicorp/go-discover -- this
> > >> problem
> > >> set itself probably warrants a multilingual Apache project to help
> drive
> > >> some standards and interoperability.
> > >>
> > >> Alan
> > >>
> > >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> > >> rammohanganap@gmail.com
> > >> wrote:
> > >>
> > >>> Clod providers have api to query instance IP based in tags, actually
> > >> consul
> > >>> is doing that to form a cluster.
> > >>>
> > >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar
> <andor@cloudera.com.invalid
> > >
> > >>> wrote:
> > >>>
> > >>>> Hi Ram!
> > >>>>
> > >>>> What exactly do you mean by "auto-discovery on cloud instance tags"?
> > >>>> Is there a standard way of doing that?
> > >>>>
> > >>>> Regards,
> > >>>> Andor
> > >>>>
> > >>>>
> > >>>>
> > >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > >>> <nkalmar@cloudera.com.invalid
> > >>>> wrote:
> > >>>>
> > >>>>> Hi Ram,
> > >>>>>
> > >>>>> Unfortunately ZK does not support RR DNS name.
> > >>>>> As for plans on discovery based on cloud tags, I am not aware of
> any
> > >>>> plans.
> > >>>>> You can create a jira for it if you'd like, but I can't tell you
> when
> > >>>> that
> > >>>>> would make it into a release.
> > >>>>>
> > >>>>> Regards,
> > >>>>> Norbert
> > >>>>>
> > >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > >>>>> rammohanganap@gmail.com> wrote:
> > >>>>>
> > >>>>>> Hi,
> > >>>>>>
> > >>>>>> Does zookeper support RR DNS name in the config instead of giving
> > >>> each
> > >>>>>> server name/ip like what consul does to join the cluster?
> > >>>>>>
> > >>>>>>
> > >>>>>> server.1=server1
> > >>>>>> server.2=server2
> > >>>>>> server.3=server3
> > >>>>>>
> > >>>>>> vs
> > >>>>>> server=example.com
> > >>>>>> where example.com is RR of server1, server2 and server3
> > >>>>>>
> > >>>>>> And does any one know if zk team has any plans to add cloud
> > >>>> autodiscovery
> > >>>>>> based on cloud instance tags?
> > >>>>>>
> > >>>>>> Thanks,
> > >>>>>> Ram
> > >>>>>>
> >
>

Re: RR DNS name instead of list of server

Posted by Alan Scherger <al...@gmail.com>.
Hey Jürgen,

My intent was to simply suggest a more programmatic means for dynamic
configuration. In particular, the detecting of seed nodes and their
appropriate id numbers. One might imagine provisioning 3 nodes with tags
like:

zk_cluster=thebestcluster
zk_myid={1,2,3}

and then in the zk configuration we might have:

discovery=ec2Tags
discovery.ec2Tags.tagCluster=zk_cluster
discovery.ec2Tags.tagMyid=zk_myid

This would allow a little code to parse the tags out of ec2 and build the
seed node configurations.

Similarly we could build and maintain a custom auth provider that could use
the AWS Certificate Manager Private CA APIs or Hashicorp Vault PKI APIs to
automatically create and fetch the appropriate certificates and
configurations.

To your point, the security of introducing autoconfiguration of settings
like these might not be appropriate for all folks or installations, but
environments where things like instance level IAM exist help mitigate some
risk assuming the proper access controls have been put in place. <Redacted
rant :) >

I believe it's the lack of autoconfiguration in Zookeeper that has led to
the creation of tools like Exhibitor or other tools that have never been
open sourced for one reason or another. The introduction of Dynamic
Reconfiguration is quite great, but the 'Re' part might imply we still have
some initial work left to be done.

I'm also not sure how a RR DNS record mechanism would satisfy the id
assignment requirement since typically the value of such a record is that
the results never return in a guaranteed order. Historically, I've seen
tools, Netflix's Eureka, over come such a challenge by use of TXT records
instead. One might argue an SRV record with appropriate priority values
could also ensure the ordering. However, personally none of this is
particularly my cup of tea, but I do enjoy coming across and existence of
such systems.

Hopefully this helps? I'm certainly not trying to advocate for busy work,
extensive feature design, or russle any jimmies.

Alan Scherger



On Mon, Feb 11, 2019, 12:43 AM Jürgen Wagner (DVT)
<juergen.wagner@devoteam.com.invalid wrote:

> ...and come to think of it, there is another question. Cloud instance
> tags are simply labels. There is no real semantics associated or
> mandated by tags.
>
> In particular, there is no guarantee that a Zk instance is running on,
> e.g., an EC2 instance labelled as "Zookeeper". Tags don't make services.
>
> If you want to use auto-scaling to create more Zk nodes and reconfigure
> an existing cluster, the cluster will take care of discovering its
> members, so only clients would be affected by the changes. They, however
> could start with a well-known set of Zk nodes (e.g., the initial three),
> inquire about the actual configuration, and subscribe to configuration
> changes. There is no need for a tag- or DNS-based grouping this way.
>
> If you wanted to say, "hey, all of you Zk instances in my VPC, form a
> cluster right now", you could do this indeed with tagging to seed the
> server list initially. However, keep in mind that Zk is often a
> security-relevant component and you don't really want ANY new Zk server
> out there to be able to join your precious cluster - only the ones you
> know about already.
>
> The fact that Consul may support something like it, doesn't mean it also
> makes sense for Zookeeper. Consul and Zookeeper protocols and
> architectures are quite different.
>
> I still don't understand what the precise requirement is that lead to
> this question.
>
> I hope you'll enlighten me :-)
>
> Cheers,
>
> --Jürgen
>
>
> On 11.02.2019 01:20, rammohan ganapavarapu wrote:
>
> > Should I open a feature request? For both cloud auto discovery and use
> DNS
> > end point to form a quorum.
> >
> > On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <al...@gmail.com>
> wrote:
> >
> >> We might look at something like this:
> https://github.com/hekate-io/hekate
> >> for inspiration (or adoption). In the Golang community Hashicorp has
> built
> >> something similar: https://github.com/hashicorp/go-discover -- this
> >> problem
> >> set itself probably warrants a multilingual Apache project to help drive
> >> some standards and interoperability.
> >>
> >> Alan
> >>
> >> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> >> rammohanganap@gmail.com
> >> wrote:
> >>
> >>> Clod providers have api to query instance IP based in tags, actually
> >> consul
> >>> is doing that to form a cluster.
> >>>
> >>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <andor@cloudera.com.invalid
> >
> >>> wrote:
> >>>
> >>>> Hi Ram!
> >>>>
> >>>> What exactly do you mean by "auto-discovery on cloud instance tags"?
> >>>> Is there a standard way of doing that?
> >>>>
> >>>> Regards,
> >>>> Andor
> >>>>
> >>>>
> >>>>
> >>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> >>> <nkalmar@cloudera.com.invalid
> >>>> wrote:
> >>>>
> >>>>> Hi Ram,
> >>>>>
> >>>>> Unfortunately ZK does not support RR DNS name.
> >>>>> As for plans on discovery based on cloud tags, I am not aware of any
> >>>> plans.
> >>>>> You can create a jira for it if you'd like, but I can't tell you when
> >>>> that
> >>>>> would make it into a release.
> >>>>>
> >>>>> Regards,
> >>>>> Norbert
> >>>>>
> >>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> >>>>> rammohanganap@gmail.com> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> Does zookeper support RR DNS name in the config instead of giving
> >>> each
> >>>>>> server name/ip like what consul does to join the cluster?
> >>>>>>
> >>>>>>
> >>>>>> server.1=server1
> >>>>>> server.2=server2
> >>>>>> server.3=server3
> >>>>>>
> >>>>>> vs
> >>>>>> server=example.com
> >>>>>> where example.com is RR of server1, server2 and server3
> >>>>>>
> >>>>>> And does any one know if zk team has any plans to add cloud
> >>>> autodiscovery
> >>>>>> based on cloud instance tags?
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Ram
> >>>>>>
>

Re: RR DNS name instead of list of server

Posted by "Jürgen Wagner (DVT)" <ju...@devoteam.com.INVALID>.
...and come to think of it, there is another question. Cloud instance
tags are simply labels. There is no real semantics associated or
mandated by tags.

In particular, there is no guarantee that a Zk instance is running on,
e.g., an EC2 instance labelled as "Zookeeper". Tags don't make services.

If you want to use auto-scaling to create more Zk nodes and reconfigure
an existing cluster, the cluster will take care of discovering its
members, so only clients would be affected by the changes. They, however
could start with a well-known set of Zk nodes (e.g., the initial three),
inquire about the actual configuration, and subscribe to configuration
changes. There is no need for a tag- or DNS-based grouping this way.

If you wanted to say, "hey, all of you Zk instances in my VPC, form a
cluster right now", you could do this indeed with tagging to seed the
server list initially. However, keep in mind that Zk is often a
security-relevant component and you don't really want ANY new Zk server
out there to be able to join your precious cluster - only the ones you
know about already.

The fact that Consul may support something like it, doesn't mean it also
makes sense for Zookeeper. Consul and Zookeeper protocols and
architectures are quite different.

I still don't understand what the precise requirement is that lead to
this question.

I hope you'll enlighten me :-)

Cheers,

--Jürgen


On 11.02.2019 01:20, rammohan ganapavarapu wrote:

> Should I open a feature request? For both cloud auto discovery and use DNS
> end point to form a quorum.
>
> On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <al...@gmail.com> wrote:
>
>> We might look at something like this: https://github.com/hekate-io/hekate
>> for inspiration (or adoption). In the Golang community Hashicorp has built
>> something similar: https://github.com/hashicorp/go-discover -- this
>> problem
>> set itself probably warrants a multilingual Apache project to help drive
>> some standards and interoperability.
>>
>> Alan
>>
>> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
>> rammohanganap@gmail.com
>> wrote:
>>
>>> Clod providers have api to query instance IP based in tags, actually
>> consul
>>> is doing that to form a cluster.
>>>
>>> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <an...@cloudera.com.invalid>
>>> wrote:
>>>
>>>> Hi Ram!
>>>>
>>>> What exactly do you mean by "auto-discovery on cloud instance tags"?
>>>> Is there a standard way of doing that?
>>>>
>>>> Regards,
>>>> Andor
>>>>
>>>>
>>>>
>>>> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
>>> <nkalmar@cloudera.com.invalid
>>>> wrote:
>>>>
>>>>> Hi Ram,
>>>>>
>>>>> Unfortunately ZK does not support RR DNS name.
>>>>> As for plans on discovery based on cloud tags, I am not aware of any
>>>> plans.
>>>>> You can create a jira for it if you'd like, but I can't tell you when
>>>> that
>>>>> would make it into a release.
>>>>>
>>>>> Regards,
>>>>> Norbert
>>>>>
>>>>> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
>>>>> rammohanganap@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Does zookeper support RR DNS name in the config instead of giving
>>> each
>>>>>> server name/ip like what consul does to join the cluster?
>>>>>>
>>>>>>
>>>>>> server.1=server1
>>>>>> server.2=server2
>>>>>> server.3=server3
>>>>>>
>>>>>> vs
>>>>>> server=example.com
>>>>>> where example.com is RR of server1, server2 and server3
>>>>>>
>>>>>> And does any one know if zk team has any plans to add cloud
>>>> autodiscovery
>>>>>> based on cloud instance tags?
>>>>>>
>>>>>> Thanks,
>>>>>> Ram
>>>>>>

Re: RR DNS name instead of list of server

Posted by rammohan ganapavarapu <ra...@gmail.com>.
Should I open a feature request? For both cloud auto discovery and use DNS
end point to form a quorum.

On Sun, Feb 10, 2019, 3:56 PM Alan Scherger <al...@gmail.com> wrote:

> We might look at something like this: https://github.com/hekate-io/hekate
> for inspiration (or adoption). In the Golang community Hashicorp has built
> something similar: https://github.com/hashicorp/go-discover -- this
> problem
> set itself probably warrants a multilingual Apache project to help drive
> some standards and interoperability.
>
> Alan
>
> On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <
> rammohanganap@gmail.com
> wrote:
>
> > Clod providers have api to query instance IP based in tags, actually
> consul
> > is doing that to form a cluster.
> >
> > On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <an...@cloudera.com.invalid>
> > wrote:
> >
> > > Hi Ram!
> > >
> > > What exactly do you mean by "auto-discovery on cloud instance tags"?
> > > Is there a standard way of doing that?
> > >
> > > Regards,
> > > Andor
> > >
> > >
> > >
> > > On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> > <nkalmar@cloudera.com.invalid
> > > >
> > > wrote:
> > >
> > > > Hi Ram,
> > > >
> > > > Unfortunately ZK does not support RR DNS name.
> > > > As for plans on discovery based on cloud tags, I am not aware of any
> > > plans.
> > > > You can create a jira for it if you'd like, but I can't tell you when
> > > that
> > > > would make it into a release.
> > > >
> > > > Regards,
> > > > Norbert
> > > >
> > > > On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > > rammohanganap@gmail.com> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > Does zookeper support RR DNS name in the config instead of giving
> > each
> > > > > server name/ip like what consul does to join the cluster?
> > > > >
> > > > >
> > > > > server.1=server1
> > > > > server.2=server2
> > > > > server.3=server3
> > > > >
> > > > > vs
> > > > > server=example.com
> > > > > where example.com is RR of server1, server2 and server3
> > > > >
> > > > > And does any one know if zk team has any plans to add cloud
> > > autodiscovery
> > > > > based on cloud instance tags?
> > > > >
> > > > > Thanks,
> > > > > Ram
> > > > >
> > > >
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by Alan Scherger <al...@gmail.com>.
We might look at something like this: https://github.com/hekate-io/hekate
for inspiration (or adoption). In the Golang community Hashicorp has built
something similar: https://github.com/hashicorp/go-discover -- this problem
set itself probably warrants a multilingual Apache project to help drive
some standards and interoperability.

Alan

On Sun, Feb 10, 2019, 5:42 PM rammohan ganapavarapu <rammohanganap@gmail.com
wrote:

> Clod providers have api to query instance IP based in tags, actually consul
> is doing that to form a cluster.
>
> On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <an...@cloudera.com.invalid>
> wrote:
>
> > Hi Ram!
> >
> > What exactly do you mean by "auto-discovery on cloud instance tags"?
> > Is there a standard way of doing that?
> >
> > Regards,
> > Andor
> >
> >
> >
> > On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar
> <nkalmar@cloudera.com.invalid
> > >
> > wrote:
> >
> > > Hi Ram,
> > >
> > > Unfortunately ZK does not support RR DNS name.
> > > As for plans on discovery based on cloud tags, I am not aware of any
> > plans.
> > > You can create a jira for it if you'd like, but I can't tell you when
> > that
> > > would make it into a release.
> > >
> > > Regards,
> > > Norbert
> > >
> > > On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > > rammohanganap@gmail.com> wrote:
> > >
> > > > Hi,
> > > >
> > > > Does zookeper support RR DNS name in the config instead of giving
> each
> > > > server name/ip like what consul does to join the cluster?
> > > >
> > > >
> > > > server.1=server1
> > > > server.2=server2
> > > > server.3=server3
> > > >
> > > > vs
> > > > server=example.com
> > > > where example.com is RR of server1, server2 and server3
> > > >
> > > > And does any one know if zk team has any plans to add cloud
> > autodiscovery
> > > > based on cloud instance tags?
> > > >
> > > > Thanks,
> > > > Ram
> > > >
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by rammohan ganapavarapu <ra...@gmail.com>.
Clod providers have api to query instance IP based in tags, actually consul
is doing that to form a cluster.

On Sun, Feb 10, 2019, 11:40 AM Andor Molnar <an...@cloudera.com.invalid>
wrote:

> Hi Ram!
>
> What exactly do you mean by "auto-discovery on cloud instance tags"?
> Is there a standard way of doing that?
>
> Regards,
> Andor
>
>
>
> On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar <nkalmar@cloudera.com.invalid
> >
> wrote:
>
> > Hi Ram,
> >
> > Unfortunately ZK does not support RR DNS name.
> > As for plans on discovery based on cloud tags, I am not aware of any
> plans.
> > You can create a jira for it if you'd like, but I can't tell you when
> that
> > would make it into a release.
> >
> > Regards,
> > Norbert
> >
> > On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> > rammohanganap@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > Does zookeper support RR DNS name in the config instead of giving each
> > > server name/ip like what consul does to join the cluster?
> > >
> > >
> > > server.1=server1
> > > server.2=server2
> > > server.3=server3
> > >
> > > vs
> > > server=example.com
> > > where example.com is RR of server1, server2 and server3
> > >
> > > And does any one know if zk team has any plans to add cloud
> autodiscovery
> > > based on cloud instance tags?
> > >
> > > Thanks,
> > > Ram
> > >
> >
>

Re: RR DNS name instead of list of server

Posted by Andor Molnar <an...@cloudera.com.INVALID>.
Hi Ram!

What exactly do you mean by "auto-discovery on cloud instance tags"?
Is there a standard way of doing that?

Regards,
Andor



On Sat, Feb 9, 2019 at 4:07 PM Norbert Kalmar <nk...@cloudera.com.invalid>
wrote:

> Hi Ram,
>
> Unfortunately ZK does not support RR DNS name.
> As for plans on discovery based on cloud tags, I am not aware of any plans.
> You can create a jira for it if you'd like, but I can't tell you when that
> would make it into a release.
>
> Regards,
> Norbert
>
> On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
> rammohanganap@gmail.com> wrote:
>
> > Hi,
> >
> > Does zookeper support RR DNS name in the config instead of giving each
> > server name/ip like what consul does to join the cluster?
> >
> >
> > server.1=server1
> > server.2=server2
> > server.3=server3
> >
> > vs
> > server=example.com
> > where example.com is RR of server1, server2 and server3
> >
> > And does any one know if zk team has any plans to add cloud autodiscovery
> > based on cloud instance tags?
> >
> > Thanks,
> > Ram
> >
>

Re: RR DNS name instead of list of server

Posted by Norbert Kalmar <nk...@cloudera.com.INVALID>.
Hi Ram,

Unfortunately ZK does not support RR DNS name.
As for plans on discovery based on cloud tags, I am not aware of any plans.
You can create a jira for it if you'd like, but I can't tell you when that
would make it into a release.

Regards,
Norbert

On Fri, Feb 8, 2019 at 11:53 PM rammohan ganapavarapu <
rammohanganap@gmail.com> wrote:

> Hi,
>
> Does zookeper support RR DNS name in the config instead of giving each
> server name/ip like what consul does to join the cluster?
>
>
> server.1=server1
> server.2=server2
> server.3=server3
>
> vs
> server=example.com
> where example.com is RR of server1, server2 and server3
>
> And does any one know if zk team has any plans to add cloud autodiscovery
> based on cloud instance tags?
>
> Thanks,
> Ram
>