Last Week In Kubernetes Development

Subscribe
Archives
April 24, 2024

LWKD: Week Ending April 21, 2024

Last Week in Kubernetes Development

Week ending 2024-04-21

Developer News

Kubernetes v1.30: Uwubernetes was released! Major features includes Go workspaces, Pod Scheduling Readiness, VolumeManager reconstruction after kubelet restart, Node log query and more. Read more in the announcement blog post and the release notes.

If you use minikube, please fill out their quick survey.

SIG-CLI has new leadership: Arda Guclu is a new chair, and Katrina and Eddie are stepping down. SIG Autoscaling is replacing Marcin with Maciek Pytel.

Kat Cosgrove and Grace Nguyen are Release Team subproject leads, and Marko Mudrinić is the Release Engineering subproject lead.

Release Schedule

Next Deadline: 1.31 Cycle Begins, April 2024

We are in the period between releases right now. Dates for 1.31 have not been published yet.

Featured PR

#123905: # Field selector for Services based on ClusterIP and Type

In clusters with unusually large numbers of headless Services (i.e. Services without a cluster IP), it can cause memory bloat in the Kubelet as it has to cache these as part of the API informer. This PR extends the Service API to allow filtering on both clusterIP and type, both improving the memory usage of the Kubelet and decreasing load on the API. While this specific optimization only helps a niche audience, it's worth reinforcing how this technique can be applied elsewhere. When optimizing any controller, always keep an eye open for how API watch traffic could be mitigated with server-side logic or filters. Creating field selectors is easy and streamlined, and can likely be used in many more such optimizations.

KEP of the Week

KEP 3521: Pod Scheduling Readiness

This KEP proposes to add an API to mark Pods as ready or paused for scheduling so that the scheduler is not wasting cycles retrying to schedule Pods that are determined to be unschedulable. The KEP adds APIs for users and controllers to control when a Pod is ready to be considered for scheduling. This is done with the new .spec.schedulingGate field to the Pod API. Pods will only be attempted to be scheduled to a Node by the scheduler when .spec.schedulingGate key is nil. A new Enqueue extension point is also added to customize Pod queueing behaviour.

This KEP graduated to stable in the v1.30 release.

Other Merges

  • make works without go binaries in PATH
  • kube-proxy --nodeport-addresses primary implements backwards-compatible nodeport behavior
  • kubeadm stops mounting the entire pki directory, or storing ResolverConfig globally
  • Use the generic ptr package for all pointers
  • Stop deep copying the Controller object
  • Prevent DRA crash on nil NodePreparedness
  • You can override the openAPI schema during codegen
  • client-gen fake clients give the same errors as real clients
  • client-go REST client supports WatchList
  • DisableServiceLinks admission controller does what it says on the tin
  • InterpodAffinity scheduler plugin takes scheduling hints
  • Stop spamming the logs when recreating statefulset pods, or when a swap controller is not present
  • Allow conversions between values in CEL fields
  • Don't use a global variable for E2E test image locations
  • Our APIServer span name is KubernetesAPI
  • kube-proxy IPv6 bind defaults are properly IPv6
  • Make workqueue objects generic and replaceable
  • Display complete NetworkPolicy port ranges
  • kubelet's read-only endpoint supports tracing
  • Figure out slog logger automatically
  • Contextual logging migration: pkg/proxy, apimachinery runtime

Promotions

  • kube-proxy nftables to Beta

Deprecated

  • Remove deprecated DefaultHostNetworkHostPortsInPodTemplates feature gate
  • kubeadm: Remove update-status
  • Remove deprecated v1alpha2 Kubelet gRPC API
  • Remove GCE-only SkipReadOnlyValidationGCE feature gate
  • Remove deprecated kubelet iptables switches, keep-terminated-pod-volumes

Version Updates

  • etcd to 3.5.13
  • cri-tools to 1.30
  • cel-go to 0.20.1
  • cni-plugins to 1.4.1

Subprojects and Dependency Updates

  • cloud-provider-aws to v1.30.0: InstancesV2 interface, include zone information for topology
  • cloud-provider-vsphere to v1.30.0: update many dependency versions
  • minikube to v1.33.0: multi-control-plane HA clusters, Kubernetes 1.30, ARM64 support
Don't miss what's next. Subscribe to Last Week In Kubernetes Development:
Powered by Buttondown, the easiest way to start and grow your newsletter.