<p>I'm running a service written in go in a pod in Kubernetes. The service doesn't expose an HTTP interface; it's processing work from a queue.</p>

<p>I could:</p>

<ul>
<li>Use an executable liveness check to see if the process is running</li>
<li>Expose an HTTP health check endpoint</li>
<li>Use expvars to expose basic health data.</li>
</ul>

<p>Is there a common / idiomatic way of doing this in go/Kubernetes?</p>

<p>In general I recommend the HTTP mechanism because it is SO easy to add in Go.  If you already have an <code>exec</code>able command that will return a useful status, go for it.  Or you might consider <a href="https://github.com/kubernetes/contrib/tree/master/exec-healthz" rel="nofollow">https://github.com/kubernetes/contrib/tree/master/exec-healthz</a></p>
