NetBackup™ Web UI Kubernetes 管理者ガイド
- NetBackup for Kubernetes の概要
- 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 スクリプトは、コントローラポッドの親プロセスまたはエントリポイントスクリプトとして機能します。
親プロセスは、子プロセスの完了後にゾンビプロセスを自分自身に接続し、永続的なゾンビプロセスを終了させます。また、コンテナを正常にシャットダウンするためにも役立ちます。Initd スクリプトは、NBUKOPs ビルドバージョン 10.0.1 で利用可能です。
既存の nbcertcmdtool ゾンビプロセスを削除するには、次の手順を実行します。
NetBackup オペレータポッドを記述し、コントローラポッドが実行されている 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 ビルドを配備する必要があります。