Recently, we deployed a custom-written health check container. However, I noticed that I am using the embedded nv-hostengine. Additionally, our Kubernetes cluster already has a DCGM Exporter running in its default state, which also utilizes an embedded nv-hostengine.
Upon reviewing the documentation, I realized this approach is incorrect. The best practice is to use a standalone nv-hostengine and have both clients connect to that single same instance. This has raised a few questions for me regarding the implementation:
- Connection Mode:
The nv-hostengine supports two connection modes. It can use TCP-based connections, but it defaults to opening port 5555 on localhost, meaning I cannot connect external containers to it directly. Alternatively, it supports Unix Sockets.
In terms of best practices, should I stick with the default localhost:5555 and enable Host Network for both of my clients, or should I use a Unix Socket and communicate via file mounting?
- Deployment Strategy:
Regarding the standalone nv-hostengine, should I run it as a process at the host level, or should I start a dedicated nv-hostengine container and have the other two containers connect to it?
I would appreciate your guidance on the best practices for these two issues within a Kubernetes environment. Thank you very much for your patience.
Recently, we deployed a custom-written health check container. However, I noticed that I am using the embedded nv-hostengine. Additionally, our Kubernetes cluster already has a DCGM Exporter running in its default state, which also utilizes an embedded nv-hostengine.
Upon reviewing the documentation, I realized this approach is incorrect. The best practice is to use a standalone nv-hostengine and have both clients connect to that single same instance. This has raised a few questions for me regarding the implementation:
The nv-hostengine supports two connection modes. It can use TCP-based connections, but it defaults to opening port 5555 on localhost, meaning I cannot connect external containers to it directly. Alternatively, it supports Unix Sockets.
In terms of best practices, should I stick with the default localhost:5555 and enable Host Network for both of my clients, or should I use a Unix Socket and communicate via file mounting?
Regarding the standalone nv-hostengine, should I run it as a process at the host level, or should I start a dedicated nv-hostengine container and have the other two containers connect to it?
I would appreciate your guidance on the best practices for these two issues within a Kubernetes environment. Thank you very much for your patience.