[
https://issues.apache.org/jira/browse/KUDU-1988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Burkert updated KUDU-1988:
------------------------------
Description:
In some environments the externally accessible host/port is not the same as the
bind host/port. This commonly happens with containers. It would be nice to
have a {{--rpc-advertised-addresses}} configuration flag that would replace the
{{--rpc-bind-addresses}} config when a server gives out it's own RPC address.
Some quick notes I wrote on a potential implementation on Slack:
As far as where it would be added - I think you want to go one level down from
the heartbeater into the {{RpcServer}}. {{RpcServer}} already has a
{{GetBoundAddresses}} method, so maybe it could have a `GetAdvertisedAddresses`
method and a corresponding {{rpc_advertised_addresses}} gflag as well
({{rpc_bind_addresses}} is also defined in rpc_server.cc). Then, the
heartbeater could be changed to use {{GetAdvertisedAddresses}} instead of
{{GetBoundAddress}}.
I’m not sure if there needs to be a corresponding change to masters, I think it
may be enough to just use the advertised hostname for clients and for
{{--master-addresses}} configs
hmm well it would need to change for the {{GetMasterRegistration}} RPC
was:
In some environments the externally accessible host/port is not the same as the
bind host/port. This commonly happens with containers. It would be nice to
have a `--rpc-advertised-addresses` configuration flag that would replace the
`--rpc-bind-addresses` config when a server gives out it's own RPC address.
Some quick notes I wrote on a potential implementation on Slack:
As far as where it would be added - I think you want to go one level down from
the heartbeater into the {{RpcServer}}. {{RpcServer}} already has a
{{GetBoundAddresses}} method, so maybe it could have a `GetAdvertisedAddresses`
method and a corresponding {{rpc_advertised_addresses}} gflag as well
({{rpc_bind_addresses}} is also defined in rpc_server.cc). Then, the
heartbeater could be changed to use {{GetAdvertisedAddresses}} instead of
{{GetBoundAddress}}.
I’m not sure if there needs to be a corresponding change to masters, I think it
may be enough to just use the advertised hostname for clients and for
{{--master-addresses}} configs
hmm well it would need to change for the {{GetMasterRegistration}} RPC
> Add advertised RPC host/port server configuration
> -------------------------------------------------
>
> Key: KUDU-1988
> URL: https://issues.apache.org/jira/browse/KUDU-1988
> Project: Kudu
> Issue Type: Improvement
> Components: server
> Affects Versions: 1.3.0
> Reporter: Dan Burkert
> Labels: newbie
>
> In some environments the externally accessible host/port is not the same as
> the bind host/port. This commonly happens with containers. It would be nice
> to have a {{--rpc-advertised-addresses}} configuration flag that would
> replace the {{--rpc-bind-addresses}} config when a server gives out it's own
> RPC address.
> Some quick notes I wrote on a potential implementation on Slack:
> As far as where it would be added - I think you want to go one level down
> from the heartbeater into the {{RpcServer}}. {{RpcServer}} already has a
> {{GetBoundAddresses}} method, so maybe it could have a
> `GetAdvertisedAddresses` method and a corresponding
> {{rpc_advertised_addresses}} gflag as well ({{rpc_bind_addresses}} is also
> defined in rpc_server.cc). Then, the heartbeater could be changed to use
> {{GetAdvertisedAddresses}} instead of {{GetBoundAddress}}.
> I’m not sure if there needs to be a corresponding change to masters, I think
> it may be enough to just use the advertised hostname for clients and for
> {{--master-addresses}} configs
> hmm well it would need to change for the {{GetMasterRegistration}} RPC
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)