Skip to content

Releases: ctrox/zeropod

v0.9.1

07 Dec 16:12
98ea3e7

Choose a tag to compare

What's Changed

While validating the latest release on different systems, an issue was identified where the socket_tracker map would be emptied by the kernel sporadically. This includes a hotfix for this issue by changing the BPF map type.

Upgrade notes

If you are coming from release v0.8.0 or earlier and make use of scale to zero, ensure to re-schedule all pods using zeropod after updating the zeropod-node DaemonSet. This is due to an architectural change in the socket tracker. Pods running pre-v0.9.0 zeropod shims might not be able to detect the last TCP connection and will simply scale down after the configured duration is up.

Changelog

  • fix: use non-LRU map type for socket tracker by @ctrox in #119
  • chore: update image versions by @ctrox in #120

Full Changelog: v0.9.0...v0.9.1

v0.9.0

07 Dec 15:51
309440c

Choose a tag to compare

What's Changed

  • merged socket tracker into redirector for more reliability in detecting TCP activity.
  • fixed stats/metrics reporting of the shim to the container runtime. This fixes use-cases such as combining zeropod with HPA and also will make kubectl top pod report 0 usage instead of nothing at all.
  • makes use of TCX to attach eBPF program if available (kernel 6.6+).
  • upgraded several dependencies such as Go and criu.

Upgrade notes

If you are coming from an earlier release of zeropod and make use of scale to zero, ensure to re-schedule all pods using zeropod after updating the zeropod-node DaemonSet. This is due to an architectural change in the socket tracker. Pods running pre-v0.9.0 zeropod shims might not be able to detect the last TCP connection and will simply scale down after the configured duration is up.

Changelog

  • fix: notify node when starting in scaled-down state by @ctrox in #103
  • fix: abort restore when node connection fails by @ctrox in #104
  • docs: split up single README.md into multiple docs by @ctrox in #105
  • feat: merge socket tracker into redirector by @ctrox in #102
  • fix: typos in comments and messages by @ctrox in #106
  • docs: adjust point about connection tracking by @ctrox in #107
  • fix: stats in scaled down state by @ctrox in #112
  • chore: upgrade Go to 1.25 by @ctrox in #113
  • feat: use TCX instead of qdisc when available by @ctrox in #116
  • chore: upgrade criu to v4.2 by @ctrox in #114
  • fix: simplify poll error handling by @ctrox in #117
  • chore: update image versions by @ctrox in #118

Full Changelog: v0.8.0...v0.9.0

v0.8.0

28 Sep 15:21
9b9024a

Choose a tag to compare

What's Changed

  • shim memory usage reduced by ~26% and binary size by ~35%.

    # v0.7.0
    
    $ ps -aux
    RSS   COMMAND
    18556 /opt/zeropod/bin/containerd-shim-zeropod-v2
    
    $ ls -s /opt/zeropod/bin/containerd-shim-zeropod-v2
    14896 /opt/zeropod/bin/containerd-shim-zeropod-v2
    
    # v0.8.0
    
    $ ps -aux
    RSS   COMMAND
    13564 /opt/zeropod/bin/containerd-shim-zeropod-v2
    
    $ ls -s /opt/zeropod/bin/containerd-shim-zeropod-v2
    9648 /opt/zeropod/bin/containerd-shim-zeropod-v2
    
  • migration is now claimed immediately by the controller, meaning it should no longer timeout when an image pull takes longer than 10s.

  • CRIU has been upgraded to include fixes when running on kernel 6.16+

  • Fix for using runc 1.3.0+

Full Changelog

  • config: enable status events and in-place scaling by default by @ctrox in #79
  • feat: remove unused io code by @ctrox in #81
  • chore: upgrade to containerd to v2.1.4 by @ctrox in #82
  • feat: add version info to manager/shim by @ctrox in #83
  • feat: upgrade CRIU by @ctrox in #88
  • fix: detect v6 mapped v4 addresses by @ctrox in #89
  • fix: skip in-flight TCP for runc 1.3.0+ by @ctrox in #90
  • chore: upgrade dependencies by @ctrox in #91
  • ci: run on pull_request instead of push by @ctrox in #98
  • some makefile dependency fixes by @oOraph in #94
  • fix: workaround CRIU not dumping TCP_LISTEN socket by @ctrox in #99
  • claim migration as soon as possible by @ctrox in #100
  • Update image versions by @github-actions[bot] in #101

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

11 Aug 20:29
11f346a

Choose a tag to compare

