Невозможно удалить perconaxtradbclusters, которые находятся в состоянии ошибки - PullRequest
0 голосов
/ 22 апреля 2020

Я установил Percona XtraDB в kubernetes, используя оператор 1.3.0.

После его использования я хотел удалить пространство имен. Поэтому я удалил их в порядке их применения. Все удалено и ничего не видно в sv c, pods, но есть два ресурса, которые находятся в состоянии ошибки и не могут быть удалены.

~ kubectl get perconaxtradbclusters -n pxc
NAME       ENDPOINT   STATUS   PXC   PROXYSQL   AGE
cluster1              Error    0     0          4h1m
cluster2              Error    0     0          3h34m

Я не могу удалить оба из них и из-за это я не могу создать кластер с тем же именем.

Когда я запускаю команду удаления, она застревает навсегда

~ kubectl delete  perconaxtradbclusters -n pxc cluster1
perconaxtradbcluster.pxc.percona.com "cluster1" deleted

Выполнение команды никогда не завершается.

Ямл объекта

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

Как от них избавиться

1 Ответ

1 голос
/ 22 апреля 2020

В вашем примере perconaxtradbclusters yaml упоминаются ресурсы pv c, поэтому вам, вероятно, придется сначала удалить связанный pv c, если вы этого еще не сделали.

Можете ли вы отредактировать ресурсы для удаления блоков финализатора и попробовать удалить их снова?

kubectl edit perconaxtradbclusters cluster1 -n pxc

и удалить

finalizers: 
- delete-pxc-pods-in-order

Если ничего не осталось, полагаясь на эти ресурсы, то есть.

Edit:

Я бы обычно использовал этот метод, только если я исчерпал все другие возможности и не могу найти зависающие ресурсы, которые блокируют удаление. Я немного покопался. Этот комментарий здесь описывает другие шаги, которые необходимо предпринять, прежде чем прибегнуть к удалению финализаторов. - Убедитесь, что службы API доступны. - Найдите все существующие ресурсы и удалите их.

...