一、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