ขั้นตอนที่ 1: เริ่มเซิร์ฟเวอร์ Kubernetes
ในขั้นตอนนี้ เราเรียกใช้เซิร์ฟเวอร์ Kubernetes ซึ่งเป็น minikube ที่บรรจุพ็อดไว้ในคอนเทนเนอร์ เราสามารถรัน minikube clustere ได้ด้วยการรันคำสั่งต่อไปนี้:
~$ เริ่ม minikubeเมื่อดำเนินการคำสั่ง minikube local cluster จะทำงานในแอปพลิเคชันของเรา
Minikube ใช้ VirtualBox เพื่อสร้างเครื่องเสมือนที่เข้าถึงได้ในเครื่อง เราสามารถปรับใช้คำสั่งหรือบริการของเราในคลัสเตอร์ Kubernetes ได้อย่างรวดเร็ว หลังจากนั้น เราทดสอบภายในเครื่องโดยใช้คลัสเตอร์ minikube Kubernetes
ขั้นตอนที่ 2: ดูรายการพ็อดทั้งหมดพร้อมกับรูปภาพในคลัสเตอร์
หากต้องการเรียกใช้คำสั่งเหล่านี้ คุณต้องติดตั้ง Kubectl บนระบบโลคัลของคุณ ในขั้นตอนนี้ เราจะเรียนรู้วิธีดูรายการรูปภาพที่ใช้โดยพ็อดในคลัสเตอร์และจัดเก็บไว้ในคอนเทนเนอร์ของเรา เราสามารถเรียกใช้คำสั่งต่อไปนี้ในเครื่องมือบรรทัดคำสั่ง Kubectl เพื่อรับรายการรูปภาพที่เก็บไว้
~$ kubectl รับพ็อด --เนมสเปซทั้งหมด -O jsonpath = '{range .items[]}{'\n'}{.metadata.name}{':\t'}{range .spec.containers[]}{.image}{', '}{end}{end }' | \> เรียงลำดับ
เมื่อดำเนินการคำสั่ง ผลลัพธ์จะปรากฏตามภาพหน้าจอต่อไปนี้:
คำสั่งนี้ดึงรายการพ็อดที่มีอยู่ในคลัสเตอร์ จากนั้นดึงข้อมูลรูปภาพทั้งหมดที่พบในเส้นทางนี้ หลังจากพบรูปภาพแล้ว คำสั่งยังจัดเรียงรูปภาพเหล่านี้ตามลำดับตัวอักษร สุดท้าย จะนับจำนวนรูปภาพที่มีอยู่ในคลัสเตอร์ของเรา คำสั่งนี้ส่งคืนเอาต์พุตในรูปแบบพาธ JSON เรามาพูดถึงส่วนต่างๆ ของคำสั่งทีละส่วน:
– -เนมสเปซทั้งหมด: เราสามารถดึงรายการพ็อดในเนมสเปซทั้งหมดในคลัสเตอร์ Kubernetes ของเราได้อย่างง่ายดาย ที่นี่มีการประกาศรูปภาพทั้งหมดของพ็อด
– o jsonpath=’: พารามิเตอร์นี้กำหนดรูปแบบของเอาต์พุต รูปแบบพาธ JSON เป็นไปตามคำสั่งที่กำหนด และแสดงชื่อพ็อดและอิมเมจคอนเทนเนอร์ รวมถึงรูปแบบเอาต์พุต รายการจะคั่นด้วยแท็บ และแต่ละพ็อดจะคั่นด้วยการแทรกบรรทัดใหม่
|: อย่างที่คุณเห็น คำสั่งใช้ '|' อักขระ. ใช้เพื่อถ่ายโอนเอาต์พุตไปยังคำสั่งผ่าน
เรียงลำดับ: พารามิเตอร์นี้จัดเรียงรูปภาพตามลำดับเฉพาะ
นี่คือคำอธิบายที่สมบูรณ์ของคำสั่ง หวังว่าคุณจะเข้าใจจุดประสงค์ของคำสั่งนี้ ดังที่เราเห็นในภาพหน้าจอ รายการพ็อดและรูปภาพจะแสดงและคั่นด้วยเครื่องหมายจุลภาค
ขั้นตอนที่ 3: รับรายการรูปภาพสำหรับพ็อดเฉพาะ
ในขั้นตอนนี้ เราจะเรียนรู้เกี่ยวกับการดึงอิมเมจของพ็อดที่ต้องการเท่านั้น เพื่อจุดประสงค์นี้ เราเรียกใช้คำสั่งอีกครั้งโดยระบุชื่อของพ็อดในเส้นทาง JSON เรียกใช้คำสั่งต่อไปนี้เพื่อดึงอิมเมจของพ็อดเฉพาะ
~$ kubectl รับพ็อด --เนมสเปซทั้งหมด -O jsonpath = '{.items[].spec.containers[].image}' -l แอป =nginxในคำสั่งนี้ เราใช้พ็อดชื่อ “app=ngnix”
เมื่อดำเนินการคำสั่ง รูปแบบเอาต์พุตพาธ JSON จะแสดงรายการอิมเมจคอนเทนเนอร์ทั้งหมดที่ใช้โดยพ็อดซึ่งมีชื่อว่า 'app-ngnix'
ด้วยวิธีนี้ เราสามารถรับรายการรูปภาพที่ใช้โดยพ็อดเฉพาะในเนมสเปซทั้งหมดในแอปพลิเคชัน Kubernetes ของเรา
ขั้นตอนที่ 4: รับรายการรูปภาพในเนมสเปซเฉพาะในคลัสเตอร์
นี่คือขั้นตอนที่สี่ของบทความที่เราเรียนรู้เกี่ยวกับวิธีรับรายชื่อรูปภาพเทียบกับเนมสเปซเฉพาะในคลัสเตอร์ Kubernetes เราเรียกใช้คำสั่งต่อไปนี้ในเครื่องมือบรรทัดคำสั่ง Kubectl ของเรา:
~$ kubectl รับพ็อด --เนมสเปซ ให้เป็นระบบ -O jsonpath = '{.items[].spec.containers[].image}'ในคำสั่งนี้ เราต้องการเรียกอิมเมจของเนมสเปซที่มีชื่อเป็น “ระบบ kube” ซึ่งใช้โดยพ็อดในคลัสเตอร์ Kubernetes ของเรา
รายการรูปภาพจะแสดงในเอาต์พุตที่สร้างขึ้นเมื่อดำเนินการคำสั่ง นี่คือภาพหน้าจอ:
รูปแบบพาธ JSON ของเอาต์พุตสามารถหาได้โดยการรันคำสั่ง แต่ละบรรทัดในเอาต์พุตเข้าใกล้อิมเมจคอนเทนเนอร์ซึ่งใช้โดยพ็อดในเนมสเปซ 'ระบบ kube' รูปแบบของเอาต์พุตแสดงโดยเทมเพลตพาธ JSON ที่ใช้ในคำสั่ง ในตัวอย่างนี้ เทมเพลต “.items[].spec.containers [].image” ส่งคืนอิมเมจคอนเทนเนอร์ที่ใช้โดยแต่ละพ็อดในเนมสเปซ
ขั้นตอนที่ 5: รับรายการรูปภาพของเนมสเปซทั้งหมดของเทมเพลต Go
ในขั้นตอนนี้ เราจะเรียนรู้กระบวนการดึงรายการรูปภาพของเนมสเปซทั้งหมดซึ่งใช้โดยพ็อดที่ใช้รูปแบบเอาต์พุต 'go template' ในคลัสเตอร์ Kubernetes สำหรับสิ่งนี้ เราใช้คำสั่งต่อไปนี้:
~$ kubectl รับพ็อด --เนมสเปซทั้งหมด -O ไปแม่แบบ --แม่แบบ = '{{range .ite ms}}{{range .spec.containers}}{{.image}} {{end}}{{end}}'ก่อนที่จะไปที่ผลลัพธ์ เรามาพูดถึงพารามิเตอร์ของคำสั่งกันก่อน เพื่อให้คุณมีความคิดว่าเราจะใช้พารามิเตอร์ต่างๆ ในคำสั่งของเราได้อย่างไร เราสามารถเริ่มต้นด้วยพารามิเตอร์ใหม่ที่ยังไม่ได้กล่าวถึงมาก่อน:
-o ไปแม่แบบ: นี่แสดงว่ารูปแบบเอาต์พุตต้องเป็นไปตามสัญกรณ์ 'go-template'
– - template=”{{ช่วง. รายการ}} {{ช่วง spec.containers}}{{.image}} {{end}}{{end}}”: สิ่งนี้จัดเตรียมเทมเพลตที่จะใช้สำหรับเอาต์พุต เทมเพลตนี้วนซ้ำตามรายการพ็อดที่ดึงอิมเมจคอนเทนเนอร์สำหรับแต่ละรายการ ผลลัพธ์คือรายการอิมเมจคอนเทนเนอร์ที่คั่นด้วยช่องว่างซึ่งใช้โดยพ็อดทั้งหมดในเนมสเปซทั้งหมดในคลัสเตอร์
เมื่อดำเนินการตามคำสั่งก่อนหน้า คุณจะได้รับผลลัพธ์ต่อไปนี้:
นี่คือขั้นตอนทั้งหมดที่เราสามารถดึงรายการรูปภาพที่พ็อดใช้ในคอนเทนเนอร์ Kubernetes ของเรา
บทสรุป
เราสรุปได้ว่าเราสามารถดึงรายการรูปภาพที่จัดเก็บไว้ในคอนเทนเนอร์ในแอปพลิเคชัน Kubernetes ได้อย่างง่ายดายด้วยความช่วยเหลือของเครื่องมือบรรทัดคำสั่ง kubectl ใน Kubernetes เราสามารถรับรายการรูปภาพด้วยวิธีการต่างๆ ทุกวิธีอธิบายไว้ชัดเจนเป็นขั้นเป็นตอน ตัวเลือก “–all เนมสเปซ” รับอิมเมจของเนมสเปซทั้งหมดที่ใช้โดยพ็อดซึ่งจัดเก็บไว้ในคอนเทนเนอร์และดึงข้อมูลได้ง่ายโดยการเรียกใช้คำสั่ง คุณสามารถทำตามขั้นตอนทั้งหมดสำหรับแอปพลิเคชันของคุณเพื่อรับรายการรูปภาพได้โดยการเรียกใช้คำสั่งในเครื่องมือบรรทัดคำสั่ง kubectl