‫หากคุณไม่ได้มาจากการบรรยายครั้งที่แล้วในเรื่องนี้โดยตรง
‫ให้กลับไปที่การบรรยายก่อนหน้าเพื่อให้แน่ใจว่าคุณมีการปรับใช้ที่เหมาะสม
‫เพื่อให้คุณมีบันทึกที่เราจะมาดูที่นี่ในไม่กี่วินาที
‫เนื่องจากเรามี Apache Deployment ที่ทำงานอยู่เบื้องหลัง
‫และมีพ็อดสองพ็อดเพราะเราปรับขนาดแบบจำลองเป็นสองส่วน
‫เราควรจะทำ
‫kubectl รับฝักแล้วเห็นผล
‫แน่นอน ชื่อพ็อดของคุณจะแตกต่างไปจากของฉันเล็กน้อย
‫เพราะพวกเขาจะมีตัวเลขและอักขระสุ่มอยู่ที่ส่วนท้าย
‫เมื่อใดก็ตามที่ฉันพิมพ์
‫เพียงแค่รู้ว่าสองช่วงสุดท้ายที่คุณจะพิมพ์สิ่งที่แตกต่างขึ้นอยู่กับสิ่งที่กำลังแสดงการปรับใช้ของคุณ
‫มีคำสั่งบางอย่าง เช่นเดียวกับ
‫Swarm และ Docker ในกรณีนี้ คำสั่งเหล่านี้เป็นคำสั่งที่แตกต่างกันสำหรับการทำความเข้าใจว่าเกิดอะไรขึ้นในคอนเทนเนอร์
‫และสิ่งที่ผู้ประสานงานกำลังทำกับคอนเทนเนอร์
‫อันแรกคือบันทึก
‫อันที่สองคือคำอธิบาย
‫ในทางเทคนิคเราไม่มีคำสั่งตรวจสอบใน Kubernetes
‫แต่การอธิบายทำได้มากกว่านั้น
‫ขั้นแรก ให้ลองใช้คำสั่ง logs
‫ผลลัพธ์ของคุณอาจแตกต่างจากของฉันเล็กน้อย
‫คุณจะสังเกตเห็นว่าบรรทัดแรกหลังจากที่เราพิมพ์บันทึกการปรับใช้
‫/my-apache
‫มันบอกว่าพบพ็อดสองอันและใช้ชื่อพ็อด
‫มันให้ชื่อพ็อดเฉพาะที่นั่น
‫นั่นเป็นเพราะคำสั่งบันทึกเริ่มต้นจะไม่ดึงพ็อดที่แตกต่างกันทั้งหมดและรวมเข้าด้วยกันเหมือนกับที่คุณทำกับคำสั่ง
‫Docker หรือ Swarm โดยค่าเริ่มต้นเท่านั้นที่จะดึงหนึ่งในนั้น
‫Lke คำสั่งบันทึกอื่น ๆ ที่คุณเคยใช้ในหลักสูตรนี้
‫มีตัวเลือกมากมายรวมถึง --follow, --tail
‫สิ่งเหล่านี้เป็นเรื่องปกติสำหรับคำสั่งบันทึกในระบบ
‫Linux
‫หากเราทำคำสั่งเดียวกันกับ -- เพียงทำตาม มันจะรอให้สิ่งใหม่ปรากฏในบันทึกของพ็อดนั้น
‫จากนั้น
‫--tail, 1 ก็หมายถึงส่งคืนบรรทัดสุดท้ายเท่านั้น
‫ด้วยวิธีนี้คุณจะไม่ได้รับบันทึกจำนวนมาก
‫คุณสามารถควบคุม C ได้
‫จะทำอย่างไรถ้าคุณต้องการดูบันทึกรวมกันสำหรับพ็อดหลายรายการ
‫คุณสามารถทำได้อย่างแน่นอน นั่นไม่ใช่คำสั่งบันทึกเริ่มต้น
‫ในกรณีนี้
‫เราจะต้องใช้บางอย่างที่เรียกว่า Selector ใน Kubernetes ซึ่งเป็นเทคนิคในการจับพ็อดหลายรายการโดยอิงจากป้ายกำกับที่พวกเขาแชร์ทั้งหมด
‫สิ่งที่ดีที่นี่คือเมื่อคุณใช้คำสั่ง
‫kubectl run มันจะเพิ่มป้ายกำกับชื่อของ Deployment
‫ให้กับพ็อดทั้งหมดเหล่านี้โดยอัตโนมัติ
‫ดังนั้นเราจึงสามารถใช้ชื่อเดียวกันนั้นในการปรับใช้ Apache ของฉันเพื่อเลือกพ็อดทั้งหมดที่มีป้ายกำกับนั้น
‫โปรดทราบว่านี่เป็นเพียงการจับคู่ป้ายกำกับอย่างง่ายที่นี่
‫ดังนั้น
‫หากคุณมี Deployments หรือพ็อดอื่นๆ ที่มีป้ายกำกับนี้ พวกเขาก็จะถูกติดตามด้วยเช่นกัน
‫ดังนั้น
‫คุณจึงต้องระมัดระวังในการติดฉลากและการตั้งชื่อของคุณ
‫เราใช้ -l เพื่อระบุป้ายกำกับ
‫และระบุป้ายกำกับที่คำสั่ง
‫run ใช้ ซึ่งเป็น Apache ของฉัน
‫เช่นเดียวกับ Swarm และ Docker คำสั่งบันทึกเหล่านี้มีประโยชน์มากสำหรับการแก้ไขปัญหาอย่างรวดเร็ว
‫แต่ไม่สามารถแทนที่ระบบบันทึกแบบเต็มได้
‫ใน Kubernetes ตามค่าเริ่มต้น จะสามารถดึงพ็อดได้ครั้งละไม่เกินห้าพ็อดเท่านั้น
‫เมื่อใช้ประเภทตัวเลือกของการดึงในบันทึก
‫คุณสามารถเพิ่มได้เสมอ แต่ในความเป็นจริง การเก็บภาษีจากระบบเพื่อดึงไฟล์บันทึกเหล่านี้ออกจากโหนดต่างๆ
‫ทั้งหมด
‫ในการผลิต คุณจะต้องการระบบการบันทึกของบริษัทอื่นที่จะรวบรวมบันทึกเหล่านี้ทั้งหมดและจัดเก็บไว้เมื่อเวลาผ่านไปเพื่อให้สามารถดึงข้อมูลได้เร็วยิ่งขึ้น
‫นั่นเป็นความจริงสำหรับระบบจัดการคอนเทนเนอร์ทุกระบบ
‫ไม่ว่าจะเป็น Docker, Swarm หรือ Kubernetes
‫คำสั่งต่อไปที่นี่จะเป็นการอธิบายคำสั่ง
‫คำสั่งอธิบายในกรณีนี้คือตำแหน่งที่เราต้องการระบุพ็อดเอง
‫เราต้องการได้พ็อดที่เฉพาะเจาะจงมาก แต่เราต้องรู้ชื่อพ็อดเหล่านั้นก่อน
‫งั้นเอาฝักก่อน
‫จากนั้นเราสามารถคัดลอกและวางหนึ่งในชื่อเหล่านั้นลงในคำสั่งอธิบายได้
‫พิมพ์พ็อดก่อน
‫ฉันจะเอาฝักนั้นกลับคืนมา
‫ฉันไม่จำเป็นต้องระบุหนึ่งพ็อดนั้น
‫ฉันสามารถพูดได้ว่าพ็อดและมันจะแสดงพ็อดทั้งหมด ซึ่งอาจเป็นอันตรายเล็กน้อยถ้าคุณมีพ็อดจำนวนมาก
‫คุณสามารถอธิบายแหล่งข้อมูลอื่น ๆ ได้อย่างแน่นอนและรับผลลัพธ์ประเภทต่างๆ
‫ตามวัตถุนั้นกลับคืนมา
‫สิ่งที่ฉันต้องการเน้นที่นี่คือสิ่งนี้จะคล้ายกับคำสั่งตรวจสอบใน
‫Swarm หรือใน Docker เอง
‫แต่มันทำให้แสดงผลบนหน้าจอได้ดีกว่าใน
‫JSON เล็กน้อย
‫เมื่อคุณเลื่อนดูผลลัพธ์ คุณจะสังเกตเห็นว่าไม่ใช่แค่คำอธิบายเกี่ยวกับวัตถุต่างๆ
‫แต่ยังดึงข้อมูลต่างๆ เช่น เหตุการณ์ที่ด้านล่าง ซึ่งเป็นวิธีที่ดีในการรับสถานะอย่างรวดเร็วเกี่ยวกับความเป็นจริงในปัจจุบันของวัตถุนั้น
‫ดังนั้น ในกรณีที่คุณมีปัญหา บางทีกับพ็อดที่ดึงรูปภาพ
‫คุณจะเห็นเหตุการณ์นั้นที่นี่ซึ่งมันบอกว่าไม่สามารถดึงภาพได้
‫เป็นเรื่องปกติเมื่อคุณพิมพ์ชื่อรูปภาพหรืออะไรทำนองนั้นผิดโดยไม่ได้ตั้งใจ
‫วิธีนี้มีประโยชน์มากสำหรับเทคนิคการแก้ปัญหาอย่างรวดเร็วโดยไม่ต้องเปิดเหตุการณ์บางอย่างหรือบันทึกการดีบัก
‫ไม่เป็นไร. สำหรับสิ่งเล็กน้อยสุดท้ายนี้
‫ฉันจะแสดงให้คุณเห็นว่า Kubernetes นั้นยืดหยุ่นได้เหมือนกับ
‫Swarm โดยที่หากคุณลบระดับนามธรรมที่ต่ำกว่าระดับใดระดับหนึ่ง
‫ในกรณีนี้ หากคุณลบพ็อด ระดับนามธรรมที่สูงขึ้น การปรับใช้
‫และ ReplicaSet จะทำให้แน่ใจว่าพ็อดนั้นถูกสร้างขึ้นใหม่
‫ซึ่งคล้ายกับวิธีที่คอนเทนเนอร์หรืองานใน Swarm
‫หากคุณลบทิ้ง บริการจะถูกสร้างขึ้นใหม่
‫เราจะทำสิ่งนี้ในสองหน้าต่างที่แตกต่างกัน
‫ในหน้าต่างแรก เราจะใช้ get กับ -w
‫นั่นจะทำให้เรามีประสบการณ์คล้ายกับคำสั่ง
‫watch หากคุณเคยเห็นฉันใช้คำสั่ง
‫watch ในหลักสูตรนี้เพื่อดูคำสั่ง Linux ใด ๆ ซึ่งหมายถึงการเรียกใช้สิ่งนั้นในพื้นหลังและคุณสามารถทำได้ใน
‫Linux
‫แต่คำสั่ง watch นั้นอาจไม่สามารถใช้ได้ในทุกระบบปฏิบัติการ
‫ที่นี่เราสามารถทำ
‫kubectl รับพ็อด แต่เพิ่ม -w ซึ่งจะทำให้มันนั่งอยู่ที่นั่นและรีเฟรชทุก ๆ สองสามวินาที
‫ตอนนี้ เราสามารถไปที่เทอร์มินัลอื่นได้
‫เราจะลบหนึ่งในพ็อดเหล่านั้น
‫อันดับแรก. เราจะต้องคัดลอกชื่อและใช้
‫kubectl pod /ชื่อของพ็อด
‫คุณจะสังเกตเห็นว่ากำลังลบมัน
‫จากนั้นเราจะดำเนินการบันทึกเกี่ยวกับสิ่งที่กำลังเปลี่ยนแปลง
‫ฉันชอบสิ่งนี้มากกว่าคำสั่ง watch เล็กน้อยเพราะคำสั่ง
‫watch จะรีเฟรชหน้าจอ ซึ่งจะแสดงการเปลี่ยนแปลงซ้ำๆ อย่างต่อเนื่อง
‫ซึ่งค่อนข้างเรียบร้อย
‫ที่ด้านล่างสุด
‫ถ้าเราทำ kubectl อีกตัวได้พ็อด คุณจะเห็นว่าเรากลับไปเป็นสอง
‫อีกครั้ง นี่เป็นการเยียวยาตนเองของผู้ประสานเสียง
‫นั่นเป็นหนึ่งในเป้าหมายหลักของการมี
‫สุดท้ายนี้ ฉันต้องการจะชี้ให้เห็นบางสิ่งที่คุณอาจเคยได้รับการปกป้องในอดีตจากการทำบางสิ่งที่เป็นอันตรายใน
‫Docker a Swarm ซึ่งหากคุณพยายามเปลี่ยนแปลงบางสิ่งหรือลบสิ่งที่คุณไม่ควรทำ อาจเตือนคุณล่วงหน้า
‫เวลา.
‫Kubernetes มักจะตกอยู่อีกด้านหนึ่งซึ่งมีความคิดเห็นน้อยกว่าเล็กน้อยเกี่ยวกับวิธีการใช้งานของคุณ
‫ซึ่งหมายความว่าบางครั้งคุณสามารถทำสิ่งที่คุณไม่ควรทำ
‫เช่น ตัวอย่างของฉันก่อนหน้านี้ในการแก้ไข
‫ReplicaSet แทนที่จะแก้ไข Deployment ด้านบน
‫เช่นเดียวกับการเปลี่ยนพ็อดเมื่อคุณไม่ควรทำอย่างนั้นจริงๆ
‫คุณควรเปลี่ยนวัตถุที่อยู่เหนือมัน
‫นั่นเป็นการเน้นย้ำว่าคุณต้องเข้าใจเฉพาะสิ่งที่คุณกำลังทำเพื่อที่คุณจะได้ไม่เผลอลบ
‫เปลี่ยนแปลง หรือแก้ไขสิ่งที่ผิดในลำดับที่ไม่ถูกต้อง
‫อย่าลืมทำการ kubectl ลบการปรับใช้ my-apache
‫เพื่อล้างจากการบรรยายนี้