内容目录
原因
TRMS 命名空间下的 nginx 有多个旧 Pod(0/1 NodePorts 状态),是之前使用 hostPort 启动失败遗留的副本,现在只剩一个正常的在运行(Running)。
trms nginx-6b95b58644-lnxrs 1/1 Running 0 52m
trms nginx-f5b9db577-2476n 0/1 NodePorts 0 9d
trms nginx-f5b9db577-24hpn 0/1 NodePorts 0 9d
trms nginx-f5b9db577-24xf9 0/1 NodePorts 0 9d
解决
🧭 步骤 1:查看实际控制器(Deployment 或 ReplicaSet)
kubectl -n trms get deploy
找出当前 nginx
所属的部署(比如叫 nginx
或 nginx-old
)。
root@u1:~# kubectl -n trms get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 54d
xxl-job 1/1 1 1 55d
再看它的 ReplicaSet:
kubectl -n trms get rs | grep nginx
输出中可能会有多个版本的 RS,例如:
root@u1:~# kubectl -n trms get rs | grep nginx
nginx-6b95b58644 1 1 1 54m
nginx-6bdf7d6cf6 0 0 0 54d
nginx-7cc7997975 0 0 0 100m
nginx-f5b9db577 0 0 0 9d
这就表示:
nginx-f5b9db577
等 是旧的 ReplicaSet(0/1 的 Pods 都是它创建的)nginx-6b95b58644
是新的版本(当前正常)
🧹 步骤 2:删除旧的 ReplicaSet(及其失败的 Pods)
直接执行:
kubectl -n trms delete rs nginx-xxxx
这会自动清理掉所有 nginx-xxxx-*
的 Pods。
实际操作已经正确返回
root@u1:~# kubectl -n trms delete rs nginx-f5b9db577
replicaset.apps "nginx-f5b9db577" deleted
root@u1:~# kubectl -n trms delete rs nginx-6bdf7d6cf6
replicaset.apps "nginx-6bdf7d6cf6" deleted
root@u1:~# kubectl -n trms delete rs nginx-7cc7997975
replicaset.apps "nginx-7cc7997975" deleted