ロールアウトの再起動ポッドと削除ポッドの違いは何ですか?

ロールアウトの再起動ポッドと削除ポッドの違いは何ですか?

k8s の rollout restart pod と delete pod の違いは何ですか? どちらもポッドを再起動しますか?

答え1

Kubernetes では、ロールアウトの再起動コマンドと削除コマンドは、それぞれポッドの再起動または削除に使用されます。ただし、これらのコマンドの動作は異なり、ポッドとシステム全体に異なる影響を与えます。

rollout restart コマンドは、Kubernetes でデプロイメントまたはレプリカ セットを再起動するために使用されます。つまり、デプロイメントまたはレプリカ セット内の既存のポッドが、最新バージョンのアプリケーション コードと更新された構成を含む新しいポッドに置き換えられます。これは、アプリケーションに更新をデプロイする場合や、正常に機能していないデプロイメントを再起動する場合に役立ちます。

一方、delete コマンドは、デプロイメントやレプリカ セットに影響を与えずにポッドを直接削除するために使用されます。これにより、ポッドがシステムから削除され、使用していたリソースが解放されます。これは、不要になったポッドを削除したり、個々のポッドの問題をトラブルシューティングしたりする場合に役立ちます。

全体的に、ロールアウト再起動コマンドと削除コマンドの両方を使用して Kubernetes でポッドを再起動できますが、動作方法が異なり、システムへの影響も異なります。ロールアウト再起動コマンドはデプロイメント全体またはレプリカ セットを再起動するために使用され、削除コマンドは個々のポッドを削除するために使用されます。

答え2

ここにたどり着いた他の人々にとって、これkubectl rolloutはポッドには適用されません。コマンドラインヘルプ ( kubectl rollout -h) によると:

 Valid resource types include:

  *  deployments
  *  daemonsets
  *  statefulsets

これを書いている時点で、ポッドでロールアウト再起動を実行しようとすると、次のようなエラー メッセージが表示される可能性があります。

$ kubectl rollout restart pod test-zrdcs
error: pods "test-zrdcs" restarting is not supported

ポッド リソースの場合、削除は文字通りポッドの削除を試みます。ポッドが上位レベルのリソース (レプリカ セットやデプロイメントなど) によって管理されている場合、そのオブジェクトが削除されたポッドを置き換えることがあります。

kubectl私が現在使用しているバージョンは次のとおりです:

$ kubectl version --client --short
Client Version: v1.25.4

関連情報