The following table lists the deprecated tags and new tags:
|Deprecated Tag||New Tag|
VolumeSnapshotDataSource is enabled by default. For more information, see Kubernetes 1.17 Feature: Kubernetes Volume Snapshot Moves to Beta.
CSI Migration is enabled by default. For more information, see Kubernetes 1.17 Feature: Kubernetes In-Tree to CSI Volume Migration Moves to Beta.
Topology Manager enters the Beta stage in Kubernetes 1.18 and enables the CPU to implement NUMA alignment with other devices (such as SR-IOV-VF) so that workloads can support low-latency scenarios.
Before Topology Manager was introduced, the CPU and device manager could only make resource allocation decisions independently. As a result, a multi-socket CPU system might fail to allocate resources appropriately, affecting the performance of latency-sensitive applications.
Server-side Apply entered the Beta stage in Kubernetes 1.16. In Kubernetes 1.18, its second beta version (ServerSideApply) was introduced. This version can record and manage changes to all new Kubernetes object fields, ensuring that users are informed of resource statuses.
IngressClass describes an Ingress controller type in a Kubernetes cluster. The
ingressClassName field is added for
Ingress resources to set the name of the controller that uses
IngressClass. This replaced the deprecated
kubectl debugsupports the Alpha feature.
Windows CSI supportsupports the Alpha feature.
ImmutableEphemeralVolumessupports the Alpha feature (which supports non-changeable ConfigMap and Secret and does not refresh the corresponding volume).
EndpointSlices: disabled by default
CSIMigrationAWS: disabled by default
The following features, which were enabled by default and could not be configured, were removed:
The following built-in cluster roles were removed:
10.0.0.0/24) was deprecated. You must set the service IP CIDR block by using the
--service-cluster-ip-rangeparameter of kube-apiserver,
rbac.authorization.k8s.io/v1beta1API groups were deprecated, and we plan to remove them in Kubernetes 1.20. Therefore, migrate your resources to
CSINodeInfofeature, which has entered the GA stage and was enabled by default, was deprecated.
cacheSize: 0is specified in the configuration file, versions earlier than 1.18 are configured to cache 1,000 Keys automatically, while version 1.18 will report a configuration verification error. You can disable the cache by setting
cacheSizeto a negative value.
--feature-gates: the following features are enabled by default and no longer support CLI-based configuration.
--enable-cadvisor-endpoints: this parameter is disabled by default. For access to the cAdvisor v1 JSON API, you must enable this parameter.
--redirect-container-streamingparameter was deprecated and will be removed in later versions. Kubernetes 1.18 supports only the default action (kubelet proxy for streaming requests). If
--redirect-container-streaming=trueis set, it must be removed.
/metrics/resource/v1alpha1metrics endpoint was deprecated. Use
--healthz-portwas deprecated. Use
--metrics-portwas deprecated. Use
EndpointSliceProxyingfeature switch (disabled by default) was added to control whether to enable EndpointSlices in kube-proxy. The
EndpointSlicefeature switch does not affect the actions of kube-proxy any more.
AlwaysCheckAllPredicatesin the scheduler policy API.
For the alignment of
kube-scheduler, profiling is enabled by default. To disable profiling, specify
k8s.io/client-gono longer use http://localhost:8080 as the default apiserver address.
kubectl runsupports pod creation and no longer supports using the deprecated generator to create other types of resources.
kubectl rolling-updatecommand. Use the
–dry-runsupports three parameter values:
–dry-run=serversupports the following commands:
rollout undo, and
kubectl alpha debugcommand, which can be used for debugging and troubleshooting on ephemeral containers in pods (the
EphemeralContainersfeature introduced in version 1.16 needs to be enabled.)
The implementation of hyperkube was changed from Go code to a bash script.
Improved and enhanced the production-ready features like BM cluster tool and HA.
The kubeadm support for HA has entered the Beta stage. Users can run the
kubeadm init and
kubeadm join commands to deploy HA control planes. Certificate management is more stable and robust. During cluster update, kubeadm can seamlessly update all certificates prior to certificate expiry. For more information, see pr357 and pr970.
Storage SIG continues to migrate built-in storage plug-ins to CSI APIs and support features such as built-in storage plug-in resizing and inline storage volumes. It also introduced some Alpha features that are not available in the Kubernetes storage subsystem, such as storage volume cloning.
Storage volume cloning allows users to specify another PVC as "DataSource" when configuring a new storage volume. If the underlying storage system supports this feature and has implemented the "CLONE_VOLUME" feature in its CSI driver, the new storage volume will become a clone of the source storage volume. For more information, see pr625.
In version 1.15, when the
--log-file parameter was used, a log might be written to the same file multiple times. For more information, see pr78734.
node.kubernetes.io/masq-agent-ds-readyas the node selector and no longer uses
node.kubernetes.io/kube-proxy-ds-readyas the node selector and no longer uses
cloud.google.com/metadata-proxy-readyas the node selector and no longer uses
Node.Status.Volumes.Attached.DevicePathfield. The external controller of this field needs to be updated.
StorageObjectInUseProtectionadmission plug-in is enabled by default. Previously, if this plug-in is not enabled, cluster actions may change.
csi.storage.k8s.io/ephemeralparameter will be added in the volume context. During NodePublishVolume implementation, this parameter allows the driver to determine, one by one, whether the current volume is ephemeral storage or persistent storage. For more information, see pr79983.
--enable-logs-handlerparameter. We plan to remove it in v1.19.
--basic-auth-fileand the corresponding authentication mode. Both of them will be removed in the future.
--service-cluster-ip-rangeparameter is required for configuring the service IP CIDR block.
v1beta1Events API is used. Tools that consume scheduler events need to use the v1beta1 Events API.
--conntrack-maxparameter (which can be replaced with
--host-network-sourcesparameters (which can be replaced with the admission controller of
--node-labelsparameter can no longer be used to configure tags with the forbidden prefixes of
kubectl scale job.
--pod/-pparameter in the
kubectl cpno longer supports copying symbol links in a container. This feature can be replaced with the following commands:
local to pod：
tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar
pod to local：
kubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar
kubeadm upgrade node configand
kubeadm upgrade node experimental-control-planeand replaced them with
kubeadm upgrade node.
--experimental-control-planeparameter and replaced it with
--experimental-upload-certsparameter and replaced it with
kubeadm config uploadcommand and replaced it with
kubeadm init phase upload-confi.
proxyplug-in and replaced it with
resyncperiodoption from the
upstreamoption. If it is specified, it will be ignored.
etcd2is no longer supported. Default:
componentconfig/v1alpha1is no longer supported.
run-containercommand is no longer supported.
node.alpha.kubernetes.io/unreachableare no longer supported and have been replaced with
/statussub-resources, except for the
.statusfield (previously, only .spec and .metadata could be updated.) When the
/statussub-resources are enabled,
rescriptioncan be used for CRD OpenAPI verification schemas. In addition, users can create multiple versions of CustomResourceDefinitions, without the need for automatic switching. The
spec.additionalPrinterColumnsfield of CustomResourceDefinitions can be used to allow the output of
kubectl getto contain additional columns.
dry runfeature is supported. It allows users to view the execution results of some commands without having to submit relevant modifications.
authorization.k8s.io/decision(the allow or forbid authorization decision) and
authorization.k8s.io/reason(the reason for this decision).
podsecuritypolicy.admission.k8s.io/validate-policy, containing the names of the policies allowing pod admission (PodSecurityPolicy can also restrict mount targets of the hostPath type to the read-only mode.)
The CLI implemented a new plug-in mechanism and provided a development library that contains common CLI tools to facilitate plug-in development by plug-in developers.
--storage-versionparameter was removed and replaced by
--storage-versionswas also deprecated.
--endpoint-reconciler-typewas changed to
--enable-admission-pluginsis used, it is contained by default. When the
--admission-controlparameter is used, it must be explicitly specified.
--rotate-certificatesparameter and replaced it with the .RotateCertificates field in the configuration file.
kubectl rungenerators have been deprecated.
--use-openapi-print-columnswas deprecated and replaced with