3

I have a few different containerized web apps running on Azure Container Instance (ACI). I recently noticed that some of these containers just restart with no apparent reason once in a month or so. Since the restarts are on different apps/containers each time, I have no reason to suspect that the apps are crashing.

The restart policy on all of them are set to "Always".

Is it normal or expected for the containers to restart even when there is no app crash? Perhaps when Azure does maintenance on the host machines or maybe a noisy neighbor on the same host causing a pod movement to another host?

(I am in the process of adding a log analytics workspace so that I can view the logs before the restart. Since the restarts are so infrequent, I wouldn't have any logs to look at for quite some time.)

rahulmohan
  • 1,285
  • 11
  • 19
  • Wondering about the same. I see events like this in my Log Analytics Workspace: "Killing container with id docker://app-worker:Need to kill Pod" – Magnus Jan 13 '21 at 10:31
  • I wonder the same. Did you find the answer? – SOK Mar 09 '21 at 08:32
  • I added log analytics. Didn't see anything useful in the logs. The containers just restart for no apparent reason once in a while. I have seen this happen across multiple containers at or around the same time - that further confirms this behavior has nothing to do with the contents of the containers per se. Since ACI is running k8s behind the scenes, I think this behavior should be expected. From k8s documentation: ["Pods are designed as relatively ephemeral, disposable entities."](https://kubernetes.io/docs/concepts/workloads/pods/#working-with-pods) – rahulmohan Mar 09 '21 at 17:11
  • I think if you deploy the image to Azure App Service you may able to avoid this issue. – CodingPanda Sep 12 '22 at 05:36

1 Answers1

1

Same here

I've contacted MS support and got the response that per design ACI maintenance can restart the hosts so it can't be expected to run ACI for weeks uninterrupted

Recommendation is to

  • adapt your app to be resilient (so you don't care about restarts)
  • use AKS to gain full control over lifecycle
  • use VM as host for your app with appropriate policies (no updates / restarts...)

For me this was a deal-breaker since I couldn't find this info anywhere. I've ended up with VM.

Tomas
  • 675
  • 8
  • 17