<div dir="ltr">Hi,<div><br></div><div><div>That is indeed what I want to do. Draining connections at the LB level just involves more work ;).<br></div><div><br></div><div>For context: my entire stack runs on a kubernetes cluster. </div><div><br></div><div>I sometime need to replace a running instance of a server process [be it nginx apache php-fpm varnish whatever] with a new instance. </div><div><br></div><div>Taking Apache as an example, I simply create the new apache instance (a new pod in kubernetes speak), which immediately starts getting some traffic (without changing the load balancer configuration at all, a kubernetes "service" automatically detects new pods), then I gracefully shutdown the old instance (kubernetes actually automatically tells the pod to shutdown), by issuing a "apachectl -k graceful-stop" (kubernetes is configured to issue this command for me), which instructs apache to stop accepting connections, finish, then shutdown.</div><div><br></div><div>It's really great because instead of having to push a new config refusing probes and reload it, I (/kubernetes) simply gracefully stops apache and the traffic flows to the new instance. nginx and php-fpm also handle things this way.</div><div><br></div><div>At any rate, thanks for the advice, I will start using probes!</div><div><br></div><div>Cheers,</div><div>-Hugues</div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 17, 2017 at 11:51 PM, Guillaume Quintard <span dir="ltr"><<a href="mailto:guillaume@varnish-software.com" target="_blank">guillaume@varnish-software.<wbr>com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hi,<div dir="auto"><br></div><div dir="auto">That's not possible. However, what you really want, I think, is not sending new requests to Varnish. That's usually done at the loa-bbalancing level. If your LB use probes, you can tell Varnish to stop honoring them, drain the connections, then kill it.<br><br><div data-smartmail="gmail_signature" dir="auto">-- <br>Guillaume Quintard </div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_8080804183925253129h5">On Oct 18, 2017 02:28, "Hugues Alary" <<a href="mailto:hugues@betabrand.com" target="_blank">hugues@betabrand.com</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_8080804183925253129h5"><div dir="ltr">Hi there, <div><br></div><div>I've been looking around and I can't find a documented way of gracefully shutting down varnishd, and by gracefully I mean tell varnish "stop accepting connections, but finish what you were doing, then shutdown".</div><div><br></div><div>I did find something in the "first varnish design notes" (<a href="https://varnish-cache.org/docs/5.1/phk/firstdesign.html" target="_blank">https://varnish-cache.org/doc<wbr>s/5.1/phk/firstdesign.html</a>) which seemed to indicate that sending SIGKILL/SIGTERM would mean "suspend/stop" but KILL doesn't seem to work, and TERM, well... terminates but not gracefully.</div><div><br></div><div>I also tried using "varnishadm stop", which also doesn't gracefully stops connection.</div><div><br></div><div>Is there anyway to achieve this?</div><div><br></div><div>Thanks!</div><div>-Hugues</div></div>
<br></div></div>______________________________<wbr>_________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org" target="_blank">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer" target="_blank">https://www.varnish-cache.org/<wbr>lists/mailman/listinfo/varnish<wbr>-misc</a><br></blockquote></div></div>
</blockquote></div><br></div></div></div>