ใช้ภาชนะบรรจุภายในเครื่องเสมือนจริงหรือไม่?


15

ฉันเข้าใจว่าคอนเทนเนอร์มีน้ำหนักเบากว่า VM มากกว่าเพราะมันไม่ได้ทำเวอร์ชวลไลเซชันฮาร์ดแวร์ แต่เพียงแยกซอฟต์แวร์ที่ทำงานอยู่ในตู้ออกจากซอฟต์แวร์ที่ทำงานในคอนเทนเนอร์อื่นบนระบบ

สถานการณ์ของฉันเป็นเช่นนั้นฉันไม่สามารถที่จะซื้อเซิร์ฟเวอร์เพิ่มเติมและเซิร์ฟเวอร์ที่ฉันมีอยู่นั้นกำลังใช้ไฮเปอร์ไวเซอร์ทั้งหมด ฉันต้องจัดเตรียมอย่างน้อย 6 "เซิร์ฟเวอร์" เพื่อโฮสต์อินสแตนซ์ของแอปพลิเคชันเว็บที่ค่อนข้างเล็ก (แต่ละอินสแตนซ์สำหรับลูกค้ารายอื่น) มันจะเป็นการสิ้นเปลืองในการจัดเตรียม VM ใหม่สำหรับแต่ละเซิร์ฟเวอร์เหล่านี้ดังนั้นฉันวางแผนที่จะตั้งค่า 2 VM และทำอย่างใดอย่างหนึ่งต่อไปนี้:

  1. เรียกใช้หลายอินสแตนซ์ของแอปพลิเคชันบนแต่ละ VM โดยใช้โฮสต์เสมือน (apache) หรือ
  2. ตั้งค่าคอนเทนเนอร์บน VM ซึ่งจะทำให้ฉันสามารถแยกสภาพแวดล้อม

พิจารณาเรื่องนี้มีค่าใช้จ่ายที่ไม่สำคัญเล็กน้อยที่เกี่ยวข้องกับระบบคอนเทนเนอร์ที่จะทำให้เป็นความคิดที่ดีที่จะใช้มันใน VM หรือมีเหตุผลทางเทคนิคอื่น ๆทำไมฉันไม่ต้องการใช้ตู้คอนเทนเนอร์?

คำตอบ:


13

นักเทียบท่ามีน้ำหนักเบามากเมื่อเทียบกับ VM และระบบ VM ควรทำงานได้ดีกับภาชนะที่ใช้งาน ภาชนะแต่ละอันนั้นทำงานเป็นระบบแยกดังนั้นจึงดีมากสำหรับการแยกออกจากมุมมองของความเสถียรของระบบ จากคำอธิบายของคุณดูเหมือนว่ากรณีการใช้งานที่เหมาะสำหรับนักเทียบท่า หากคุณทำการทดลองกับ Docker ตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชันล่าสุดที่เป็นไปได้บางอันที่เก่ากว่ามีช่องโหว่ที่น่ารังเกียจอยู่บ้าง มีข้อควรพิจารณาด้านความปลอดภัยเมื่อใช้งาน Docker

SELinux - SELinux รับรู้คอนเทนเนอร์และจะสร้างป้ายกำกับ MCS แบบสุ่มสำหรับแต่ละคอนเทนเนอร์ สิ่งนี้ช่วยให้มั่นใจได้ว่าการแยกออกจากกันเนื่องจากคอนเทนเนอร์ LXC ไม่ได้รับการพิจารณาด้วยตัวเองอย่างแท้จริงแม้ว่าจะมีการปรับปรุงให้ดีขึ้นก็ตาม

USER Directive - ในแต่ละ Dockerfile ขอแนะนำให้ใช้แนวปฏิบัติที่ดีที่สุดในการใช้คำสั่ง USER และให้ผู้ใช้เรียกใช้เป็นบัญชีอื่นที่ไม่ใช่รูทซึ่งเป็นค่าเริ่มต้น catch ที่นี่คือผู้ใช้จะต้องมีอยู่ในระบบ นอกจากนี้ยังสามารถทำลายไฟล์และไดเรกทอรี chowning / chmodding สำหรับผู้ใช้ใหม่นี้ แต่ช่วยลดความเสี่ยงของคุณ ฉันมักจะแนะนำให้คุณสร้าง "containeruser" หรืออะไรทำนองนั้นในระบบของคุณเพื่อช่วยให้แน่ใจว่าผู้ใช้ทั่วไปสามารถใช้งานได้ในทุกระบบที่ไม่ทับซ้อนกับส่วนอื่น ๆ ของระบบ

มิฉะนั้นส่วนที่ยากที่สุดคือการจัดการภาชนะบรรจุและอัปเดตเมื่อจำเป็น


3

มีค่าใช้จ่ายที่ไม่เกี่ยวข้องเล็กน้อยกับระบบคอนเทนเนอร์ที่จะทำให้เป็นความคิดที่ดีที่จะใช้มันใน VM

ไม่เทียบท่าตู้คอนเทนเนอร์ผลการดำเนินงานใน VMware vSphereช่วยคุณได้อย่างไร

หรือมีเหตุผลทางเทคนิคอื่น ๆ ทำไมฉันไม่ต้องการใช้ตู้คอนเทนเนอร์?

ฉันไม่รู้เกี่ยวกับนักเทียบท่าโดยทั่วไปเพราะฉันยังไม่ได้ทำงานด้วย ฉันคิดว่าซอฟต์แวร์การจัดการยังขาดความเป็นผู้ใหญ่เมื่อเทียบกับซอฟต์แวร์การจัดการ VM ... แต่ฉันเป็นผู้ดูแลระบบ vSphere และอาจมีอคติ

เมื่อพิจารณาจาก Docker บน VMs ตอนนี้ CoreOS ได้รับการสนับสนุนอย่างเป็นทางการใน vSphere 5.5แล้ว ดังนั้นอย่างน้อย VMware จึงคิดว่า Docker / container บน VMs นั้นใช้ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.