不知道如何,但我有许多 pod 正在运行,这似乎是由于每个部署有多个 replicaset。
这是在我对多个部署进行一些大量编辑之后发生的。
是否有一些简单的方法可以删除孤立的副本集?与手动检查每个,并确定它是否与部署匹配,然后将其删除?
revisionHistoryLimit 是一个可选字段,指定要保留以允许回滚的旧 ReplicaSet 的数量
Bydefault, 10 old ReplicaSets将被保留,将其更改为 1,这样您的旧副本集就不会超过一个。
测试字段如下
创建多次更新的 NGINX 部署并生成如下所列的少量副本集
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx-854998f596-6jtth 1/1 Running 0 18s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1/1 1 1 6m20s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-59d5958c9f 0 0 0 4m5s
replicaset.apps/nginx-669cf47c4f 0 0 0 94s
replicaset.apps/nginx-6ff549666b 0 0 0 2m21s
replicaset.apps/nginx-854998f596 1 1 1 2m7s
replicaset.apps/nginx-966c7f84 0 0 0 108s
Run Code Online (Sandbox Code Playgroud)
编辑正在运行的部署和更新revisionHistoryLimit领域,集零为revisionHistoryLimit: 0
$ kubectl edit deployments.apps nginx
deployment.apps/nginx edited
Run Code Online (Sandbox Code Playgroud)
旧副本集被删除。
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx-854998f596-6jtth 1/1 Running 0 52s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1/1 1 1 6m54s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-854998f596 1 1 1 2m41s
Run Code Online (Sandbox Code Playgroud)
小智 6
可以通过运行以下命令手动删除 Kubernetes 集群中的旧副本集:
kubectl delete replicaset $(kubectl get replicaset -o jsonpath='{ .items[?(@.spec.replicas==0)].metadata.name }')
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,另请参阅此线程,该答案取自:/sf/answers/4779238481/。
| 归档时间: |
|
| 查看次数: |
2712 次 |
| 最近记录: |