Skip to content

k9s k9s

Description / nameInput element
Container Registry
Container Configuration Root Path
k9s /kubeconfig Path
k9s /config Path

Build Status Last Commit OCI Pulls

k9s, the Kubernetes terminal UI, with kubectl, on FreeBSD. Mount your kubeconfig and run it interactively.

Registry ghcr.io/daemonless/k9s
Daemonless daemonless/k9s
Source derailed/k9s
Website k9scli.io

Version Tags

Tag Description Best For
pkg FreeBSD Port. Built from FreeBSD packages. Most users — recommended.
latest / pkg-latest FreeBSD Port. Built from FreeBSD packages. Production stability.

Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions, including the security model for host vs. container privileges.

Deployment

1
2
3
4
podman run --rm \
  -v /containers/k9s/kubeconfig:/kubeconfig:ro \
  -v /containers/k9s:/config # optional \
  ghcr.io/daemonless/k9s:pkg

Save as run.sh, then run sh run.sh.

Setup Instructions

It is a terminal UI: run it interactively, with your kubeconfig mounted read-only:

podman run --rm -it -v ~/.kube/config:/kubeconfig:ro ghcr.io/daemonless/k9s:latest

kubectl is in the image too: podman run --rm -it -v ~/.kube/config:/kubeconfig:ro --entrypoint kubectl ghcr.io/daemonless/k9s:latest get pods -A.

The image runs as uid 1000. A kubeconfig that only its owner can read (the usual 0600) must belong to uid 1000, or be readable by it; otherwise k9s stops with permission denied on /kubeconfig. Copy it somewhere readable, or add --user 0.

A kubeconfig that points at localhost (a cluster on this same machine) needs --network host, so that address means the host and not the container.

Settings, skins, plugins and k9s's own logs go to /config; mount it to keep them between runs.

Interactive Configuration

Parameters

Volumes

Path Description
/kubeconfig Your kubeconfig, read-only (KUBECONFIG points here)
/config k9s settings, skins, plugins and logs (Optional)

Implementation Details

  • Architectures: amd64
  • User: bsd (UID/GID set via PUID/PGID). Defaults to 1000:1000.
  • Base: Built on ghcr.io/daemonless/base (FreeBSD 15.1).

Need help? Join our Discord community.