Created 08-02-2024 02:46 PM
Hi ,
I haven been playing with nifi on docker lately and its been quite the challenge and the learning experience. To best understand how to utilize docker for nifi, Im hoping the community can help me with addressing the following observations\questions:
1- Most of the examples I found on the internet including the nifi official docker page seem to be suitable for single host deployment ! Im finding this is strange - unless Im missing something - but doesnt that defeat the purpose of having cluster with no single point of failure ? What are the the scenarios where someone wants to deploy single host multiple container cluster vs multiple host single container ?
2. Getting to understand docker networking I found that if I want to create multi host cluster and have the cluster to have visibility to our work network then the ideal way to do it is using "host" networking, is this correct or is there a better way (maybe using overlay networking with swarm? if I do that later then how Im going to access none docker servers on my network?
3. If "host" networking is one of the options, then why the official nifi docker image doent mention how to see the https host name as one of the environment propeties similar to what we do locally by setting "nifi.web.https.host" in the nifi.properties ? using other sites\images I found the property "NIFI_WEB_HTTPS_HOST" can be used fort that which works ! Is there another way of setting the host?
4. Initially I was trying to use embedded zookeeper setup but I found that it doesnt work no matter how hard I tried. I found a lot people recommending using external zookeeper which what I ended up doing. Actually it turns out there is Jira bug for the problem I was faciing but its not resolved despite its been open for couple years! Why is that and is it ever going to be fixed or the recommendation is to use external zookeeper? if so at least that should have been mentioned somewhere.
5. Are the environment variables listed in the official docker page cover everything or there is more? where we can find comprehensive list of all the environment properties? I can see for example this image seem to list more env properties.
6. This is really important because I struggled the most with: How do we go about setting the nodes identity so that they are included in the authorizers.xml file? I could not find any clear instruction on this and I was getting the "Untrusted Proxy ". The only way I was able to get it to work is to manually update this file (using docker cp) but I had to also delete the generated users.xml and authorizations.xml files while the container is running because it seems you cant do it while container is stopped. I dont think this is the proper way of doing it and I hope there is better way that can be done in the yml file itself.
I really appreciate the community feedback on this specially from the expert like @MattWho , @steven-matison, @pvillard
Thanks
Created on 08-07-2024 10:31 AM - edited 08-07-2024 10:34 AM
Hi ,
Im still looking for some help\guidance on this @MattWho , @steven-matison , @pvillard , please. I also have another question regarding docker desktop:
Is there any images out there or instructions to show if nifi cluster can be deployed on windows DockerDesktop under Host mode . I have been playing with for couple days and I could not get it to work. when I try to set the Load Balancer Host or the hTTPS Host to the host machine IP I keep getting "Cannot Bind this Address" error? If someone was able to do it or know how please please do share.
Created 12-02-2024 03:25 PM
Hi,
Did you ever get Docker to run NiFi on a non localhost setting "NIFI_WEB_HTTPS_HOST=" as your own hostname, preferably as a "Standalone Instance secured with HTTPS and Mutual TLS Authentication" as described in https://hub.docker.com/r/apache/nifi ?
I always get the error:
ERROR [main] org.apache.nifi.web.server.JettyServer Failed to start Server
java.io.IOException: Failed to bind to myhostname:8443/<unresolved>:8443
I also get the message
INFO [main] o.a.nifi.web.server.HostHeaderHandler 11 valid values for HTTP Request Host Header: 127.0.0.1, 127.0.0.1:8443, localhost, localhost:8443, [::1], [::1]:8443, c864f1c4159e, c864f1c4159e:8443, 172.17.0.2, 172.17.0.2:8443,
when I don't set my own host name, so it's setting a lot of host values and I can't tell if by my attempting to overwrite them with my host name that conflicts are occurring.
Thanks!
Created 08-07-2024 01:07 PM
@ckumar @ArtiW @bbahamondes Hi! Do you have any insights here? Thanks!
Regards,
Diana Torres,Created 12-03-2024 12:33 AM
Hi @Emery ,
Unfortunately no I have not been able to do it and if you are using windows docker desktop I don't think it can be done. One way around it is to use Nginx Reverse proxy but it's not easy process to follow and I wasn't able to implement either. If you are ever able to get it working please do share your findings.
Created 12-03-2024 05:20 AM
Hi Samsal,
That's very unfortunate. I've attempted the Mac version. All examples I've found by others, whether written or on youtube, only demonstrate setting it up with a localhost. This slightly older example (https://www.youtube.com/watch?v=LanpbWR7Gv8) of using certificates with multiple users is great (it passes over a few minor modifications), and would be better if it also demonstrated setting it up using a host name other than localhost, because I can't think of a use case with multiple users calling localhost, however it doesn't make use of Docker either.
I hope someone else chimes in here and offers us some guidance for a very typical installation, in my opinion.
Thanks for your response!