Kubernetes API requests in a pure IPv6 environment fail with an "nxdomain" #55
Kubernetes API requests in a pure IPv6 environment fail with an "nxdomain" #55
Comments
does this plugin support ipv6 only stack or it support ipv6/ipv4 stack? |
This plugin issues requests to the Kubernetes API over HTTP[S]. It is entirely unaware of what IP version is used underneath. For cases when proper hostname resolution configuration is not available, Erlang provides its own resolution configuration file which should be pointed at using the |
Versions of the software from this
I suspect this is due to the Note the default value for @taijitao since you have access to an IPv6-only environment, I will create a custom build of this plugin for you to test. |
@taijitao - here is the custom plugin built from this branch: rabbitmq_peer_discovery_k8s-3.7.20+rc.1.dirty.ez.zip To install:
Please note that cluster formation only happens the first time RabbitMQ is started. If these nodes have been started before, you will have to reset them ( |
@taijitao any chance to test this? ^^^^ |
Yes, I'll test that. |
@taijitao it configures (unconditionally at the moment) HTTP client's socket address family to IPv6. |
I have tested it and it worked.
but it's fail to form cluser. I now had two separated nodes.
|
According to the log discovery via Kubernetes API endpoint has succeeded. However, nodes could not contact and/or authenticate with each other. This is not a responsibility of this plugin. See |
I personally would prefer the latter. @taijitao WDYT? |
Hi, I tried this patch because I'd need also here.
and:
also the cluster status:
I noticed that for some reason the command
|
@michaelklishin working on a PR to fix this in an "auto detect" fashion |
thanks lukebakken for your help. |
Auto-detection has a tendency to fail in ways that are hard to understand. There will be no switching between binary plugins if we can't get auto-detection to work reliably but an option that lets the operator to tell the plugin what AF to use. |
that's fine if one option is provided. |
If the user configures `{inet6, true}` in `ERL_INETRC` file, then use it for all `httpc:` calls in peer discovery. Fixes rabbitmq/rabbitmq-peer-discovery-k8s#55
If the user configures `{inet6, true}` in `ERL_INETRC` file, then use it for all `httpc:` calls in peer discovery. Fixes rabbitmq/rabbitmq-peer-discovery-k8s#55
@taijitao @Gsantomaggio if you have time, I would really appreciate you testing the fix in rabbitmq/rabbitmq-peer-discovery-common#11
rabbitmq_peer_discovery_common-3.7.20+rc.1.2.gb768f10.ez.zip
The changes in rabbitmq/rabbitmq-peer-discovery-common#11 look for the presence of |
@taijitao @lukebakken
Thanks! |
@lukebakken |
@hustlzp1981 see the milestone on this PR and |
@hustlzp1981 this is not a support forum. Please post your questions to the mailing list.
|
Thanks klishin! |
RabbitMQ has only one and it hasn't changed since 2014. |
The |
Thanks! However, still have another issue. |
|
This is not a Kubernetes support forum so I will lock this. |
Hi,
I had a pure ipv6 k8s cluster. and i want to instal rabbitmq helm chart.
I followed the instrument in https://www.rabbitmq.com/networking.html#distribution-ipv6
My parameter(in helm chart):
File erl_inetrc was created under /etc/rabbitmq.
and I found error in log:
the inet could return ipv6 address.
nslookup return ipv6 address when type=aaaa.
return error when type=a.
I don't know why httpc:request will return nxdomain.
is it a bug or setting issue?
B.R,
Tao
The text was updated successfully, but these errors were encountered: