GNU/Linux >> Linux の 問題 >  >> Linux

Kubernetesでポッドを削除する方法[K8sのクイックヒント]

Kubernetesクラスタ環境で作業しているときに、ワーカーノードの1つからポッドを削除する必要がある状況に遭遇することがあります。

ノード自体の問題をデバッグするか、ノードをアップグレードするか、単にクラスターをスケールダウンする必要がある場合があります。

Kubernetesポッドを削除するアクションは、kubectl delete podを使用すると非常に簡単です。 コマンド:

kubectl delete pod pod-name

ただし、アプリケーションの中断を最小限に抑えるために実行する必要のある特定の手順があります。この記事で詳しく説明します。

Kubernetesポッドを正常に削除

まず、すべてのポッドをリストアップします:

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>
pod-delete-demo           1/1     Running   0          4s      172.16.213.196   kworker-rj2   <none>           <none>

ここで、「pod-delete-demo」という名前のポッドを削除する場合は、次のコマンドを実行します。

[email protected]:~# kubectl delete pod pod-delete-demo
pod "pod-delete-demo" deleted

すべてのポッドを一覧表示して、問題のポッドが削除されていることを確認します。

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

実行中のpod-delete-demoポッドがないことがわかります。

Kubernetesポッドを強制的に削除します

ポッドを強制的に削除する必要があるのはなぜですか??

ポッドが終了/不明でスタックすることがあります タイムアウト後の到達不能ノードの状態。

ユーザーが到達不能なノードでポッドを正常に削除しようとすると、ポッドもこれらの状態になる可能性があります。

これらのシナリオでは、ポッドを強制的に削除できます。

kubectl version> =1.5を使用してポッドを強制的に削除する場合は、次の手順を実行します。

kubectl delete pods pod_name --grace-period=0 --force

kubectl <=1.4のいずれかのバージョンを使用している場合は、--forceを省略してください。 オプションと使用法:

kubectl delete pods pod_name --grace-period=0

次に、上記の方法を使用してポッド「pod-delete-demo」を削除しましょう。

[email protected]:~# kubectl delete pod pod-delete-demo --force --grace-period=0 --namespace=default
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "pod-delete-demo" force delete

注: ポッドの削除を強制するしない ポッドが終了したというkubeletからの確認を待ちます。

これらのコマンドを実行した後でも、ポッドがUnknownでスタックしている場合 状態を確認するには、次のコマンドを使用してポッドをクラスターから削除します。

kubectl patch pod pod-delete-demo -p '{"metadata":{"finalizers":null}}'

ポッドが削除されたことを確認します:

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

このKubernetesのヒントがお役に立てば幸いです。その他のDevOpsのヒントとチュートリアルを購読してください。

Rakesh Jain
DevOps Professional | RHCA |ジェンキンス| Git | Docker | Kubernetes | Ansible |プロメテウス| Grafana | AWSクラウド

Linux
  1. 最初のポッドをKubernetesクラスターにデプロイする方法

  2. Kubernetesデプロイメントを削除する方法[K8sのクイックヒント]

  3. Kubernetes ノードで実行された Pod の履歴を取得するには?

  1. Kubernetesでポッドを再起動する方法[K8sのクイックヒント]

  2. Kubernetesでノードを読み取る方法[K8sのクイックヒント]

  3. Kubernetesでサービスを削除する方法

  1. KubernetesにRedisクラスターをデプロイする方法

  2. Kubernetesポッドを再起動する方法

  3. RHEL 8にKubernetes(k8s)クラスターをインストールする方法