Releases: quobyte/quobyte-csi-pod-killer
Fixed a critical caching bug
- Includes a critical fix for caching path introduced in v0.2.0
Pod killer uses a deduplication cache to avoid lookup duplication. In case of pod name resolution cache pod unavailability , the deduplication cache is not cleared and that lead to non-functioning pod killer with v0.2.0. The current release fixes this critical bug and clears the deduplication cache on pod name resolution cache lookup failures.
Fix Pod Killer scalability issue
Earlier pod killer listed PVs and Pods on each k8s node and therefore overloaded k8s-apiserver on larger clusters (observed at 1000 node clusters).
To reduce the k8s-apiserver, the new pod killer deploys single pod killer cache pod (caches some information of pods, PVs) using k8s informers and exposes lookup api via http. The mount point monitor running on the each k8s node upon encountering stale CSI mountpoints, resolves the pod uid that has stale mount point to pod name/namespace via the cache pod api service. After resolving the pod, the mount point monitor deletes the pod that has stale mount point.
Don't delete Pending status pods
Pods that are still in pending status indicate a problem (not able to mount volume etc). These pods will be skipped during pod killer iteration such that user can identify and fix the underlying problem.
Use syscalls & specific error codes to identify mountpoint non-availability
- Identifies host mount as non-available only if syscall fails with the
ENOTCONN
andENOENT
- Updates base image to ubuntu 20.04
- Runs update & upgrade of packages to get up-to-date dependencies
Fix nil pointer exception
Pod killer runs into fatal nil pointer exception when k8s cluster has PVs other than CSI type.
This release fixes the issue.
Pod killer initial version
0.1.0 Add README file