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/zh-hant/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

發表回復

登錄後才能評論