Jama Upgrade: Fix application-ingress-traefik Pending/Updating Due to Host Port Conflict

Erik Haake
Erik Haake
  • Updated
  • Jama Connect® version(s)
    • Self-hosted: 9.35 and above

Summary

This article explains why application-ingress-traefik can remain in Updating after a Jama upgrade on single-node Kubernetes environments, and how to resolve it quickly.

The issue occurs when the new Traefik pod cannot start because the existing Traefik pod is still using required network ports on the node (commonly 80 and 443). When this happens, Kubernetes keeps the new pod in Pending and the DaemonSet rollout does not complete until the old running Traefik pod is removed.

Resolution

Identify the stuck rollout condition

Check whether the new Traefik pod is Pending and whether Kubernetes reports that no free ports are available on the node. Run the following commands and review the events for a port availability message.

kubectl get pods -A | grep application-ingress-traefik
kubectl describe pod <pending-traefik-pod-name> -n <namespace>

After describing the pod, you may see an Event like the following:

Events:
  Type     Reason            Age                   From               Message
  ----     ------            ----                  ----               -------
  Warning  FailedScheduling  6d2h (x22 over 6d4h)  default-scheduler  0/1 nodes are available: 1 node(s) didn't have free ports for the requested pod ports. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.

Unblock the DaemonSet update

Delete the currently running Traefik pod in the same namespace so the new Traefik pod can claim the required ports. Then watch the rollout until it completes.

kubectl -n <namespace> delete pod <running-traefik-pod-name>
kubectl -n <namespace> rollout status daemonset/application-ingress-traefik
kubectl -n <namespace> get pods -w | grep application-ingress-traefik

Prevention and upgrade guidance

For future upgrades, monitor Traefik rollout during the maintenance window and intervene only if the new pod stays Pending with a port conflict. Use discovery commands each time instead of hardcoded pod names, because pod names change between environments and upgrades.

kubectl get daemonset -A | grep application-ingress-traefik
kubectl get pods -A | grep application-ingress-traefik
kubectl -n <namespace> rollout status daemonset/application-ingress-traefik

If production risk is high, perform the upgrade with live deployment support so any scheduling issue can be handled immediately.

 

Additional Resources

Feedback:
We welcome your input! Please sign in to leave any comments, suggestions, or ideas for improvement below.

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.