KUBERNETES(1)(kubernetes)

πŸ“¦
version 1.37.2 Β· 4 versions
, in arch rolling, fedora 43, fedora 44, nixpkgs unstable

✨ KUBERNETES(1) β€” the kubeadm join phase kubelet-start glow-up ✨

okay bestie, so this is a page from the kubernetes manual set (section 1), and the og version was put together by Eric Paris back in Jan 2015. we're gonna go through it together, no stress, i got you 🫢


🌸 NAME 🌸

kubeadm join phase kubelet-start β€” Write kubelet settings, certificates and (re)start the kubelet

like, that's the whole job description. it writes the kubelet's lil settings files, sorts the certs, and then (re)starts the kubelet. very main character of it honestly πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

kubeadm join phase kubelet-start [OPTIONS]

that's it, that's the vibe. no positional args, just you and your options πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea: this command writes a file with KubeletConfiguration, plus an environment file stuffed with node-specific kubelet settings. Then β€” and this is the fun part β€” it (re)starts kubelet. ✨

literally the whole plot. it's giving "prep the kubelet, then give it a little push out the nest." no cap.


πŸ’– OPTIONS πŸ’–

okay this is the long section, stay with me, we're gonna get through every single one because i love you and i refuse to skip anything πŸ’€

  • --config="" β€” Path to a kubeadm configuration file. your kubeadm config file lives here, point at it and go.
  • --cri-socket="" β€” Path to the CRI socket to connect. If empty kubeadm will try to auto-detect this value; use this option only if you have more than one CRI installed or if you have non-standard CRI socket. so like… leave it blank and kubeadm does the detective work itself πŸ” β€” only step in if you've got multiple CRIs fighting for attention or your socket is quirky.
  • --discovery-file="" β€” For file-based discovery, a file or URL from which to load cluster information. yes it can be a file or a URL, she's flexible πŸ’…
  • --discovery-token="" β€” For token-based discovery, the token used to validate cluster information fetched from the API server. your little validation token, doing the vibes check on whatever the API server hands over.
  • --discovery-token-ca-cert-hash=[] β€” For token-based discovery, validate that the root CA public key matches this hash (format: ":"). (yes bestie, the format really is written as ":" in the og, i'm not fixing it, i'm just delivering it faithfully πŸ™ˆ)
  • --discovery-token-unsafe-skip-ca-verification=false β€” For token-based discovery, allow joining without --discovery-token-ca-cert-hash pinning. ⚠️ the flag literally has unsafe in the name β€” do not come crying to me, the word "unsafe" is right there in bold.
  • --dry-run=false β€” Don't apply any changes; just output what would be done. a little dress rehearsal 🎭 nothing actually happens, you just get to peek.
  • --node-name="" β€” Specify the node name. name your node, bestie, give it an identity πŸͺͺ
  • --patches="" β€” Path to a directory that contains files named "target[suffix][+patchtype].extension". For example, "kube-apiserver0+merge.yaml" or just "etcd.json". "target" can be one of "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd", "kubeletconfiguration", "corednsdeployment", "kubeproxydaemonset". "patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats supported by kubectl. The default "patchtype" is "strategic". "extension" must be either "json" or "yaml". "suffix" is an optional string that can be used to determine which patches are applied first alpha-numerically. (this one is a whole meal, i know β€” read it slow, the naming scheme is lowkey genius once it clicks 🌈)
  • --tls-bootstrap-token="" β€” Specify the token used to temporarily authenticate with the Kubernetes Control Plane while joining the node. "temporarily" is doing a lot of work in that sentence and honestly, good for it.
  • --token="" β€” Use this token for both discovery-token and tls-bootstrap-token when those values are not provided. one token to rule them all πŸ’ β€” a lil convenience for when you don't feel like specifying both.

πŸ‘‘ OPTIONS INHERITED FROM PARENT COMMANDS πŸ‘‘

these aren't even hers, she just inherited them from her parent command. nepo baby energy, but make it useful ✨

  • --rootfs="" β€” The path to the 'real' host root filesystem. This will cause kubeadm to chroot into the provided path. (note the scare quotes around 'real' β€” that's the og's energy, not mine, i'm just the messenger πŸ’€)
  • --version=false β€” --version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version. so you can ask for the version, ask for it in raw, or set the version it reports. three moods, one flag πŸ’…

🧚 SEE ALSO 🧚

that's your only sibling, go say hi 🫢


πŸ’œ HISTORY πŸ’œ

January 2015, Originally compiled by Eric Paris (eparis at redhat dot com) based on the kubernetes source material, but hopefully they have been automatically generated since!

ngl the "hopefully they have been automatically generated since!" line is so real of them 😭 iconic.


and that's the whole page, bestie! this one shipped out of the Manuals section (that's the User manual set), part of the KUBERNETES(1)(kubernetes) family, dated all the way back to January 2015. periodt. go start that kubelet πŸ’…πŸ”₯

πŸ“¦ where this page comes from