您的位置:

Kubernetes 1.23更新:容器编排管理新功能揭秘

一、Pod变化管理

Kubernetes 1.23引入了一个新的参数–“rev”来跟踪Pod的历史,通过增加rev字段,kubernetes现在能够有效管理历史和版本的Pod。这意味着,管理员和DevOps可以追踪Pod的历史,从而更好的理解Pod生命周期。


apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx
  restartPolicy: Never
  revisionHistoryLimit: 5

如上所述,当Pod在进行更改时,管理员可以根据需求设置Pod副本的历史保留数量。将revisionHistoryLimit设置为任何值,将限制副本集保留的副本数。当超过这个限制时,旧的Pod将被删除并替换为新的Pod。

二、Pod Security Policies更新

Kubernetes 1.23引入了一些令人兴奋的功能,以改进Pod Security Policies (PSP)的功能。PSP是一种安全准则,用于在Kubernetes中定义Pod和容器的安全策略。在Kubernetes 1.23中,PSP的前身即将退役,Kubernetes即将引入一种名为“Pod Security Enforcement”的新安全准则,将PSP进一步加强。现有Pod Security Policies用户需要了解此更改并更新其安全策略为Pod Security Enforcement。

Pod Security Enforcement有许多新特性,包括:

  • 更严格限制容器的UID和GID
  • 更好的转换用户和组

更新后的Pod Security Enforcement可使用以下代码创建:


kind: PodSecurityPolicy
apiVersion: policy/v1beta1
metadata:
  name: example
spec:
  privileged: false
  runAsUser:
    rule: 'RunAsAny'
  seLinux:
    rule: 'RunAsAny'
  fsGroup:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'RunAsAny'
  volumes:
  - ''

三、Kubernetes网络模型更新

网络模型一直是Kubernetes中一个关键的部分,从1.23版本开始,Kubernetes引入了新的网络架构:Dual-Stack。当Kubernetes集群启用Dual-Stack时,它将支持IPv4和IPv6网络。在IPv6网络已广泛传播的今天,这种更新对于更好的网络体验极其重要。

要使用Dual-Stack网络,请将双栈的地址添加到Kubernetes Service中:


apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: nginx
  ipFamilies:
  - IPv4
  - IPv6
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080

四、Pod Topology Spread策略的最大化

在以往的Kubernetes中,节点Affinity和Taints&Tolerations的路线在Pod调度中扮演了重要角色。在1.23版本中,Kubernetes已经更新了自己的策略,引入了更多功能,使Pod Topology Spread策略的负载均衡能够更好地完成。

以下示例展示了如何使用“label”通过节点亲和力来定义Pod Topology Spread的策略:


apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: my-label
            operator: In
            values:
            - "hello"
  topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: kubernetes.io/hostname
    whenUnsatisfiable: ScheduleAnyway
    labelSelector:
      matchLabels:
        my-label: "hello"
Kubernetes 1.23更新:容器编排管理新功能揭秘

2023-05-17
Spark 3.0:全面揭秘新特性

2023-05-20
了解Reconciler:从记忆巧妙应用到Kubernete

2023-05-20
使用Kubernetes管理容器的最佳实践

2023-05-17
利用Kubernetes管理容器化系统的方法

2023-05-19
java方法整理笔记(java总结)

2022-11-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
VPS绑定域名技巧大揭秘

1: vps怎么绑定域名 1、解析自己的域名到服务器IP。 2、增加A记录到服务器IP。 3、地区不同需要等待核备生效。 4、远程连接服务器。 5、找到需要绑定域名的网站。 6、右键属性,点击高级按钮

2023-12-08
阿里云笔记的功能与使用详解

2023-05-21
如何使用Kubernetes进行应用部署和管理

2023-05-16
php新手笔记,php初学者

2022-11-19
python基础学习整理笔记,Python课堂笔记

2022-11-21
Python解密:揭秘背后的实用功能

2023-05-12
Kubernetes版本详解

2023-05-17
深入理解Kubernetes YAML文件及编辑技巧

2023-05-16
Android内存管理技巧大揭秘,消除应用OOM错误

一、内存溢出(Out Of Memory,OOM)错误介绍 内存溢出错误是Android应用开发中常见的问题,当应用程序向系统请求分配的内存超出系统所能提供的范围时就会发生OOM错误。这种错误可以导致

2023-12-08
K8sGitLab:集成GitLab CI/CD的容器管理平

2023-05-20
java笔记,尚硅谷java笔记

2022-12-01
新概念php包管理器,php 包管理

2022-11-20