วิธีที่ง่ายที่สุดในการสร้างและอัปเดตความลับของนักเทียบท่า-รีจิสทรีใน Rancher 2.x สำหรับ AWS ECR repo คือการตั้งค่างาน CRON ที่ใช้ AWS CLI และ Kubectl
- ล็อกอินเข้าสู่เครื่องโฮสต์ที่คลัสเตอร์ทำงานอยู่
- ติดตั้ง AWS CLI และกำหนดค่าเพื่อใช้บทบาท IAM ที่สามารถอ่านข้อมูลรับรอง ECR
- ทดสอบการกำหนดค่า CLI โดยใช้คำสั่งนี้:
aws ecr --region <your_ecr's_region> รับรหัสผ่านเข้าสู่ระบบ
- ติดตั้ง kubectl และกำหนดค่าด้วย yaml สำหรับคลัสเตอร์ที่คุณต้องการกำหนดความลับ จากนั้นเรียกใช้
kubectl รับพ็อด
เพื่อให้แน่ใจว่าทุกอย่างเรียบร้อยดี
- สร้างเชลล์สคริปต์เช่นนี้ (จำเป็นต้องลบเนื่องจากด้วยเหตุผลบางประการ ไม่มีทางที่จะอัปเดต/เขียนทับความลับได้):
kubectl ลบข้อมูลลับ <name_of_the_docker_registry_secret>
kubectl สร้างนักเทียบท่าลับ - รีจิสทรี <name_of_the_docker_registry_secret> \
--docker-server=<your_ecr_registry_uri> \
--docker-ชื่อผู้ใช้ = AWS \
--docker-password=$(aws ecr --region <your_ecr's_region> รับรหัสผ่านเข้าสู่ระบบ) \
--docker-email=<your_notification_email>
- ตั้งค่างาน cron เพื่อเรียกใช้เชลล์สคริปต์นี้ทุกๆ 6 ชั่วโมง (AWS จะรีเซ็ตรหัสผ่านทุกๆ 12 ชั่วโมง ดังนั้นเพื่อความปลอดภัย)
ข้อมูลลับจะแสดงในโครงการเริ่มต้นสำหรับคลัสเตอร์และจะใช้ได้ทุกเมื่อที่ Kubernetes ต้องการทำบางอย่างที่เกี่ยวข้องกับการลงทะเบียน ECR ของคุณ