1
1
---
2
2
layout : blog
3
3
title : ' Kubernetes v1.31: kubeadm v1beta4'
4
- date : 2024-09-20
4
+ date : 2024-08-23
5
5
slug : kubernetes-1-31-kubeadm-v1beta4
6
6
author : >
7
- Paco Xu (DaoCloud),
7
+ Paco Xu (DaoCloud)
8
8
---
9
9
10
10
The [ ` kubeadm ` ] ( /docs/reference/setup-tools/kubeadm/ ) configuration
@@ -30,57 +30,58 @@ format by fixing some minor issues and adding a few new fields.
30
30
To put it simply,
31
31
32
32
- Two new API types: ResetConfiguration and UpgradeConfiguration
33
- - For InitConfiguration and JoinConfiguration, ` dryRun ` mode and ` NodeRegistration.ImagePullSerial ` are supported
34
- - For ClusterConfiguration, we add field including ` CertificateValidityPeriod ` ,
35
- ` CACertificateValidityPeriod ` , ` EncryptionAlgorithm ` , ` DNS.Disabled ` and ` Proxy.Disabled ` .
36
- - Support ` ExtraEnvs ` for all control plan components
37
- - ` ExtraArgs ` changed from a map to structured extra arguments for duplicates
38
- - Add a ` Timeouts ` structure for init, join, upgrade and reset.
33
+ - For InitConfiguration and JoinConfiguration, ` dryRun ` mode and ` nodeRegistration.imagePullSerial ` are supported
34
+ - For ClusterConfiguration, we add field including ` certificateValidityPeriod ` ,
35
+ ` caCertificateValidityPeriod ` , ` encryptionAlgorithm ` , ` dns.disabled ` and ` proxy.disabled ` .
36
+ - Support ` extraEnvs ` for all control plan components
37
+ - ` extraArgs ` changed from a map to structured extra arguments for duplicates
38
+ - Add a ` timeouts ` structure for init, join, upgrade and reset.
39
39
40
40
For details, you can see the official document below:
41
41
42
42
- Support custom environment variables in control plane components under ` ClusterConfiguration ` .
43
- Use ` APIServer.ExtraEnvs ` , ` ControllerManager.ExtraEnvs ` , ` Scheduler.ExtraEnvs ` , ` Etcd.Local.ExtraEnvs ` .
43
+ Use ` apiServer.extraEnvs ` , ` controllerManager.extraEnvs ` , ` scheduler.extraEnvs ` , ` etcd.local.extraEnvs ` .
44
44
- The ResetConfiguration API type is now supported in v1beta4. Users are able to reset a node by passing
45
45
a ` --config ` file to "kubeadm reset".
46
- - ` dryRun ` mode in is now configurable in InitConfiguration and JoinConfiguration.
46
+ - ` dryRun ` mode is now configurable in InitConfiguration and JoinConfiguration.
47
47
- Replace the existing string/string extra argument maps with structured extra arguments that support duplicates.
48
- The change applies to ` ClusterConfiguration ` - ` APIServer.ExtraArgs ` , ` ControllerManager.ExtraArgs ` ,
49
- ` Scheduler.ExtraArgs ` , ` Etcd.Local.ExtraArgs ` . Also to ` NodeRegistrationOptions.KubeletExtraArgs ` .
50
- - Add ` ClusterConfiguration.EncryptionAlgorithm ` that can be used to set the asymmetric encryption algorithm
48
+ The change applies to ` ClusterConfiguration ` - ` apiServer.extraArgs ` , ` controllerManager.extraArgs ` ,
49
+ ` scheduler.extraArgs ` , ` etcd.local.extraArgs ` . Also to ` nodeRegistrationOptions.kubeletExtraArgs ` .
50
+ - Add ` ClusterConfiguration.encryptionAlgorithm ` that can be used to set the asymmetric encryption algorithm
51
51
used for this cluster's keys and certificates. Can be one of "RSA-2048" (default), "RSA-3072", "RSA-4096" or "ECDSA-P256".
52
- - Add ` ClusterConfiguration.DNS.Disabled ` and ` ClusterConfiguration.Proxy.Disabled ` that can be used to disable
52
+ - Add ` ClusterConfiguration.dns.disabled ` and ` ClusterConfiguration.proxy.disabled ` that can be used to disable
53
53
the CoreDNS and kube-proxy addons during cluster initialization. Skipping the related addons phases,
54
- during cluster creation will set the same fields to ` false ` .
55
- - Add the ` NodeRegistration.ImagePullSerial ` field in ` InitConfiguration ` and ` JoinConfiguration ` , which
54
+ during cluster creation will set the same fields to ` true ` .
55
+ - Add the ` nodeRegistration.imagePullSerial ` field in ` InitConfiguration ` and ` JoinConfiguration ` , which
56
56
can be used to control if kubeadm pulls images serially or in parallel.
57
- - The UpgradeConfiguration kubeadm API is now supported in v1beta4 when passing --config to "kubeadm upgrade" subcommands.
58
- Usage of component configuration for kubelet and kube-proxy, InitConfiguration and ClusterConfiguration is deprecated
59
- and will be ignored when passing ` --config ` to upgrade subcommands .
60
- - Add a ` Timeouts ` structure to ` InitConfiguration ` , ` JoinConfiguration ` , ` ResetConfiguration ` and ` UpgradeConfiguration `
61
- that can be used to configure various timeouts. The ` ClusterConfiguration.TimeoutForControlPlane ` field is replaced
62
- by ` Timeouts.ControlPlaneComponentHealthCheck ` . The ` JoinConfiguration.Discovery.Timeout ` is replaced by
63
- ` Timeouts.Discovery ` .
64
- - Add a ` CertificateValidityPeriod ` and ` CACertificateValidityPeriod ` fields to ` ClusterConfiguration ` . These fields
57
+ - The UpgradeConfiguration kubeadm API is now supported in v1beta4 when passing ` --config ` to "kubeadm upgrade" subcommands.
58
+ For upgrade subcommands, the usage of component configuration for kubelet and kube-proxy, as well as InitConfiguration and
59
+ ClusterConfiguration, is deprecated and will be ignored when passing ` --config ` .
60
+ - Add a ` timeouts ` structure to ` InitConfiguration ` , ` JoinConfiguration ` , ` ResetConfiguration ` and ` UpgradeConfiguration `
61
+ that can be used to configure various timeouts. The ` ClusterConfiguration.timeoutForControlPlane ` field is replaced
62
+ by ` timeouts.controlPlaneComponentHealthCheck ` . The ` JoinConfiguration.discovery.timeout ` is replaced by
63
+ ` timeouts.discovery ` .
64
+ - Add a ` certificateValidityPeriod ` and ` caCertificateValidityPeriod ` fields to ` ClusterConfiguration ` . These fields
65
65
can be used to control the validity period of certificates generated by kubeadm during sub-commands such as ` init ` ,
66
66
` join ` , ` upgrade ` and ` certs ` . Default values continue to be 1 year for non-CA certificates and 10 years for CA
67
67
certificates. Only non-CA certificates continue to be renewable by ` kubeadm certs renew ` .
68
68
69
- The aim of those changes can be summarized as making tools that use kubeadm easier to configure
70
- and make kubeadm easier to extend .
69
+ These changes simplify the configuration of tools that use kubeadm
70
+ and improve the extensibility of kubeadm itself .
71
71
72
72
### How to migrate v1beta3 configuration to v1beta4?
73
73
74
- If your configuration is not using the latest version it is ** recommended** that you migrate using
74
+ If your configuration is not using the latest version, it is recommended that you migrate using
75
75
the [ kubeadm config migrate] ( /docs/reference/setup-tools/kubeadm/kubeadm-config/#cmd-config-migrate ) command.
76
76
77
- Read an older version of the kubeadm configuration API types from a file, and output the similar config object for the newer version
77
+ This command reads an older version of the kubeadm configuration API types from a file,
78
+ and writes a newer version of the configuration objects into a new file.
78
79
79
80
Using kubeadm v1.31, run ` kubeadm config migrate --old-config old-v1beta3.yaml --new-config new-v1beta4.yaml `
80
81
81
82
## How do I get involved?
82
83
83
- Huge thank you to all the contributors who helped with the design, implementation,
84
+ Huge thanks to all the contributors who helped with the design, implementation,
84
85
and review of this feature:
85
86
86
87
- Lubomir I. Ivanov ([ neolit123] ( https://github.com/neolit123 ) )
0 commit comments