NetBackup™ Web UI Kubernetes 管理指南
- 适用于 Kubernetes 的 NetBackup 概述
- 部署和配置 NetBackup Kubernetes Operator
- 管理映像组
- 在 NetBackup Kubernetes Operator 上部署证书
- 管理 Kubernetes 资产
- 管理 Kubernetes 智能组
- 保护 Kubernetes 资产
- 恢复 Kubernetes 资产
- 对 Kubernetes 问题进行故障排除
如果超过 Kubernetes 节点上的 PID 限制,NetBackup Kubernetes Operator 将变得无响应
在 Linux 系统中,有一个以 PID 1 身份运行的 initd 或系统进程来接收僵尸进程。没有此类 initd 进程的容器会不断生成僵尸进程。
在一定的时间段后,这些僵尸进程会累积,然后达到在 Kubernetes 节点上设置的 PID 的最大限制。
在 NetBackup Kubernetes Operator 中,nbcertcmdtool 会生成子进程以执行证书相关操作。操作完成后,这些进程将变为孤儿进程,并且不会被接收。最终达到最大 PID 限制,NetBackup Kubernetes Operator 变得无响应。
Error message: login pod/nbukops-controller-manager-67f5498bbb-gn9zw -c netbackupkops -n nbukops ERRO[0005] exec failed: container_linux.go:380: starting container process caused: read init-p: connection reset by peer a command that is terminated with exit code 1.
推荐的操作:
要解决超过 PID 限制的问题,可以使用 Initd 脚本。Initd 脚本充当控制器 pod 的父进程或入口点脚本。
作为父进程,它在子进程完成后将僵尸进程附加到自身,以终止持久性僵尸进程。它还帮助您正常关闭容器。Initd 脚本在 NBUKOPs 内部版本 10.0.1 中可用。
使用以下步骤删除现有的 nbcertcmdtool 僵尸进程:
描述 NetBackup Operator pod 并找到正在运行控制器 pod 的 Kubernetes 节点。运行命令:
kubectl describe -c netbackupkops <NB k8s operator pod name> -n <namespace>
登录到 Kubernetes 节点,运行以下命令:
kubectl debug node/nodename
终止 nbcertcmdtool 僵尸进程,运行以下命令:
ps -ef | grep "\[nbcertcmdtool\] <defunct>” | awk '{print $3}' | xargs kill -9
注意:
这些步骤将终止该工作节点的所有僵尸进程,但会暂时解决这个问题。要获得永久解决方案,必须部署带有 Initd 脚本的新 KOps 内部版本。