treewide: update to Kubernetes 1.31

Overall not that bad, we got rid of some workarounds and added some new
ones. Biggest change is a significant refactor of the hyperkube package
as Kubernetes really doesn't like multiple of their top-level Cobra
commands to be instantiated. One new patch for gVisor as new fields got
added to a Linux struct which caused codegen to rename an existing one.
That patch will go away once [1] is released as this has been changed
back again.
Otherwise mostly standard rebases of patches. We currently have a
warning in kubelet as our containerd CRI does not support the
RuntimeConfig RPC, but no released version of containerd has that and
the fallback works fine for now.

[1] https://go-review.googlesource.com/c/sys/+/607876

Change-Id: I275e5fb78bc1d09c4ca0e8b5705edbaa80f30d96
Reviewed-on: https://review.monogon.dev/c/monogon/+/3355
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/third_party/go/patches/gvisor-unix-0.20.patch b/third_party/go/patches/gvisor-unix-0.20.patch
new file mode 100644
index 0000000..80908e6
--- /dev/null
+++ b/third_party/go/patches/gvisor-unix-0.20.patch
@@ -0,0 +1,17 @@
+Fix for https://github.com/google/gvisor/issues/10483
+
+--- a/pkg/xdp/xdp.go
++++ b/pkg/xdp/xdp.go
+@@ -151,9 +151,9 @@
+ 	}
+ 
+ 	reg := unix.XDPUmemReg{
+-		Addr: uint64(sliceBackingPointer(umemMemory)),
+-		Len:  uint64(len(umemMemory)),
+-		Size: opts.FrameSize,
++		Addr:       uint64(sliceBackingPointer(umemMemory)),
++		Len:        uint64(len(umemMemory)),
++		Chunk_size: opts.FrameSize,
+ 		// Not useful in the RX path.
+ 		Headroom: 0,
+ 		// TODO(b/240191988): Investigate use of SHARED flag.