Score:0

พ็อด Kubernetes ล้มเหลวด้วย ImagePullBackOff เมื่อพยายามดึงภาพจาก AWS ECR

ธง gb

ฉันกำลังพยายามเรียกใช้พ็อด Kubernetes ในเครื่อง Windows โดยใช้ Docker-Desktop ฉันกำลังพยายามติดตั้งโดยใช้ HELM ฉันสร้างอิมเมจ Docker และส่งไปยังพื้นที่เก็บข้อมูลส่วนตัวของ AWS ECR แล้ว

เมื่อฉันพยายามเรียกใช้คำสั่งติดตั้ง HELM เพื่อหมุนคอนเทนเนอร์ คำสั่งเหล่านั้นจะถูกสร้างขึ้น อย่างไรก็ตาม เมื่อพวกเขาพยายามดึงอิมเมจจาก AWS ECR มันแสดงข้อผิดพลาดและคอนเทนเนอร์ได้รับข้อความ "ImagePullBackOff' ข้อผิดพลาด.

ข้อผิดพลาดเมื่ออธิบายพ็อดที่ล้มเหลว:

ไม่สามารถดึงอิมเมจ "012345678900.dkr.ecr.ap-south-1.amazonaws.com/arjun-poc1/centos-test1:latest": rpc error: code = Unknown desc = Error response from daemon: Head "https:/ /012345678900.dkr.ecr.ap-south-1.amazonaws.com/v2/arjun-poc1/centos-test1/manifests/latest": ไม่มีข้อมูลรับรองการตรวจสอบสิทธิ์ขั้นพื้นฐาน

ฉันได้ทำ 'aws กำหนดค่า' ก้าวและได้เรียกใช้ 'aws ecr รับรหัสผ่านเข้าสู่ระบบ' สั่งการ. ฉันสามารถเรียกใช้ 'docker pull' ด้วยตนเองและรับรูปภาพในเครื่องได้ อย่างไรก็ตาม จะไม่ถูกดึงโดยอัตโนมัติระหว่างที่คอนเทนเนอร์เริ่มทำงาน

ฉันได้ลองตั้งค่า 'imagePullSecret' โดยเรียกใช้คำสั่งต่อไปนี้: kubectl สร้างนักเทียบท่าที่เป็นความลับ aws-secret --docker-server=https://[email protected] --docker-username=AWS --docker-password=$ (aws ecr รับรหัสผ่านเข้าสู่ระบบ). พยายามที่จะรวมไว้ในค่า yaml ด้วย

แผนภูมิ\centos-test1\เทมเพลต\deployment.yaml

ข้อมูลจำเพาะ:
  imagePullSecrets: {{- toYaml .Values.global.imagePullSecrets | นินเด้นท์ 12 }}

ค่า. yaml

ทั่วโลก:
  ฮับ: 012345678900.dkr.ecr.ap-south-1.amazonaws.com/arjun-poc1
  imagePullSecrets:
  - ชื่อ: aws-secret


  ภาพ:
    centos-test1:
        ชื่อ: centos-test1
        ป้ายกำกับ: ล่าสุด
        pullPolicy: เสมอ

ยังคงไม่ทำงานฉันได้รับข้อผิดพลาด 'ImagePullBackOff' ทุกครั้ง ไม่มีใครรู้วิธีการแก้ไขปัญหานี้?

in flag
จากตัวอย่างข้อมูลเล็กๆ น้อยๆ ที่คุณโพสต์ `global.imagePullSecrets:` เป็น **สตริง** ในขณะที่ [ใน `PodSpec` เป็น **รายการ** ของวัตถุ](https://kubernetes.io/docs /reference/generated/kubernetes-api/v1.22/#podspec-v1-core) ตามที่แสดงอย่างชัดเจนใน[คู่มือฉบับสมบูรณ์](https://kubernetes.io/docs/concepts/containers/images/#referring- ถึง-an-imagepullsecrets-on-a-pod) ฉันไม่รู้ว่า PodSpec ของคุณจะผ่านการตรวจสอบได้อย่างไร แต่คุณอยู่ที่นี่
arjunbnair avatar
gb flag
เสียใจ. ฉันได้ทำการเปลี่ยนแปลงหนึ่งอย่างกับตัวอย่างข้อมูลนั้น และตอนนี้ได้รับการปรับปรุงในคำถามของฉันแล้ว นี่คือลักษณะของรหัสของฉันตอนนี้
arjunbnair avatar
gb flag
ฉันยังคงประสบปัญหาเดียวกัน
in flag
เป็นที่น่าสงสัยว่าคุณมี `--docker-username` **และ** ชื่อผู้ใช้แบบอินไลน์ใน `https://AWS@` เนื่องจาก [เอกสาร AWS ไม่ทำเช่นนั้น](https://docs. aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html#get-login-password)
arjunbnair avatar
gb flag
สิ่งที่เกี่ยวกับ: `kubectl สร้างนักเทียบท่าลับ-รีจิสทรี aws-secret --docker-server=https://[email protected] --username=AWS --password=$ (aws ecr รับรหัสผ่านเข้าสู่ระบบ --region ap-south-1)` ??
arjunbnair avatar
gb flag
อย่างไรก็ตาม ฉันได้รับข้อผิดพลาดนี้: **ข้อผิดพลาด: ทั้ง --from-file หรือการรวมกันของ --docker-username, --docker-password และ --docker-server จำเป็น**
in flag
ฉันไม่รู้จะอธิบายยังไงดี ละเว้น `https://AWS@` จากพารามิเตอร์ `--docker-server` ของคุณ เนื่องจาก `--docker-username` เป็นที่ที่ชื่อผู้ใช้ไป ไม่ใช่แบบอินไลน์ใน https URL

โพสต์คำตอบ

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