What's Changed

  • Added handling for HTTP/TCP probes: zeropod is now able to intercept probes while the container process is scaled down to ensure the application is not restored for probes. You can read more about the feature in the docs.

  • Create status events on scale down/restore events: these are referencing the relevant pod so the events will show up in kubectl describe pod.

    Type    Reason       Age   From                       Message
    ----    ------       ----  ----                       -------
    Normal  Started      3m10s  kubelet                    Started container nginx
    Normal  Scaled down  2m59s  zeropod.ctrox.dev/manager  Scaled down container nginx in 254.524163ms
    Normal  Running      26s    zeropod.ctrox.dev/manager  Restored container nginx in 95.508441ms
    
  • Copy "scratch space" container data during migration: when migrating a pod (regardless of live or scaled down), data that has been written to the containers file system will be copied over to the new node in addition to the memory contents.

Full changelog

  • feat: emit warnings when eBPF support is missing by @ctrox in #71
  • feat: handle kubelet TCP/HTTP probes by @ctrox in #72
  • fix: non-live migration status by @ctrox in #73
  • feat: upgrade containerd by @ctrox in #74
  • feat: create status events by @ctrox in #75
  • feat: implement migrating upper container layer by @ctrox in #76
  • feat: track multiple sandbox IPs by @ctrox in #77
  • Update image versions by @github-actions[bot] in #78

Full Changelog: v0.6.4...v0.7.0

v0.6.4

13 Jul 08:39
0a6e2d9

Choose a tag to compare

What's Changed

  • fix: tracker cleanup by @ctrox in #58
  • fix: check activator exists before calling stop by @ctrox in #60
  • feat: chunked image transfer by @ctrox in #61
  • feat: upgrade CRIU to v4.1 by @ctrox in #62
  • feat: add log message when lazy page check fails by @ctrox in #68
  • fix: store container create options for restore by @ctrox in #69
  • Update image versions by @github-actions[bot] in #70

Full Changelog: v0.6.3...v0.6.4

v0.6.3

13 Apr 15:47
05e8e57

Choose a tag to compare

What's Changed

Hotfix for installer issue in the previous release v0.6.2. The installer image of v0.6.2 has been removed to avoid a broken installation.

  • fix: runtime already configured on containerd v1 by @ctrox in #56
  • Update image versions by @github-actions in #57

Full Changelog: v0.6.2...v0.6.3

v0.6.2

13 Apr 13:13
cf9ff35

Choose a tag to compare

What's Changed

  • fix: configure apparmor profile for manager by @ctrox in #50
  • Installer improvements by @ctrox in #51
  • feat: check lazy pages support by @ctrox in #52
  • feat: reduce update log spam for manager by @ctrox in #53
  • test: add proper port test by @ctrox in #54
  • Update image versions by @github-actions in #55

Full Changelog: v0.6.1...v0.6.2

v0.6.1

02 Apr 20:49
8ca1c54

Choose a tag to compare

What's Changed

  • deploy: enable migration manager for prod manifests by @ctrox in #45
  • fix: do not use cp for copying RKE2/k3s config by @ctrox in #47
  • Update image versions by @github-actions in #48

Full Changelog: v0.6.0...v0.6.1

v0.6.0

30 Mar 11:16
361ffeb

Choose a tag to compare

What's Changed

This release introduces a new migration feature, read the relevant section in the README for more information an how to enable it. Other notable changes are further trimming of the shim memory usage, full compatibility with containerd v2 and an improved metrics system.

  • feat: upgrade criu 4 by @ctrox in #35
  • feat: upgrade to Go 1.23 by @ctrox in #36
  • feat: add support for resizing on Kubernetes 1.32 by @ctrox in #37
  • feat(experimental): container migration by @ctrox in #40
  • Upgrade to containerd v2 for shim by @ctrox in #41
  • feat: move prometheus metrics to manager by @ctrox in #42
  • refactor: trim shim dependencies by @ctrox in #43
  • Update image versions by @github-actions in #44

Full Changelog: v0.5.0...v0.6.0

v0.5.0

29 Sep 10:37
599d90f

Choose a tag to compare

What's Changed

  • fix(docs): update broken links in documentation by @satrox28 in #27
  • fix: always retry when port detection fails by @ctrox in #30
  • fix: improve handling on scaledown failure by @ctrox in #31
  • feat: upgrade to containerd v1.7.22 by @ctrox in #32
  • Update image versions by @github-actions in #33

New Contributors

Full Changelog: v0.4.1...v0.5.0