diff --git a/osbase/logtree/BUILD.bazel b/osbase/logtree/BUILD.bazel
index 60e8743..584d22c 100644
--- a/osbase/logtree/BUILD.bazel
+++ b/osbase/logtree/BUILD.bazel
@@ -27,6 +27,7 @@
         "//osbase/logbuffer",
         "//osbase/logtree/proto",
         "@com_github_mitchellh_go_wordwrap//:go-wordwrap",
+        "@io_k8s_klog_v2//:klog",
         "@org_golang_google_grpc//grpclog",
         "@org_golang_google_protobuf//types/known/timestamppb",
         "@org_uber_go_zap//:zap",
diff --git a/osbase/logtree/klog.go b/osbase/logtree/klog.go
index 54e7f68..6dd60e7 100644
--- a/osbase/logtree/klog.go
+++ b/osbase/logtree/klog.go
@@ -11,6 +11,8 @@
 	"strings"
 	"time"
 
+	"k8s.io/klog/v2"
+
 	"source.monogon.dev/go/logging"
 	"source.monogon.dev/osbase/logbuffer"
 )
@@ -200,3 +202,45 @@
 	// what we want, but we should formalize this.
 	return time.Parse(layout, fmt.Sprintf("%d %s %s", year, d, t))
 }
+
+// klogSink implements klog.LogSink on a logging.Leveld logger.
+type klogSink struct {
+	logging.Leveled
+}
+
+func (k *klogSink) Enabled(level int) bool {
+	return k.V(logging.VerbosityLevel(level)).Enabled()
+}
+
+func (k *klogSink) Error(err error, msg string, keysAndValues ...any) {
+	if err != nil {
+		k.Errorf("%s: %w - %v", msg, err, keysAndValues)
+	} else {
+		k.Errorf("%s: %v", msg, keysAndValues)
+	}
+}
+
+func (k *klogSink) Info(level int, msg string, keysAndValues ...any) {
+	k.Infof("%s: %v", msg, keysAndValues)
+}
+
+func (k *klogSink) Init(info klog.RuntimeInfo) {
+}
+
+// WithName is only need if we would want to wrap the logger with a new
+// name, but we don't need that.
+func (k *klogSink) WithName(name string) klog.LogSink {
+	k.Warning("logtree.klogSink: WithName() called but not implemented. This is a bug!")
+	return k
+}
+
+// WithValues is only need if we would want to wrap the logger with a list
+// of static keys/values, but we don't need that.
+func (k *klogSink) WithValues(keysAndValues ...any) klog.LogSink {
+	k.Warning("logtree.klogSink: WithValues() called but not implemented. This is a bug!")
+	return k
+}
+
+func NewKlogLogger(logger logging.Leveled) klog.Logger {
+	return klog.New(&klogSink{logger})
+}
diff --git a/osbase/net/dns/kubernetes/object/informer.go b/osbase/net/dns/kubernetes/object/informer.go
index c5158dd..f827631 100644
--- a/osbase/net/dns/kubernetes/object/informer.go
+++ b/osbase/net/dns/kubernetes/object/informer.go
@@ -42,7 +42,6 @@
 		ListerWatcher:    lw,
 		ObjectType:       objType,
 		FullResyncPeriod: 0,
-		RetryOnError:     false,
 		Process:          builder(clientState, h),
 	}
 	return clientState, cache.New(cfg)
