微信导航网站如何建设,科技产品,crm管理系统是什么意思,公司网站建设吧个好作者 | 倪朋飞来源 | 漫谈云原生头图 | 下载于视觉中国Kubernetes v1.21 下个月就要发布了#xff08;v1.21.0 将于 4 月 8 日发布#xff09;#xff0c;本文梳理该版本带来的新特性#xff0c;以便你为下个月的升级做好准备。PodSecurityPolicy 弃用PodSecurityPolicyv1.21.0 将于 4 月 8 日发布本文梳理该版本带来的新特性以便你为下个月的升级做好准备。 PodSecurityPolicy 弃用PodSecurityPolicyPSP是 Kubernetes 1.8 开始就支持的 Beta 特性大量应用于容器的安全策略控制。但由于其 API 不够灵活、认证模型不够完善且配置更新繁琐等缺陷PodSecurityPolicy 将在 v1.21 正式弃用[1]并将在 v1.25 中从代码库中删除。已经使用 PodSecurityPolicy 的用户建议迁移到 Gatekeeper[2]。 不可变 ConfigMap/Secret 进入稳定版当集群包含大量 ConfigMap 和 Secret 时大量的 watch 事件会急剧增加 kube-apiserver 的负载并会导致错误配置过快传播到整个集群。在这种情况中给不需要经常修改的 ConfigMap 和 Secret 设置 immutable: true 就可以避免类似的问题。注意设置 immutable: true 之后ConfigMap 和 Secret 内容更新时需要删除并重新创建且使用它们的 Pod 也需要删除重建。 IPv4/IPv6 双栈支持 BetaIPv4/IPv6 双栈支持在 v1.20 的时候进行了重构并将于 v1.21 中进入 Beta 版本默认开启kubeadm 也已经支持创建 IPv4/IPv6 双栈集群。该特性开启后Kubernetes Service 和 Pod 会同时分配 IPv4 和 IPv6 两个地址。注意如果使用了 CNI 插件和云服务商扩展Cloud ProviderCNI 插件和云服务商扩展也需要支持 IPv4/IPv6 双栈。 CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta从 v1.21 开始Kubernetes 支持 CSI 存储插件的 Volume 健康检查Alpha 版CSI 插件需要实现外部健康监控控制器。当 Volume 或者 Node 出现异常时该控制器会向 Volume 所属的 PVC 以及使用该 PVC 的 Pod 发送一个异常事件。CSIStorageCapacity 用于跟踪 CSI 存储容量并确保 Pod 调度到足够存储容量的节点上。该特性从 v1.21 开始进入 Beta 阶段并默认开启。注意使用该特性需要 CSI 驱动程序实现对应的接口。 TTL 控制器 BetaTTL 控制器用来自动清理已经结束的 Pod如处于 Complete 或 Failed 状态的 Job。Pod 停止之后的 TTL 可以通过 .spec.ttlSecondsAfterFinished 来设置。注意该特性要求集群中各节点包括控制节点的时间一致比如在所有节点中运行 NTP 服务。 GenericEphemeralVolume Beta通用临时卷GenericEphemeralVolume类似于 emptyDir 卷但它更加灵活存储可以是本地的也可以是网络存储。卷可以有固定的大小Pod 不能超量使用。卷可能有一些初始数据这取决于驱动程序和参数。当驱动程序支持卷上的典型操作如快照、克隆、扩展等也被支持。 Kubelet 内存控制策略 Alpha内存控制策略是 Kubelet 在 v1.21 中新增的一个 Alpha 特性用于为 Pod 提供 NUMA 内存。Kubelet 新增了 --memory-manager-policy 用于配置内存控制策略它支持两个策略默认策略是 none等同于内存控制策略未开启static 策略为 Pod 分配 NUMA 内存并确保 Guaranteed Pod 预留足够的内存Kubelet 状态保存在 /var/lib/kubelet/memory_manager_state 文件中。 ServiceLoadBalancerClass Alpha以前 LoadBalancer 类型的服务都需要云服务商扩展Cloud Provider去配置云上负载均衡器并且整个集群中只能运行一个 Cloud Provider。Kubernetes v1.21 新增的 ServiceLoadBalancerClass 特性允许一个集群中运行多个负载均衡器的实现而 Service 可以通过 spec.loadBalancerClass 指定使用哪个具体实现类似于 Ingress Controller。 PodDeletionCost Alpha以前从 ReplicaSet 删除 Pod 时只能设置副本数量而不能指定要删除的 Pod而 Kubernetes v1.21 新增的 PodDeletionCost 特性允许用户设置哪些 Pod 优先删除。使用该特性时需要给 Pod 增加一个 annotation controller.kubernetes.io/pod-deletion-cost其值表示删除一个 Pod 的成本值越小代表越优先删除。当 annotation 不存在时表示其删除成本为 0。 Indexed Jobs Alpha通常当使用 Job 来运行分布式任务时用户需要一个单独的系统来在 Job 的不同 worker Pod 之间分配任务。比如设置一个工作队列逐一给每个 Pod 分配任务。Kubernetes v1.21 新增的 Indexed Job 会给每个任务分配一个数值索引并通过 annotation batch.kubernetes.io/job-completion-index 暴露给每个 Pod。使用方法为在 Job spec 中设置 completionMode: Indexed。 TopologyAwareHints Alpha服务拓扑Service Topology在 Kubernetes v1.21 中已弃用并将在 v1.22 中删除。Kubernetes v1.21 新增的拓扑感知提示提供了类似的功能。该特性开启后EndpointSlice 控制器将填充 EndpointSlice 中每个 Endpoint 上的提示字段以将其分配到一个区域。然后诸如 kube-proxy 这样的组件在配置请求路由时就可以使用这些提示。 其他需要留意的新特性CronJob 进入稳定版本已有用户注意切换 API 版本到 apiVersion: batch/v1。Sysctls 进入稳定版本用户终于有一个稳定的 API 来配置 Sysctl 了。Pod disruption budgetsPDB进入稳定版本已有用户注意切换 API 版本到 apiVersion: policy/v1。RootCAConfigMap 进入稳定版本kube-controller-manager 将会在每个 namespace 发布一个名为 kube-root-ca.crt 的 ConfigMap内容是 ca.crt可用来验证 Kubernetes API 连接。EndpointSlice 进入稳定版本已有用户注意切换 API 版本到 apiVersion: discovery.k8s.io/v1。ServiceAccountIssuerDiscovery 进入稳定版本该特性使得用户能够用联邦的方式结合使用 Kubernetes 集群_Identity Provider_标识提供者与外部系统_relying parties_ 依赖方所分发的服务账号令牌。CRIContainerLogRotation 进入稳定版本kubelet 将会自动为 containerd 等 CRI 容器运行时轮换日志。结构化日志Structured Logging进入 Beta很多组件的日志都改成以 JSON 格式记录这样第三方日志处理系统就可以方便地从日志中解析出日志所对应的资源对象和资源属性。EfficientWatchResumption 进入 Betakube-apiserver 重启后 watch 缓存将更高效的恢复更好的支持大规模集群。CSIServiceAccountToken 进入 Beta使得 CSI 驱动程序可以获取 Pod 的 service account token。GracefulNodeShutdown 进入 BetaKubelet 将会检测 Node 的状态并在 Node 关闭前终止其上运行的 Pod使用前需要配置 ShutdownGracePeriod 和 ShutdownGracePeriodCriticalPods。Network Policy 支持设置端口范围port 和 endPort大量端口时不再需要每个端口单独列出。参考链接https://github.com/kubernetes/kubernetes/pull/97171https://github.com/open-policy-agent/gatekeeper你觉得这些特性怎么样欢迎来评论区聊聊~
CSDN协同行业大佬
打造13长热门知识图谱及IT成长路线
助力千万IT人成长快速实现职场进阶
更多精彩推荐
☞Kubernetes 和 Docker到底什么关系☞PassMark 更新排行苹果 M1 杀疯了☞干货Redis集群工作原理解析点分享点收藏点点赞点在看