Kubernetes 无法删除处于错误状态的PerconaXtradbCluster

Kubernetes 无法删除处于错误状态的PerconaXtradbCluster,kubernetes,percona-xtradb-cluster,Kubernetes,Percona Xtradb Cluster,我已经使用1.3.0操作符在kubernetes上安装了Percona XtraDB 使用它之后,我想删除名称空间。所以我按照我应用它们的顺序删除了它们。 所有内容都已删除,在svc、pods中看不到任何内容,但有两个资源处于错误状态,无法删除 ~ kubectl get perconaxtradbclusters -n pxc NAME ENDPOINT STATUS PXC PROXYSQL AGE cluster1 Error 0

我已经使用1.3.0操作符在kubernetes上安装了Percona XtraDB

使用它之后,我想删除名称空间。所以我按照我应用它们的顺序删除了它们。 所有内容都已删除,在svc、pods中看不到任何内容,但有两个资源处于错误状态,无法删除

~ kubectl get perconaxtradbclusters -n pxc
NAME       ENDPOINT   STATUS   PXC   PROXYSQL   AGE
cluster1              Error    0     0          4h1m
cluster2              Error    0     0          3h34m
我无法同时删除它们,因此我无法创建具有相同名称的集群

当我运行delete命令时,它会永远卡住

~ kubectl delete  perconaxtradbclusters -n pxc cluster1
perconaxtradbcluster.pxc.percona.com "cluster1" deleted
命令执行从未完成

对象的yaml

apiVersion: pxc.percona.com/v1
kind: PerconaXtraDBCluster
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"pxc.percona.com/v1-3-0","kind":"PerconaXtraDBCluster"}
  creationTimestamp: "2020-04-21T18:06:13Z"
  deletionGracePeriodSeconds: 0
  deletionTimestamp: "2020-04-21T18:38:33Z"
  finalizers:
  - delete-pxc-pods-in-order
  generation: 2
  name: cluster2
  namespace: pxc
  resourceVersion: "5445879"
  selfLink: /apis/pxc.percona.com/v1/namespaces/pxc/perconaxtradbclusters/cluster2
  uid: 8c100840-b7a8-40d1-b976-1f80c469622b
spec:
  allowUnsafeConfigurations: false
  backup:
    image: percona/percona-xtradb-cluster-operator:1.3.0-backup
    schedule:
    - keep: 3
      name: sat-night-backup
      schedule: 0 0 * * 6
      storageName: s3-us-west
    - keep: 5
      name: daily-backup
      schedule: 0 0 * * *
      storageName: fs-pvc
    serviceAccountName: percona-xtradb-cluster-operator
    storages:
      fs-pvc:
        type: filesystem
        volume:
          persistentVolumeClaim:
            accessModes:
            - ReadWriteOnce
            resources:
              requests:
                storage: 6Gi
      s3-us-west:
        s3:
          bucket: S3-BACKUP-BUCKET-NAME-HERE
          credentialsSecret: my-cluster-name-backup-s3
          region: us-west-2
        type: s3
  pmm:
    enabled: false
    image: percona/percona-xtradb-cluster-operator:1.3.0-pmm
    serverHost: monitoring-service
    serverUser: pmm
  proxysql:
    affinity:
      antiAffinityTopologyKey: kubernetes.io/hostname
    enabled: true
    gracePeriod: 30
    image: percona/percona-xtradb-cluster-operator:1.3.0-proxysql
    podDisruptionBudget:
      maxUnavailable: 1
    resources:
      requests:
        cpu: 600m
        memory: 1G
    size: 3
    volumeSpec:
      persistentVolumeClaim:
        resources:
          requests:
            storage: 2Gi
  pxc:
    affinity:
      antiAffinityTopologyKey: kubernetes.io/hostname
    gracePeriod: 600
    image: percona/percona-xtradb-cluster-operator:1.3.0-pxc
    podDisruptionBudget:
      maxUnavailable: 1
    resources:
      requests:
        cpu: 600m
        memory: 4G
    size: 3
    volumeSpec:
      persistentVolumeClaim:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 60Gi
        storageClassName: local-storage
  secretsName: my-cluster-secrets
  sslInternalSecretName: my-cluster-ssl-internal
  sslSecretName: my-cluster-ssl
status:
  conditions:
  - lastTransitionTime: "2020-04-21T18:06:13Z"
    message: 'wrong PXC options: set version: new version: Malformed version: '
    reason: ErrorReconcile
    status: "True"            
    type: Error
  message:
  - 'Error: wrong PXC options: set version: new version: Malformed version: '
  proxysql:
    ready: 0
  pxc:
    ready: 0
  state: Error

我怎样才能摆脱它们呢

你的
perconaxtradbclusters
yaml例子提到了pvc资源,所以你可能必须先删除相关的pvc,如果你还没有这样做的话

是否可以编辑资源以删除终结器块,然后再次尝试删除它们

kubectl编辑perconaxtradbclusters群集1-n pxc

删除

finalizers: 
- delete-pxc-pods-in-order
如果没有任何东西可以依靠这些资源,那就是

编辑:

通常,只有当我用尽了所有其他可能性,并且找不到阻止删除的挂起资源时,我才会使用这种方法。我四处挖掘了一下。此注释描述了在删除终结器之前要采取的其他步骤。 -检查API服务是否可用
-找到任何仍然存在的资源并删除它们。

您的
perconaxtradbclusters
yaml示例提到pvc资源,因此您可能必须首先删除关联的pvc,如果您还没有这样做的话

是否可以编辑资源以删除终结器块,然后再次尝试删除它们

kubectl编辑perconaxtradbclusters群集1-n pxc

删除

finalizers: 
- delete-pxc-pods-in-order
如果没有任何东西可以依靠这些资源,那就是

编辑:

通常,只有当我用尽了所有其他可能性,并且找不到阻止删除的挂起资源时,我才会使用这种方法。我四处挖掘了一下。此注释描述了在删除终结器之前要采取的其他步骤。 -检查API服务是否可用
-找到任何仍然存在的资源并将其删除。

你能检查这是否有效吗
kubectl delete perconaxtradbclusters-n pxc cluster1--force--grace period=0
?你能检查这是否有效吗
kubectl delete perconaxtradbclusters-n pxc cluster1--force--grace period=0
?太好了。通常,只有当我用尽了所有其他可能性,并且找不到阻止删除的挂起资源时,我才会使用这种方法。我做了一些调查,这篇评论描述了在删除终结器之前需要采取的其他步骤:这非常有帮助,谢谢@ruairiosgreeat。通常,只有当我用尽了所有其他可能性,并且找不到阻止删除的挂起资源时,我才会使用这种方法。我做了一些调查,这篇评论描述了在删除终结器之前需要采取的其他步骤:这非常有帮助,谢谢@Ruairios