kubernetes logo

The `kubeadm v1beta3` config format defines the cluster bootstrap configuration for Kubernetes. It replaces v1beta2 by removing legacy fields and refining the API. Engineers use it to drive automated control plane initialization, node joining, certificate distribution, and networking setup in a repeatable manner.


TL;DR

  • v1beta3 drops deprecated fields: useHyperKubeImage and dns.type.
  • It splits config into three kinds: InitConfiguration, ClusterConfiguration, JoinConfiguration.
  • ClusterConfiguration centralizes control plane settings: version, endpoints, certs, networking.
  • InitConfiguration holds node registration and bootstrap token data.
  • JoinConfiguration configures worker or control-plane node joins with CA keys.
  • Use the YAML schema in automation and CI/CD to ensure consistent cluster creation.

Understanding kubeadm v1beta3 config

The v1beta3 version of kubeadm config refines earlier releases by removing unused fields and adding tags for secret data. It follows the Kubernetes API conventions and delivers a schema-driven approach to cluster bootstrap. You reference it in CLI and automation via --config flag.


Changes since v1beta2 in kubeadm v1beta3 config

Key edits in this release:

  • Removed ClusterConfiguration.useHyperKubeImage—hyperkube image no longer supported.
  • Dropped ClusterConfiguration.dns.type—CoreDNS is now mandatory.
  • Added datapolicy tags for fields holding secrets so operators can track sensitive data.

ClusterConfiguration in kubeadm v1beta3 config

ClusterConfiguration lives in kubeadm.k8s.io/v1beta3. It defines cluster-wide settings:

  • kubernetesVersion: target Kubernetes version.
  • controlPlaneEndpoint: DNS or IP of HA endpoint.
  • certificateKey: used to encrypt control-plane certificate secrets.
  • certificatesDir: path on disk to store all certs.
  • clusterName: logical name for the cluster.
  • networking: nested object for podSubnet, serviceSubnet, dnsDomain.
  • apiServer, controllerManager, scheduler: embedded configs for extra args and endpoint overrides.
  • imageRepository: override default control-plane image registry.
  • etcd: external or local etcd settings, including local and external sections.

InitConfiguration for kubeadm v1beta3 config

InitConfiguration holds node-specific bootstrap data:

  • bootstrapTokens: list of tokens for joining nodes.
  • nodeRegistration: criSocket, taints, name, kubeletExtraArgs.
  • localAPIEndpoint: bind port and interface for local API server process during init.

JoinConfiguration and kubeadm v1beta3 config

JoinConfiguration applies to worker and control-plane node joins. It includes:

  • discovery: methods to locate control plane (bootstrapToken, tlsBootstrapToken, file methods).
  • nodeRegistration: same as init for CRI, taints, etc.
  • controlPlane: flags to join as control-plane (certificateKey and APIEndpoint).

Sample YAML: kubeadm v1beta3 config


Best Practices with kubeadm v1beta3 config

Store config files in Git with strict access controls. Tag secret fields separately. Use CI pipelines to lint and validate schema. Pin the Kubernetes version. Use certificateKey vault integration. Employ external etcd for HA clusters.


References

  1. “kubeadm Configuration (v1beta3)”, Kubernetes.io

Suggested Reading

PostHashID: b2b9c6d7d349f045698ce780fc3bb76df9126d1a87195f2c14043249981c28a5

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.