ฉันได้ติดตั้งที่เก็บกงสุล helm เป็นเนมสเปซเริ่มต้น ตอนนี้ต้องการเปลี่ยนเป็นเนมสเปซที่กำหนดเอง

ดังนั้นให้ลบแผนภูมิวิธีใช้โดยใช้คำสั่งถอนการติดตั้ง helm ตอนนี้ เมื่อฉันพยายามติดตั้งอีกครั้ง ได้รับข้อผิดพลาดเนื่องจาก CRD ได้รับการกำหนดค่าไว้ก่อนหน้านี้แล้ว จำเป็นต้องล้างข้อมูลเหล่านี้

ดังนั้นให้รันคำสั่งด้านล่างเพื่อตรวจสอบ CRD

kubectl get CustomResourceDefinition --all-namespaces
NAME                                     CREATED AT
healthstates.azmon.container.insights    2021-09-24T14:19:01Z
ingressgateways.consul.hashicorp.com     2021-09-26T13:17:13Z
servicedefaults.consul.hashicorp.com     2021-09-26T13:17:13Z
serviceintentions.consul.hashicorp.com   2021-09-26T13:17:13Z
servicerouters.consul.hashicorp.com      2021-09-26T13:17:13Z

CRD ข้างต้น ฉันต้องล้างข้อมูลทั้งหมดโดยมีกงสุลเป็นข้อความย่อย

ดังนั้นฉันจึงลองลบทีละรายการ แต่มันค้างอยู่ตรงนั้นโดยไม่ลบมันออกเมื่อฉันรันคำสั่งใดๆ ด้านล่าง

kubectl delete crd serviceintentions.consul.hashicorp.com
customresourcedefinition.apiextensions.k8s.io "serviceintentions.consul.hashicorp.com" deleted

ฉันรอเป็นเวลา 1 ชั่วโมง แต่ไม่มีการตอบสนองใดๆ ดังนั้นให้ป้อน ctrl+c เพื่อยกเลิกและรันคำสั่ง get อีกครั้ง ดูเหมือนว่าจะไม่ถูกลบ

โปรดแนะนำวิธีการแก้ไขนี้?

answer

ลิงค์อ้างอิง

คุณช่วยทำ kubectl get crd -A -o yaml | . ได้ไหม grep -i finalizers เพื่อตรวจสอบว่าการดำเนินการลบอยู่ในภาวะชะงักงันโดยตั้งค่า Finalizers บน CRD หรือไม่

ในกรณีดังกล่าว คุณสามารถดำเนินการดังต่อไปนี้:

 kubectl patch crd <custome-resource-definition-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
 kubectl delete crd <custome-resource-definition-name> -n <namespace>

ด้านบนคือคำตอบที่ฉันได้รับในฟอรัม MSDN แต่นั่นไม่ได้ผลสำหรับฉัน ดังนั้นฉันจึงแก้ไข CRD ด้วยตนเองโดยใช้คำสั่งด้านล่างและลบส่วน Finalizer ออกจาก CRD ของเขา จากนั้นจะถูกลบออกโดยตรง

kubectl edit crd <CRD-Name>

ขอบคุณมากสำหรับการตอบกลับของคุณ