The kubectl CLI is written in Golang, and use Cobra features to automatic generate documentation based on subcommands, flags, etc.
So, you can use kubectl --help to see all the available options. Furthermore, you can dig into specific subcommands options (e.g., kubectl describe --help, kubectl get --help and so on).
More than that, you can use kubectl explain to describe the fields associated with each supported API resources, which is very useful when writing templates. Examples:
# Get the documentation of the resource and its fields
kubectl explain pods
# Get the documentation of a specific field of a resource
kubectl explain pods.spec.containers