‫ตกลงดังนั้นสิ่งที่ฉันจะทำคือฉันจะเดินผ่านแต่ละบริการเหล่านี้ตามสถาปัตยกรรมนี้และฉันจะสร้างแอพนี้ทันที
‫ที่จริงฉันจะพิมพ์คำสั่งในที่นี่ใน readme เพราะนั่นดูเหมือนจะเป็นเหตุผลที่ฉันจะทำ แล้วฉันจะตัดและวางลงในโหนดของฉัน
‫ถ้าคุณจำได้ฉันมี Swarm แบบ 3 โหนดที่นี่
‫หากฉันทำโหนดตัวเทียบท่าคุณจะเห็นว่าฉันมีสามโหนดที่นี่ พวกมันคือโหนดของผู้จัดการทั้งหมด
‫ฉันไม่มีตู้คอนเทนเนอร์ที่ทำงานอยู่และไม่มีบริการใด ๆ
‫สิ่งแรกฉันรู้ที่ด้านบนมันพูดถึงฉันต้องการเครือข่ายและฉันต้องการไดรฟ์
‫ดังนั้นอาจทำให้เครือข่ายหลุดออกไปได้และฉันก็สามารถเชื่อมต่อได้
‫ฉันสามารถพิมพ์นักเทียบท่าเครือข่ายสร้างการซ้อนทับ โปรดจำไว้ว่าเครือข่ายโอเวอร์เลย์เป็นเครือข่ายประเภทเดียวที่เราสามารถใช้ใน
‫Swarm เพราะการซ้อนทับช่วยให้เราสามารถขยายข้ามโหนราวกับว่าพวกเขาทั้งหมดในเครือข่ายท้องถิ่น
‫แล้วฉันต้องการเรียกมันว่าแบ็กเอนด์
‫และจากนั้นฉันต้องการทำสิ่งที่แน่นอนเดียวกันเพียงเรียกว่าส่วนหน้า
‫ตอนนี้ไม่มีอะไรพิเศษเป็นพิเศษเกี่ยวกับเครือข่ายทั้งสองนี้
‫เรากำลังจะแบ่งกลุ่มบริการที่แตกต่างของเราเป็นหนึ่งหรือบริการอื่น ๆ เพื่อช่วยทำหน้าที่เหมือนไฟร์วอลล์ตัวเล็ก ๆ
‫ที่แยกออกมาเพื่อการป้องกัน
‫ในการลงคะแนนเสียงครั้งนี้ฉันรู้ว่าฉันต้องสร้างบริการนักเทียบท่าและฉันต้องตั้งชื่อมันดังนั้นฉันจึงอาจใส่ชื่อการลงคะแนน
‫จากนั้นฉันต้องเผยแพร่พอร์ต 80 ถึง 80 ในคอนเทนเนอร์และต้องอยู่บนเครือข่ายเฉพาะ ดังนั้นเครือข่ายส่วนหน้า
‫ฉันต้องการแบบจำลองสองอัน
‫ดังนั้นจำลองสอง จากนั้นฉันก็อาจคัดลอกและวางชื่อนี้
‫ตอนนี้ฉันจะไปข้างหน้าและสร้างสิ่งเหล่านี้ก่อนที่ฉันจะปรับใช้พวกเขาจริง
‫ฉันจะคัดลอกอันนี้ลงไปที่นี่จริง ๆ อันนี้จะถูกเรียกว่า ... มันจะไม่ถูกเรียกว่าการลงคะแนน แต่มันจะถูกเรียกว่า
‫redis
‫คุณไม่ต้องกังวลกับการเผยแพร่พอร์ตใด ๆ
‫มันจะเป็นในเครือข่ายส่วนหน้า
‫ฉันต้องการแบบจำลองสองอันจากนั้นฉันจะเรียกมันว่า redis สามสองคือรูป
‫ลงไปที่นี่บริการนักสร้างนักสร้างชื่อจะเป็นบนเครือข่ายสองแห่ง ฉันต้องทำส่วนหน้าของเครือข่ายและ ...
‫ขออภัย
‫ฉันกำลังพิมพ์สิ่งที่ฉันกำลังพูด ... มาดูเครือข่ายแบ็กเอนด์แล้วแบบจำลองเดียวเท่านั้น
‫…เนื่องจากแบบจำลองหนึ่งเป็นค่าเริ่มต้นฉันจึงไม่จำเป็นต้องระบุแบบจำลองและฉันไม่ได้ระบุพอร์ตใด ๆ
‫ฉันคิดว่านั่นคือทั้งหมดที่ฉันต้องการ ฉันต้องการคัดลอกรูปภาพ
‫โอเคบริการนักเทียบท่าสร้างแบ็กเอนด์เครือข่ายชื่อ db
‫ดูหนึ่งแบบจำลอง
‫โอ้ฉันต้องทำหนังสือเล่มนี้
‫นี่คือสิ่งที่เกี่ยวกับปริมาณ คำสั่ง -v เข้ากันไม่ได้กับบริการนักเทียบท่า เพราะด้วยเหตุผลหลายประการบริการต่าง
‫ๆ จะมีความซับซ้อนมากกว่าการใช้งานนักเทียบท่าทั่วไปของคุณ
‫และมีปัญหาและข้อ จำกัด กับ -v ย้อนกลับไปในวันนั้น
‫ดังนั้นนักเทียบท่าได้เรียนรู้จากสิ่งนั้นและปรับปรุงรูปแบบ
‫แต่มันก็เป็นสิ่งที่ละเอียดมากขึ้นและอาจเป็นเรื่องยากที่จะจำรูปแบบที่เริ่มต้นขึ้น
‫นอกจากนี้ยังเกิดขึ้นกับเอกสารที่ไม่ได้อยู่ในเอกสาร Docker เพราะมันเป็นคำสั่งน้อยกว่าหนึ่งปี
‫ดังนั้นเราจะคัดลอกและวางสิ่งนี้
‫ถ้ามันไม่สมเหตุสมผลสำหรับคุณโดยทั่วไปแล้วนี่คือรายการของค่าที่เป็นส่วนหนึ่งของคำสั่ง mount เดียวและค่าต่ำสุดคือประเภทแหล่งที่มาและเป้าหมาย
‫นอกจากนี้ยังมีสิ่งอื่น ๆ ที่คุณสามารถเพิ่มได้ แต่สิ่งเหล่านี้เป็นเพียงสามสิ่งที่เราต้องการในสถานการณ์นี้
‫และคุณสามารถเห็นแหล่งที่มาของฉันเป็นเพียงโวลุ่มที่มีชื่อเพราะฉันไม่มีเครื่องหมายสแลชใด ๆ
‫และถ้าเรามีการทับมันจะเป็นตัวยึดและเราจะต้องระบุประเภทที่แตกต่างกัน
‫ดังนั้นลงมาที่นี่ - ปริมาณประเภทเมานต์ข้อมูล db แหล่งที่มาเป้าหมาย
‫ฉันคิดว่าถูกต้อง
‫และจากนั้นคุณสามารถเพียง postgres 9 4
‫และอันสุดท้ายคือแอพผลลัพธ์
‫ดังนั้นบริการนักเทียบท่าสร้างแบ็กเอนด์เครือข่ายผลชื่อ
‫เผยแพร่พอร์ต เราจะใช้ 5001 ถึงพอร์ต 80 ในคอนเทนเนอร์
‫ฉันสามารถเรียกใช้หนึ่งในนั้น โดยเหตุผลเดียวที่เราใช้งานหนึ่งในนั้นคือปัญหาที่ทราบเล็กน้อยในแอพนี้นั่นคือการใช้
‫WebSockets จริง ๆ และ WebSockets เป็นสิ่งที่ต้องใช้การเชื่อมต่อแบบถาวร
‫ดังนั้นใน mesh routing เราไม่ได้ทำ
‫WebSockets ได้ดีนักเพราะมันจะทำให้คุณสลับไปมาระหว่างคอนเทนเนอร์ต่าง ๆ และ WebSocket นั้นจะต้องเป็นคอนเทนเนอร์ที่เจาะจงเสมอ
‫ดังนั้นด้วยแอพนี้สิ่งที่เราควรมีจริง ๆ คือพร็อกซีที่อยู่ข้างหน้า แต่มันไม่ได้อยู่ในแอพนี้
‫แต่อาจจะเป็นรุ่นต่อมาพวกเขาจะอัปเดตและแก้ไขมันเพื่อให้เรามีพร็อกซี
‫ด้วยวิธีนี้สามารถซ้ำซ้อนและตรวจสอบให้แน่ใจว่าคุณได้รับภาชนะที่เหมาะสม
‫เรากำลังจะคัดลอกและวางสิ่งนี้จนถึงที่สุด ฉันเพิ่งรู้ว่าฉันพลาดคุณค่าสุดท้ายของสิ่งเหล่านี้
‫โอเคแล้วฉันจะเริ่มต้นที่ด้านบนและเพียงคัดลอกและวาง มันสร้างขึ้นแล้วในเครือข่าย
‫ใช่ต้องเป็นแบบจำลอง ขอผมอัพเดทมันตรงนี้นะ
‫จำลอง โอเคเราจะสร้าง redis เราจะไปที่นั่น.
‫เอาล่ะสร้างสิ่งนั้นขึ้นมา ตอนนี้คุณจะสังเกตเห็นว่าฉันได้รับ ID บริการกลับมา
‫แต่ไม่ได้หมายความว่าบริการนั้นได้รับการปรับใช้อย่างถูกต้อง
‫เราจะดูว่าในหนึ่งนาที
‫ขอผมได้ส่วนที่เหลือจากตรงนี้
‫เอาล่ะ
‫ตอนนี้เรามีสิ่งนั้นแล้วเราน่าจะสามารถทำตามคำสั่งที่เหลือของเราได้ที่นี่ ดังนั้นบริการท่าเทียบเรือแสดงให้เราเห็นพวกเขาทั้งห้าคน
‫และคุณจะสังเกตเห็นว่าหมายเลขจำลองตรงกัน
‫นั่นเป็นสัญญาณที่ดี
‫นั่นหมายความว่ามีการสร้างสำเร็จ
‫และถ้าฉันต้องการที่จะขุดลึกฉันสามารถทำบริการนักเทียบท่า ps ในแต่ละคน
‫เอาล่ะวิ่งไปเรื่อย ๆ 28 วินาที
‫Redis ทำงานเป็นเวลาหนึ่งนาที db กำลังทำงาน 53 วินาที โหวต
‫ผู้ปฏิบัติงาน
‫และคุณจะเห็นที่นี่ในผู้ปฏิบัติงานว่าเรามีงานที่ล้มเหลวที่ปิดตัวลงและจากนั้นคนที่ทำงานอยู่
‫นั่นทำงานมาแล้ว 47 วินาที
‫ตกลงดังนั้นฉันจริง ๆ รู้ว่าทำไมสิ่งนี้เกิดขึ้น แต่คุณอาจไม่รู้ดังนั้นบางทีเราอาจต้องทำบันทึก
‫ตอนนี้อยู่บน node2
‫ฟีเจอร์การทดลองที่คุณสามารถเปิดใช้งานผ่านการกำหนดค่าเพิ่มเติมใน Docker
‫คือการทำฟีเจอร์การทดลองใหม่บันทึกการใช้บริการนักเทียบท่า ซึ่งจริง ๆ แล้วดึงล็อกจากโหนดต่าง ๆ มากมาย
‫หวังว่ามันจะวางจำหน่ายใน Docker เวอร์ชั่นถัดไปในปีนี้
‫แต่สำหรับตอนนี้มันเป็นการทดลอง ดังนั้นฉันต้องเปิดใช้งานภายในบันทึก etc docker daemon หรือ daemon
‫ไฟล์ json และอย่างที่คุณรู้นี่คือวิธีที่คุณจะเปิดใช้งานการทดลอง
‫นั่นไม่ใช่ส่วนหนึ่งของสิ่งนี้
‫นั่นเป็นเพียงสิ่งที่ฉันทำเพื่อที่ฉันจะได้แสดงให้เห็นถึงความรวดเร็วอย่างแท้จริง
‫คุณอาจเห็นข้อผิดพลาดนี้และคุณกำลังคิดฉันไม่รู้ว่าเกิดอะไรขึ้น
‫เราสามารถดูบันทึกนั้น ดังนั้นเราสามารถทำบริการบันทึกนักเทียบท่า ... โอ๊ะโอ ... คนงานบันทึก
‫และนี่คือโดยเฉพาะอย่างยิ่งนี้มาดูกันสองคนนี้ต่างกัน ...
‫คุณสามารถดูที่นี่นี่คือหนึ่งและจากนั้นการเปลี่ยนแปลงจำนวน ที่จริงแล้วใช่
‫นี่คือทั้งหมดที่นี่
‫มันบอกว่าไม่มีอุปกรณ์หรือที่อยู่ดังกล่าว
‫ดังนั้นสิ่งนี้ก็คือฉันสร้างบริการที่กำลังมองหาระเบียน DNS ที่ไม่มีอยู่เพราะฉันยังไม่ได้สร้างบริการอื่น
‫และมันก็ทำสิ่งที่ควรจะทำใน "Dockerland" ซึ่งก็คือเมื่อมันมีข้อผิดพลาดเช่นนั้นแอปจะทำงานล้มเหลวเพราะ Docker สามารถรีสตาร์ทและปรับใช้สิ่งต่าง
‫ๆ ได้อย่างถูกต้องจนกระทั่งแอพไม่ทำงาน
‫และทันทีที่ฉันเปิดตัวบริการทั้งหมดทุกอย่างก็หยุดทำงานและทุกอย่างก็ทำงานได้แล้ว
‫และเราสามารถบอกได้ว่าเพียงแค่กลับไปดูที่คนงาน ps เราเห็นว่ามันทำงานได้สำเร็จเป็นเวลาสามนาที
‫ลองดูที่แอพของเรา
‫หากฉันดึงที่อยู่ IP ขึ้นมาฉันควรนำสุนัขและแมวมาด้วย ฉันจะลงคะแนนให้แมว
‫และถ้าฉันไปที่ IP เดียวกันบนพอร์ต 5001 ฉันควรเห็นแอปผลลัพธ์ นั่นคือแอพ
‫ตอนนี้เรารู้ว่ามันใช้งานได้เพราะวิธีเดียวที่สิ่งนี้สามารถเปลี่ยนแปลงได้คือถ้าสิ่งนี้ผ่านไปได้ทุกเมื่อเมื่อมันถูกดักจับโดย
‫redis แล้วประมวลผลโดยผู้ปฏิบัติงานและจากนั้นใส่ลงในฐานข้อมูล
‫ดังนั้นเราจึงรู้ว่าบริการแอพของเราแต่ละคนสามารถพูดคุยกันได้ และเราสามารถดูบันทึกถ้าเราต้องการ
‫แต่นั่นคือตัวอย่าง