首页 > 解决方案 > 从特定命名空间中删除所有 K8s Pod

问题描述

我想通过 Ansible Play 从特定命名空间中删除所有 pod。在这里,我试图从命名空间“postgres-ns”中删除所有 postgres pod。

我正在使用下面的 ansible play 来删除它:

- name: Unistalling postgres from K8s
  block:
     - name: Removing Statefulsets & Service from  "{{postgres_namespace}}"
      action:
        shell kubectl -n "{{postgres_namespace}}" delete statefulsets "{{postgres_release_name}}" && kubectl -n "{{postgres_namespace}}" delete service "{{postgres_release_name}}"-service
      register: postgres_removal_status
    - debug:
        var: postgres_removal_status.stdout_lines

但收到此错误:

Error from server (NotFound): statefulsets.apps \"postgres\" not found

这是结果kc -n postgres-ns get all

NAME                        READY   STATUS    RESTARTS   AGE`

`pod/postgres-postgresql-0   1/1     Running   0          57s`

`NAME                                   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE`

`service/postgres-postgresql            ClusterIP   10.108.64.70   <none>        5432/TCP   57s`

`service/postgres-postgresql-headless   ClusterIP   None           <none>        5432/TCP   57s`

`NAME                                   READY   AGE`

`statefulset.apps/postgres-postgresql   1/1     57s

有人可以在这里帮助我吗?

提前致谢。

标签: postgresqlkubernetes

解决方案


Error from server (NotFound): statefulsets.apps \"postgres\" not found

这表示您要删除名称为的状态集postgress,但从您的get all命令中,状态集的名称为statefulset.apps/postgres-postgresql。您需要更新delete statefulsets "{{postgres_release_name}}"-postgresql或传递正确的postgres_release_name?


推荐阅读