immutable: true
),kubelet 不再 watch 这些对象的变化并重新挂载到容器内,可以降低 apiserver 的负载。该特性在1.21进入 GA。SeccompDefault
alpha 特性,结合 --seccomp-default
参数及配置,kubelet 将使用 RuntimeDefault
seccomp 配置,而不是 Unconfined
,从而提高工作负载的安全性。NodeResourcesFit
,用于代替 NodeResourcesLeastAllocated
, NodeResourcesMostAllocated
,RequestedToCapacityRatio
这三个插件。APIServerTracing
后,apiserver 支持分布式追踪;支持通过--service-account-issuer
参数设置多个 issuer,在变更 issuer 时,可以提供不间断服务。net.ipv4.conf.all.route_localnet=1
。升级的节点会保留 net.ipv4.conf.all.route_localnet=1
,但是新节点继承系统默认值(一般为0)。--cleanup-ipvs
参数;可以使用 --cleanup
参数。--horizontal-pod-autoscaler-use-rest-clients
参数被移除。--port
及--address
参数不再起作用,将在 1.24 版本中被移除。--hard-pod-affinity-symmetric-weight
及--scheduler-name
参数从1.22开始被移除,可使用 config 文件进行配置。DynamicKubeletConfig
特性被废弃,并被默认关闭,启动 kubelet 如配置了--dynamic-config-dir
参数,将收到告警。kube-controller-manager
指定 --feature-gates="CronJobControllerV2=true"
来开启。在以后的版本中,会默认使用新版的控制器。InfoS
, ErrorS
。
所有组件增加 --logging-format
参数,默认值是 text
,保持之前的格式。设置为 json
支持结构化日志,此时这些参数不再起作用:--add_dir_header, --alsologtostderr, --log_backtrace_at, --log_dir, --log_file, --log_file_max_size, --logtostderr, --skip_headers, --skip_log_headers, --stderrthreshold, --vmodule, --log-flush-frequencyExecProbeTimeout
的开关,允许保留之前的行为(在后续发行版中,此功能将被锁定及删除)。要保留之前的行为,需要把 ExecProbeTimeout
设置为 false
。
更多信息,可以参考 Configure Liveness, Readiness and Startup Probes - Configure Probeskubectl alpha debug
命令进入 beta 阶段,并被替换为 kubectl debug
。该功能支持直接从 kubectl 进行常见的调试工作,包括:EphemeralContainers
是 Alpha 功能,默认未启用)kubectl alpha debug
已弃用,并将在随后的版本中删除,需要替换为 kubectl debug
。更多信息,可以参考 Debug Running Podskube-apiserver
按优先级对传入的请求进行分类。SupportNodePidsLimit
(节点到 Pod 的 PID 隔离)和 SupportPodPidsLimit
( 限制每个 Pod 的 PID 的能力)都已经到了 GA 阶段。GracefulNodeShutdown
功能,使得 kubelet 能 监听到节点的系统关机事件,从而在系统关闭期间优雅终止 Pod。fsGroupPolicy
字段来控制是否支持在 mount 时修改属主和权限。(ReadWriteOnceWithFSType,File,None)PodFSGroupChangePolicy
= OnRootMismatch
node.k8s.io/v1beta1
被废弃,请使用 node.k8s.io/v1
networking.k8s.io/v1beta1
(计划在 1.22 版本移除),由 networking.k8s.io/v1
代替。seccomp.security.alpha.kubernetes.io/pod
及 container.seccomp.security.alpha.kubernetes.io/...
被废弃(计划在 1.22 版本移除),可以直接在 Pod 及 container spec 中指定如下字段:securityContext:seccompProfile:type: RuntimeDefault|Localhost|Unconfined ## choose one of the threelocalhostProfile: my-profiles/profile-allow.json ## only necessary if type == Localhost
certificates.k8s.io/v1beta1
,为 CertificateSigningRequest 新增版本 certificates.k8s.io/v1
。在使用 certificates.k8s.io/v1
时,spec.signerName
,并且不可再使用 kubernetes.io/legacy-unknown
。spec.usages
,不能包含重复值,并且取值只能是已知 usage。status.conditions[*].status
。status.certificate
必须是 PEM 编码,并且只包含 CERTIFICATE
块。废弃版本 | 新版本 |
apiextensions.k8s.io/v1beta1 | apiextensions.k8s.io/v1 |
apiregistration.k8s.io/v1beta1 | apiregistration.k8s.io/v1 |
authentication.k8s.io/v1beta1 | authentication.k8s.io/v1 |
authorization.k8s.io/v1beta1 | authorization.k8s.io/v1 |
autoscaling/v2beta1 | autoscaling/v2beta2 |
coordination.k8s.io/v1beta1 | oordination.k8s.io/v1 |
storage.k8s.io/v1beta1 | storage.k8s.io/v1 |
componentstatus
API 被废弃。这个 API 用来提供 etcd, kube-scheduler, 和 kube-controller-manager 的运行状态,但只在这些条件下才能工作:这些组件跟 apiserver 运行在一个节点,并且 kube-scheduler 和 kube-controller-manager 暴露了非安全的健康检查端口。
废弃这个 API 后,etcd 的健康检查被包含在 kube-apiserver 的健康检查中,kube-scheduler/kube-controller-manager 可以检查各自的健康检查接口。--address
及 --insecure-bind-address
参数可以设置但无效果; --port
及 --insecure-port
参数只能设置为 0。这些参数将在 1.24 版本移除。TokenRequest
及 TokenRequestProjection
进入 GA,kube-apiserver 需要设置以下参数:--service-account-issuer
, 标识该集群 API Server 的固定的 URL。--service-account-key-file
, 一个或者多个验证 token 的公钥。--service-account-signing-key-file
, 签发 service account 的私钥,可以与 kube-controller-manager
的 --service-account-private-key-file
参数使用相同的文件。--seccomp-profile-root
--cloud-provider
, --cloud-config
,使用 config 来代替--really-crash-for-testing
, --chaos-chance
metrics/resource/v1alpha1
endpoint 被移除,请使用 metrics/resource
。failure-domain.beta.kubernetes.io/zone
及 failure-domain.beta.kubernetes.io/region
标签被废弃,请使用 topology.kubernetes.io/zone
及 topology.kubernetes.io/region
来代替。所有以 failure-domain.beta...
前缀的标签都需要使用对应的 topology...
开头的标签来代替。废弃标签 | 新标签 |
beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type |
failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region |
failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone |
IngressClass
资源描述在 Kubernetes 集群内的一种 Ingress 控制器类型。Ingress
资源新增 ingressClassName
字段,用于设置使用 IngressClass
的控制器名称,替代废弃的 kubernetes.io/ingress.class
标注。kubectl debug
,Alpha 特性。Windows CSI support
,Alpha 特性。ImmutableEphemeralVolumes
,Alpha 特性(支持不可变 ConfigMap 和 Secret,不刷新对应的 volume)。ScheduleDaemonSetPods
TaintNodesByCondition
WatchBookmark
NodeLease
CSINodeInfo
VolumeSubpathEnvExpansion
AttachVolumeLimit
ResourceQuotaScopeSelectors
VolumePVCDataSource
TaintBasedEvictions
BlockVolume
、CSIBlockVolume
Windows RunAsUserName
EndpointSlices
:默认关闭CSIMigrationAWS
:默认关闭StartupProbe
EvenPodsSpread
GCERegionalPersistentDisk
EnableAggregatedDiscoveryTimeout
PersistentLocalVolumes
CustomResourceValidation
CustomResourceSubresources
CustomResourceWebhookConversion
CustomResourcePublishOpenAPI
CustomResourceDefaulting
system:csi-external-provisioner
system:csi-external-attacher
10.0.0.0/24
),必须通过 kube-apiserver 的 --service-cluster-ip-range
参数进行设置。rbac.authorization.k8s.io/v1alpha1
和 rbac.authorization.k8s.io/v1beta1
,计划在1.20版本中移除。请迁移到 rbac.authorization.k8s.io/v1
。CSINodeInfo
特性,该特性已经达到 GA 并默认开启。--encryption-provider-config
:如果配置文件中指定 cacheSize: 0
,则1.18之前的版本会自动设置为缓存1000个 key,1.18版本会报告配置验证错误。可通过设置 cacheSize 为负值来关闭缓存。--feature-gates
:以下特性默认开启,并不再支持通过命令行设置。PodPriority
TaintNodesByCondition
ResourceQuotaScopeSelectors
ScheduleDaemonSetPods
apps/v1beta1
及 apps/v1beta2
,请使用 apps/v1
。extensions/v1beta1
下的:daemonsets
、deployments
及 replicasets
,请使用 apps/v1
。networkpolicies
请使用 networking.k8s.io/v1
。podsecuritypolicies
请使用 policy/v1beta1
。--enable-cadvisor-endpoints
:这个参数默认关闭。如果需要访问 cAdvisor v1 Json API,需要明确开启。--redirect-container-streaming
,并将在后续版本中移除。1.18只支持默认行为(通过 kubelet 代理 streaming 请求)。如果设置了 --redirect-container-streaming=true
则必须移除。/metrics/resource/v1alpha1
,请使用 /metrics/resource
。--healthz-port
,请使用 --healthz-bind-address
。--metrics-port
,请使用 --metrics-bind-address
。EndpointSliceProxying
(默认关闭)来控制是否在 kube-proxy 中启用 EndpointSlices。特性开关 EndpointSlice
不再影响 kube-proxy 的行为。--ipvs-tcp-timeout
--ipvs-tcpfin-timeout
--ipvs-udp-timeout
scheduling_duration_seconds
指标:scheduling_algorithm_predicate_evaluation_seconds
,替代为 framework_extension_point_duration_seconds[extension_point="Filter"]
scheduling_algorithm_priority_evaluation_seconds
,替代为 framework_extension_point_duration_seconds[extension_point="Score"]
AlwaysCheckAllPredicates
。kube-apiserver
、kube-controller-manager
和 kube-scheduler
,默认开启 profiling。如需关闭 profiling,需指定参数 --enable-profiling=false
。--include-uninitialized
参数。kubectl
和 k8s.io/client-go
不再默认使用 http://localhost:8080 作为 apiserver 的地址。kubectl run
支持创建 Pod,不再支持使用之前已废弃的 generator 创建其他类型的资源。kubectl rolling-update
命令,请使用 rollout
命令。–dry-run
支持3个参数值 client
、server
和 none
。–dry-run=server
支持命令:apply
、patch
、create
、run
、annotate
、label
、set
、autoscale
、 drain
、rollout undo
和 expose
。kubectl alpha debug
命令,可以 在 Pod 中附临时的容器进行调试和排查问题(需要启用1.16引入的 EphemeralContainers
特性)。kubeadm init
和 kubeadm join
命令部署高可用的控制面。证书管理更加稳定和健壮,kubeadm 可以在 update 集群时,在证书到期前无缝更新所有的证书。详情请参阅 pr357 和 pr970。CRD
Admission Webhook
GCERegionalPersistentDisk
CustomResourcePublishOpenAPI
CustomResourceSubresources
CustomResourceValidation
CustomResourceWebhookConversion
beta.kubernetes.io/metadata-proxy-ready
、 beta.kubernetes.io/metadata-proxy-ready
及 beta.kubernetes.io/kube-proxy-ds-ready
。ip-mask-agent
使用 node.kubernetes.io/masq-agent-ds-ready
作为 node 选择器,不再使用 beta.kubernetes.io/masq-agent-ds-ready
。kube-proxy
使用 node.kubernetes.io/kube-proxy-ds-ready
作为 node 选择器,不再使用 beta.kubernetes.io/kube-proxy-ds-ready
。metadata-proxy
使用 cloud.google.com/metadata-proxy-ready
作为 node 选择器,不再使用 beta.kubernetes.io/metadata-proxy-ready
。v1alpha3
配置被全部移除。Node.Status.Volumes.Attached.DevicePath
字段,需要更新此字段的外部控制器。StorageObjectInUseProtection
admission 插件。如果之前没有启用该插件,集群的行为可能会发生变化。csi.storage.k8s.io/ephemeral
,允许 driver 在实现 NodePublishVolume 时,逐个判断当前 volume 是短暂存储还是持久的,详情请参见 pr79983。--enable-logs-handler
,计划在 v1.19移除。--basic-auth-file
及相应的认证模式,未来计划移除。--service-cluster-ip-range
参数来制定 service 的 IP 段。v1beta1
Events API。消费 scheudler 事件的工具需要使用 v1beta1 Event API。--conntrack-max
(可使用--conntrack-min
和--conntrack-max-per-core
来代替)。--cleanup-iptables
。--resource-container
。--allow-privileged
、--host-ipc-sources
、--host-pid-sources
和 --host-network-sources
(可以使用 PodSecurityPolicy
的准入控制器来代替)。--containerized
。--node-labels
参数设置 kubernetes.io-
或 k8s.io-
为前缀的不被允许的标签 。kubectl scale job
。kubectl exec
命令的 --pod/-p
参数。kubectl convert
命令。--include-uninitialized
。kubectl cp
不再支持复制容器中的符号链接,可以使用如下命令代替: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 config
和 kubeadm upgrade node experimental-control-plane
,使用 kubeadm upgrade node
代替。--experimental-control-plane
,使用 --control-plane
代替。--experimental-upload-certs
,使用 --upload-certs
代替。kubeadm config upload
,使用 kubeadm init phase upload-confi
代替。proxy
插件,使用 forward
插件来代替。kubernetes
插件移除 resyncperiod
选项。upstream
选项,如果指定,将被忽略。etcd2
,默认 --storage-backend=etcd3
。--etcd-quorum-read
。--storage-versions
。--repair-malformed-updates
。--insecure-experimental-approve-all-kubelet-csrs-for-group
。--google-json-key
。--experimental-fail-swap-on
。componentconfig/v1alpha1
。run-container
。node.alpha.kubernetes.io/notReady
和 node.alpha.kubernetes.io/unreachable
,改为 node.kubernetes.io/not-ready
和 node.kubernetes.io/unreachable
。/status
子资源更新除了 .status
字段(之前只允许对 .spec 和 .metadata 进行更新)。在启用 /status
子资源时,required
和 description
可用于 CRD OpenAPI 验证 schema。另外,用户可以创建多个版本的 CustomResourceDefinitions,不需进行自动转换。可以通过 CustomResourceDefinitions 的 spec.additionalPrinterColumns
字段让 kubectl get
的输出包含额外的列。dry run
功能,允许用户可以看到某些命令的执行结果,而不需要真正提交相关的更改。authorization.k8s.io/decision
(authorization 决定 allow 或 forbid),及 authorization.k8s.io/reason
(做出这个决定的原因)。podsecuritypolicy.admission.k8s.io/admit-policy
和 podsecuritypolicy.admission.k8s.io/validate-policy
,包含允许 Pod 准入相关的策略名称(PodSecurityPolicy 同时可以限制 hostPath 类型的挂载点为只读模式)。--storage-version
参数被移除,由 --storage-versions
代替。同时 --storage-versions
也被废弃。--endpoint-reconciler-type
默认值改为 lease
。--enable-admission-plugins
时,默认包含。使用 --admission-control
参数时,需要显示指定。--rotate-certificates
参数,由配置文件的 .RotateCertificates 字段代替。run-pod/v1
外,其他 kubectl run
的 generator 已废弃。kubectl logs
移除 --interactive
参数。--use-openapi-print-columns
已废弃,由 --server-print
代替。
本页内容是否解决了您的问题?