Score:0

Kubernetes NGINX Ingress Controller ล้มเหลวโดยใช้ Helm บน AKS

ธง in

เมื่อดำเนินการตั้งค่าตัวควบคุมขาเข้า K8 ซึ่งมีการบันทึกเป็นเอกสาร ที่นี่

ฉันไม่สามารถผ่านขั้นตอนของ "สร้างผู้ควบคุมข้อมูลขาเข้า" ในระหว่างขั้นตอนคำสั่ง Helm และวางคำสั่งในโหมดดีบัก ฉันเห็นว่าขั้นตอนใดขั้นตอนหนึ่งหมดเวลา:

การติดตั้งล่วงหน้าล้มเหลว: หมดเวลารอเงื่อนไข

หลังจากตรวจสอบบันทึก K8 POD แล้ว ฉันพบว่าระบบ K8 ไม่สามารถเชื่อมต่อกับรีจิสทรีได้เนื่องจากข้อผิดพลาดในการตรวจสอบสิทธิ์ ผลลัพธ์ต่อไปนี้ได้รับการแก้ไขด้วยเหตุผลด้านความปลอดภัย แต่แสดงข้อผิดพลาด

ไม่สามารถดึงอิมเมจ "myregistry.azurecr.io/jettech/kube-webhook-certgen:v1.5.1@sha256:...90bd8068": [ข้อผิดพลาด rpc: code = NotFound desc = ไม่สามารถดึงและคลายแพ็กอิมเมจ"... .azurecr.io/jettech/kube-webhook-certgen@sha256:....9b9e90bd8068": ไม่สามารถแก้ไขการอ้างอิง "myregistry.azurecr.io/jettech/kube-webhook-certgen@sha256:...190b1dcbcb9b9e90bd8068": ...azurecr.io/jettech/kube-webhook-certgen@sha256:...9b9e90bd8068: ไม่พบ ข้อผิดพลาด rpc: code = Unknown desc = ไม่สามารถดึงและแกะอิมเมจ "myregistry.azurecr.io/jettech/kube- webhook-certgen@sha256:...dcbcb9b9e90bd8068": ล้มเหลวในการแก้ไขการอ้างอิง "myregistry.azurecr.io/jettech/kube-webhook-certgen@sha256:...b9b9e90bd8068": ล้มเหลวในการอนุญาต: ล้มเหลวในการดึงข้อมูลโทเค็นนิรนาม: ไม่คาดคิด สถานะ: 401 ไม่ได้รับอนุญาต]

ฉันตรวจสอบแล้วว่าอิมเมจอยู่ในรีจีสทรีคอนเทนเนอร์ตามคำสั่ง "az acr import" และถ้าฉันปรับใช้ K8 แบบมาตรฐานโดยใช้ "kubectl" k8 จะสามารถเชื่อมต่อกับ acr ได้ ฉันได้ตรวจสอบการเชื่อมต่อระหว่างคลัสเตอร์และรีจิสตรีโดยใช้คำสั่งต่อไปนี้ซึ่งทำงานได้ตามที่คาดไว้:

az aks ตรวจสอบ -acr -n <คลัสเตอร์> -g <rg> --acr <acr>

ความล้มเหลวนี้เกิดขึ้นเมื่อใช้คำสั่ง helm เท่านั้น

แก้ไข

หลังจากค้นคว้าเพิ่มเติมฉันพบบทความต่อไปนี้

https://stackoverflow.com/questions/68949434/installing-nginx-ingress-controller-into-aks-cluster-cant-pull-image-from-azu

ดูเหมือนว่าจะมีปัญหากับการย่อย ฉันเพิ่ม/แทนที่สิ่งต่อไปนี้ในคำสั่งหางเสือ:

--set controller.image.digest="sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899" \
--set controller.admissionWebhooks.patch.image.digest="sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7" \

อย่างไรก็ตาม เมื่อรันคำสั่ง helm ที่แก้ไขแล้ว POD จะอยู่ในสถานะข้อผิดพลาดโดยมีข้อผิดพลาดต่อไปนี้

ธงที่ไม่รู้จัก: --controller-class

ฉันลองตั้งค่าตัวแปร env CONTROLLER_TAG=v1.0.0 ตามที่บันทึกไว้ในบทความ แต่ไม่ได้ผล

อีกวิธีหนึ่งคือตั้งค่าหมายเลขเวอร์ชัน: 3.36.0 ในคำสั่ง สิ่งนี้สำเร็จ แต่ต้องใช้เวอร์ชันที่ดาวน์เกรด

Score:1
ธง in

หลังจากติดต่อข้อเสนอแนะของไซต์เอกสาร MS พวกเขาได้ให้การแก้ไขต่อไปนี้สำหรับเอกสารนี้แก่ฉัน

https://github.com/MicrosoftDocs/azure-docs/issues/80321

หลังจากย้อนกลับและนำการเปลี่ยนแปลงที่แก้ไขไปใช้ใหม่ คำสั่งก็สำเร็จ กุญแจสำคัญคือการลบพ็อดโดยใช้คำสั่งถอนการติดตั้งหางเสือ:

helm ถอนการติดตั้ง nginx-ingress --namespace ingress-basic

จากนั้นลบที่เก็บ ACR ออกจาก ACR ของคุณ:

jettech/kube-webhook-ใบรับรอง
defaultbackend-amd64
jetstack/cert-manager-controller
jetstack/cert-manager-webhook
jetstack/cert-manager-cainjector

ซึ่งสร้างด้วยคำสั่ง "az acr import" แล้วรันคำสั่งที่แก้ไขใหม่อีกครั้ง

หวังว่าจะมีคนพบคุณค่านี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา