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"

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/249495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 17:13
下一篇 2024-12-12 17:13

相关推荐

  • 解决docker-compose 容器时间和服务器时间不同步问题

    docker-compose是一种工具,能够让您使用YAML文件来定义和运行多个容器。然而,有时候容器的时间与服务器时间不同步,导致一些不必要的错误和麻烦。以下是解决方法的详细介绍…

    编程 2025-04-29
  • Kubernetes安装Drone教程

    本文将通过多个方面详细介绍如何在Kubernetes中安装Drone,让您快速上手使用。 一、前置条件 1、已经安装了Kubernetes环境 2、拥有一个Github账户 3、已…

    编程 2025-04-27
  • Python数据容器切片

    本文将从多个方面详细阐述Python数据容器切片的应用、技巧和方法。 一、切片的基本操作 Python的数据容器包括字符串、列表、元组、字典等,而切片是对这些容器进行子序列提取的常…

    编程 2025-04-27
  • Docker批量删除容器详解

    一、前言 Docker是一个开源的应用容器引擎,提供了一种轻量级容器化技术,方便快捷的进行应用打包、发布、运行。作为广泛应用的技术之一,Docker是开发、测试、运维的得力助手。但…

    编程 2025-04-25
  • Java Tomcat:Web应用程序的完美容器

    一、浅谈Tomcat Tomcat,全称为Apache Tomcat,是一个免费的、开源的Java Servlet容器,而Java Servlet是一种服务器端的Java扩展程序,…

    编程 2025-04-25
  • CentOS安装Kubernetes教程

    一、安装必备组件 在开始安装Kubernetes之前,需要安装一些必备组件: sudo yum install -y yum-utils device-mapper-persist…

    编程 2025-04-25
  • 深入理解Docker容器和镜像的关系

    一、Docker容器和镜像的基本概念 Docker是一种虚拟化容器技术,它可以划分出多个隔离环境,让不同的应用程序在同一台机器上运行,而不会相互影响。Docker主要包含两个基本概…

    编程 2025-04-24
  • Kubernetes 中的 Service

    一、简介 Kubernetes 中的 Service 是一个重要的概念,它将一组 Pod 封装成一个逻辑单元,并提供网络访问,对外暴露一个统一的 IP 和端口号。这样,无论后端 P…

    编程 2025-04-24
  • 使用Kubernetes(K8s)搭建分布式系统

    一、Kubernetes概述 Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源平台。其提供了高可用性、自我修复能力和易于扩展的特征,使得大规模、高度可用的分布…

    编程 2025-04-24
  • 通过iptables保护docker容器

    一、背景介绍 Docker已经成为现代开发环境中不可或缺的一部分。它使开发人员可以轻松地构建、分享和运行软件应用程序。然而,Docker应用程序的安全性风险也不容忽视。 在许多情况…

    编程 2025-04-24

发表回复

登录后才能评论