全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Kubernetes 1.21版本说明

最近更新时间:2023-10-31 20:00:29

本文介绍Kubernetes 1.21版本相对于1.19版本的变更特性。

主要特性

Kubernetes 1.21版本

  • 默认容器注释

具有多个容器的Pod可以使用kubectl.kubernetes.io/default-container注释,以便为kubectl命令预先选择一个容器。更多信息可以在KEP-2227中阅读。

  • 不可变的Secrets和ConfigMaps已经升级为GA。

此功能允许用户指定特定Secret或ConfigMap的内容在其对象生命周期内是不可变的,对于这样的实例,Kubelet将不会监听/轮询更改,从而减少了apiserver的负载。

  • Kubelet中采用结构化日志记录

  • 支持存储容量跟踪功能

直到现在,Pod的调度仍然是在不考虑剩余存储容量可能不足以启动新Pod的情况下进行的。存储容量跟踪通过添加一个CSI驱动程序报告存储容量的API,并在Kubernetes调度器选择节点时使用该信息来解决这个问题。此功能为支持本地卷和其他容量受限的卷类型的动态配置提供了基础。

  • 通用临时卷功能允许任何支持动态配置的现有存储驱动程序作为临时卷使用,并将卷的生命周期绑定到Pod。

它可以用于提供与根磁盘不同的临时存储,例如持久内存或节点上的单独本地磁盘。支持所有用于卷配置的StorageClass参数。支持PersistentVolumeClaims支持的所有功能,例如存储容量跟踪、快照和恢复以及卷大小调整。

  • CSI服务账户令牌功能在1.21中升级为Beta版。

此功能改善了安全性,并允许CSI驱动程序接收Pod绑定的服务账户令牌,还提供了重新发布卷的开关,以便可以刷新短生命周期卷。

  • CSI健康监控功能在Kubernetes 1.21中作为第二个Alpha版本发布。

此功能使CSI驱动程序能够将底层存储系统的异常卷条件与Kubernetes共享,以便将其作为PVC或Pod的事件报告。此功能为Kubernetes通过编程方式检测和解决单个卷健康问题铺平了道路。

Kubernetes 1.20版本

  • client-go的外部凭据提供程序

现在可以通过KUBERNETES_EXEC_INFO环境变量将client-go的凭据插件传递给当前集群信息。请在client-go凭据插件文档中了解更多信息。

  • CronJob控制器v2通过功能门可用

在这个版本中,CronJob控制器的另一种实现方式作为一个Alpha功能可用,通过使用informer而不是轮询来实现实验性能改进。

  • PID限制功能已经正式推出

包括SupportNodePidsLimit(节点到Pod的PID隔离)和SupportPodPidsLimit(每个Pod限制PID数量),默认情况下启用了这些功能,并且已正式可用。

  • API优先级和公平性(API Priority and Fairness,APF)已经升级为Beta版本。

自v 1.20起,默认情况下启用了APF功能,使得kube-apiserver能够根据优先级级别对传入的请求进行分类。

  • IPv4/IPv6运行

为了支持双栈服务(Dual-Stack Services),IPv4/IPv6双栈在1.20版本中进行了重新实现,基于用户和社区的反馈。如果您的集群启用了双栈功能,您可以创建可以使用IPv4、IPv6或两者的服务,并且您可以为现有服务更改此设置。详细信息请参阅更新的IPv4/IPv6双栈文档

  • go1.15.5版本启用

从这个版本开始,go1.15.5已经整合到Kubernetes项目中,包括其他与基础设施相关的更新。

  • CSI Volume Snapshot功能正式升级至GA。

该功能为Kubernetes提供了一种标准的方式来触发卷快照操作,无论底层存储提供者是否支持,Kubernetes用户都可以在任何Kubernetes环境中以可移植的方式使用快照操作。此外,这些Kubernetes快照基元作为基本构建块,可以解锁开发高级企业级存储管理功能的能力,包括应用程序或集群级别的备份解决方案。需要注意的是,快照支持需要Kubernetes发行商捆绑Snapshot控制器、Snapshot CRDs和验证Webhook。同时,还必须在集群上部署支持快照功能的CSI驱动程序。

  • 非递归卷所有权(FSGroup)功能升级为Beta版本

默认情况下,如果指定了fsgroup设置,它会递归地更新卷中每个文件的权限。如果卷中的文件很多,这可能会导致挂载和Pod启动非常缓慢。这个设置允许Pod指定一个PodFSGroupChangePolicy,表示只有在根目录的权限和所有权与卷上的预期权限不匹配时,才会更改卷的所有权和权限。

  • FSGroup的CSIDriver策略升级为Beta版本

这允许CSIDrivers明确指示是否希望Kubernetes通过fsgroup来管理其卷的权限和所有权。

  • CSI驱动程序的安全改进(Alpha版本)

