การวินิจฉัย Customer Edge
Customer Edge (CE) คือโนด F5 Distributed Cloud ที่รีโพซิทอรีนี้จัดเตรียมขึ้นใน
Azure — terraform/modules/ce-node ซึ่งสร้างจากอิมเมจ
volterraedgeservices/volterra-node บนตลาดกลาง
โนดนี้รัน data plane (Argo), control plane (Vega), พร็อกซี Envoy, สแตก Kubernetes
และ vpm ซึ่งเป็นเอเจนต์ที่ลงทะเบียนโนดและจัดการทุกสิ่งอย่างอื่นบน
โนดนั้น
เมื่อ CE ทำงานผิดปกติ Site CLI คือเครื่องมือที่ใช้ การตัดสินใจแรกคือเส้นทางการเข้าถึงใดที่ใช้ได้ และหากเลือกผิดก็จะเสียเวลาไปในลักษณะที่ดูเหมือนว่าโนด เสียหาย
เส้นทางการเข้าถึงสี่แบบ และไม่สามารถใช้แทนกันได้
หัวข้อที่มีชื่อว่า “เส้นทางการเข้าถึงสี่แบบ และไม่สามารถใช้แทนกันได้”ONLINE. Scriptable, read-only, and covers 34 commands.debug API เข้าถึงโนด ผ่าน control plane ของ F5 Distributed Cloud
นั่นคือเหตุผลทั้งหมดที่การแยกแยะนี้สำคัญ: API สามารถตอบได้เมื่อโนดได้
ลงทะเบียนแล้วและรายงานสถานะ ONLINE เท่านั้น
โนดที่ลงทะเบียนไม่สำเร็จ — cloud-init ผิดพลาด, โทเคนหมดอายุ, ไม่มีเส้นทางไปยัง
register.ves.volterra.io — คือกรณีที่คุณต้องการการวินิจฉัยพอดี และ
เป็นกรณีที่ API ไม่สามารถให้บริการได้พอดีเช่นกัน
Site Console เป็นตัวเลือกที่ควรลองก่อนเมื่อคุณต้องการ UI สำหรับ
การแก้ปัญหาของ F5 เองมากกว่าคำสั่งเฉพาะเจาะจง มันเรียกร้องจากคุณน้อยที่สุด — ไม่ต้องใช้คีย์ ไม่ต้องใช้ jump
host ไม่ต้องมี public IP บนโนด — เพราะการกำหนดว่าใครเชื่อมต่อได้กลายเป็นการตัดสินใจของ Azure RBAC และ
มันตอบได้ไม่ว่าไซต์จะลงทะเบียนแล้วหรือไม่ มันต้องใช้ Azure Bastion ซึ่งการดีพลอย
นี้ควบคุมไว้ด้วย enable_bastion และไม่ได้ถูกดีพลอยโดยค่าเริ่มต้น
SSH เป็นเส้นทางเดียวที่เข้าถึงพื้นผิวคำสั่งทั้งหมดของแอปพลายแอนซ์ได้ —
debug API เปิดเผยคำสั่ง 34 คำสั่ง ในขณะที่ตัวโนดเองมีคำสั่งมากกว่านั้นอีกมาก มีสองสิ่งที่จำกัด
มัน sshd ตอบสนองเฉพาะบนที่อยู่ภายใน (SLI) ของโนดเท่านั้น จึงต้องมีโฮสต์อยู่ภายใน
VNet และคีย์ถูกเขียนโดย cloud-init ตอนบูตครั้งแรก เพราะฟิลด์ ssh_key บนอ็อบเจ็กต์
ไซต์นั้นไม่มีผล — vpm ข้ามผู้ใช้ admin และไม่เคยนำไปใช้ ดังนั้นการเปิดใช้งานบน
โนดที่กำลังทำงานอยู่จึงเท่ากับการแทนที่โนดเหล่านั้น
ดังนั้น: หากไซต์อยู่ในสถานะ ONLINE และคำสั่ง 34 คำสั่งเพียงพอ ให้ใช้ debug API หากต้องการ UI หรือสำหรับ
โนดที่ไม่เคยลงทะเบียนแต่ยังมีเส้นทางเครือข่ายอยู่ ให้ใช้ Site Console หากคุณต้องการพื้นผิวคำสั่ง
ส่วนที่เหลือและสามารถเข้าถึง VNet ได้ ให้ใช้ SSH หากโนดไม่มีเส้นทางเครือข่าย
ที่ใช้งานได้เลย serial console คือทางเดียวที่จะเข้าถึงได้
กฎด้านความปลอดภัย
หัวข้อที่มีชื่อว่า “กฎด้านความปลอดภัย”กฎเหล่านี้ใช้กับทุกคำสั่งในทุกหน้าด้านล่าง
- อ่านอย่างเดียวเว้นแต่คุณจะมั่นใจ พื้นผิวคำสั่งถูกแบ่งเป็นสองระดับ
สิทธิ์ และระดับ
Execนั้นไม่ว่าจะเปลี่ยนแปลงโนดหรืออ่านตัวบ่งชี้สถานะ ไม่มีสิ่งใดในหน้าเหล่านี้ที่รันคำสั่งExecและชุดเครื่องมือเก็บข้อมูลก็เช่นกัน - อย่าสันนิษฐานว่าคำสั่งปลอดภัยจากชื่อของมัน
ip-link-setอ่านดูเหมือน คำสั่งสอบถาม แต่มันปิดอินเทอร์เฟซsystemctl-restart-crioรีสตาร์ต container runtime ภายใต้ data plane ที่กำลังทำงานอยู่ - เลือกคำสั่งที่แคบที่สุดที่ตอบคำถามได้
healthและdiagnosisสรุปสถานะโนดได้อย่างประหยัด ในขณะที่flow-lดัมป์ทุก flow ที่กำลังทำงาน และflow-l-matchตอบคำถามเดียวกันสำหรับการเชื่อมต่อเดียว - CE ให้บริการทราฟฟิกจริง สภาพแวดล้อมเหล่านี้เป็นสภาพแวดล้อมสาธิตที่ใช้ร่วมกัน สันนิษฐานว่ามีใคร กำลังนำเสนอจากไซต์ที่คุณกำลังดีบักอยู่
สิ่งที่จัดทำเป็นเอกสารไว้ที่นี่
หัวข้อที่มีชื่อว่า “สิ่งที่จัดทำเป็นเอกสารไว้ที่นี่”ทุกคำสั่งที่เข้าถึงได้ผ่าน debug API บนซอฟต์แวร์บิลด์ที่เทแนนต์นี้รันอยู่ แต่ละคำสั่งมาพร้อมเอาต์พุตที่เก็บมาจากโนดจริง ไม่ใช่การคัดลอกมาจากที่อื่น
เอกสารอ้างอิงคำสั่ง แสดงรายการคำสั่งทั้งหมดพร้อมหมวดหมู่ ระดับสิทธิ์ และช่องทางการส่งข้อมูล ส่วนเวิร์กโฟลว์ ร้อยเรียงคำสั่งเหล่านั้นเป็นลำดับที่คุณ ใช้จริงเมื่อเกิดปัญหา
ส่วนของ Site CLI ที่ใช้ได้บนเครื่องเท่านั้น — configure, configure-network,
factory-reset, upgrade และคำสั่ง ExecCLI อีกประมาณหกสิบคำสั่ง — ไม่ได้
ครอบคลุมไว้ เพราะเอาต์พุตของคำสั่งเหล่านั้นยังไม่ได้ถูกเก็บมาจากโนดจริงในแบบเดียวกับทุก
หน้าด้านล่างนี้
อย่างไรก็ตาม คำสั่งเหล่านั้นไม่ได้อยู่เกินเอื้อมอีกต่อไป scripts/sitecli_ssh_harvest.py ขับเคลื่อน
เมนูเติมคำสั่งอัตโนมัติของแอปพลายแอนซ์ผ่าน SSH และบันทึกคำอธิบายที่
แอปพลายแอนซ์ให้ไว้สำหรับแต่ละคำสั่ง เพื่อให้พื้นผิวคำสั่งสามารถวัดได้ ไม่ใช่แค่คาดเดา
การทำงานของมันตั้งค่าเริ่มต้นเป็นปฏิเสธ — มันแจกแจงทุกอย่างแต่รันเฉพาะรายการที่อนุญาตไว้ —
เพราะไวยากรณ์คำสั่งที่ไม่ได้รับการยืนยัน และ ผลกระทบ ของคำสั่งที่ไม่ได้รับการยืนยัน คือข้อบกพร่องที่
เอกสารนี้มีอยู่เพื่อหลีกเลี่ยงการเกิดซ้ำ