在1.20版本中,引入了一个新的Alpha功能CSIServiceAccountToken。这个功能允许CSI驱动程序模拟它们为其挂载卷的Pod。这在挂载过程中提高了安全性,其中卷在Pod的服务账户上进行了ACL控制,而不会给予CSI驱动程序的服务账户不必要的权限。这个功能对于处理密钥的CSI驱动程序特别重要,比如secrets-store-csi-driver。由于这些令牌可以轮换和短暂存在,这个功能还提供了一个开关,让CSI驱动程序可以定期使用新令牌接收NodePublishVolume RPC调用。

  • 引入节点体面关闭的Alpha版本

这使得kubelet能够意识到节点系统关机,在系统关机期间体面地终止Pod,这个功能可以通过功能门控来启用。

  • 运行时日志清理

现在可以配置日志以使用运行时保护来防止泄露敏感数据,详见文档

  • Pod资源指标

通过/metrics/resources,现在可以按需计算指标;启用后,该端点将报告所有正在运行的Pod的请求资源和期望的限制。

  • 引入RootCAConfigMap

RootCAConfigMap升级为Beta版本,与BoundServiceAccountTokenVolume分离。kube-root-ca.crt ConfigMap现在默认在每个命名空间中可用,它包含用于验证kube-apiserver连接的证书颁发机构捆绑包。

  • kubectl debug升级为Beta版本

  • Pod Hostname作为FQDN升级为Beta版本

之前在1.19版本中引入了SetHostnameAsFQDN功能,现在默认情况下已启用。有关此行为的更多详细信息,请参阅DNS for Services and Pods文档

  • TokenRequest / TokenRequestProjection升级为正式版本

绑定到Pod的服务账户令牌现在是一个稳定的功能,并且在1.21版本中将删除功能开关。

  • RuntimeClass功能升级为正式版本。

node.k8s.io API组从v1beta1升级到v1。v1beta1现已弃用,并将在未来的版本中删除。

  • Kubernetes不再提供Cloud Controller Manager二进制文件的实例,而是由各个云服务提供商自行提供该二进制文件的实例。

有关云服务提供商创建此类二进制文件实例的详细信息可以在[此处](kubernetes/staging/src/k8s.io/cloud-provider/sample at master · kubernetes/kubernetes · GitHub)找到。如果有关于构建Cloud Controller Manager的问题,请联系SIG Cloud Provider。关于托管Kubernetes解决方案上的Cloud Controller Manager的问题应该咨询相关的云服务提供商。关于非托管解决方案上的Cloud Controller Manager的问题可以向SIG Cloud Provider提出。

弃用与移除

Kubernetes 1.21版本

  • 准入控制器资源PodSecurityPolicy正在被弃用。已部署的PodSecurityPolicy将在v1.25之前继续工作,之后将从代码库中移除。
  • 移除alpha CSIMigrationXXComplete标志,并添加alpha InTreePluginXXUnregister标志。
  • 弃用CSIMigrationvSphereComplete标志,并在v1.22中将其移除。
  • 移除存储指标storage_operation_errors_total,用storage_operation_status_count替代。
  • 存储指标storage_operation_errors_total和storage_operation_status_count被标记为弃用。
  • 从v1.21版本开始,in-tree vSphere卷插件的diskformat存储类参数已被弃用。请考虑更新storageclass并移除diskformat参数。
  • 弃用Service中的topologyKeys字段。这个功能将被即将推出的Topology Aware Subsetting和Service Internal Traffic Policy所取代。
  • 已移除"kubeadm alpha certs"命令,请改用"kubeadm certs"命令。
  • 已移除弃用的"kubectl alpha debug"命令。请使用"kubectl debug"代替。
  • 移除kubectl run中的弃用选项–generator、–replicas、–service-generator、–service-overrides、–schedule。在kubectl run中弃用–serviceaccount、–hostport、–requests、–limits。
  • 已移除弃用"scheduling_algorithm_preemption_evaluation_seconds"和"binding_duration_seconds",建议使用"scheduler_framework_extension_point_duration_seconds"代替。

Kubernetes 1.20版本

  • Dockershim(Docker作为底层运行时)已被弃用。Docker生成的镜像将继续在您的集群中与所有运行时一起工作,详见Kubernetes社区对于该问题的解答
  • 自托管支持已被弃用。实验性命令"kubeadm alpha self-hosting"现已弃用,并将在未来的版本中删除。
  • 将"kubeadm alpha certs"命令升级为父命令"kubeadm certs",命令"kubeadm alpha certs"已被弃用,并将在未来的版本中删除。
  • 移除已弃用的命令"kubeadm alpha kubelet config enable-dynamic"。
  • 移除命令"kubeadm upgrade node"中已弃用的"–kubelet-config"标志。
  • 调度器的alpha指标"binding_duration_seconds"和"scheduling_algorithm_preemption_evaluation_seconds"已被弃用。这两个指标现在作为"framework_extension_point_duration_seconds"的一部分进行统计,前者作为PostFilter,后者作为Bind插件。计划在1.21版本中移除这两个指标。
  • v1alpha1 PodPreset API和准入插件已被移除,没有内置的替代方案。

参考链接

详情请参考:

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