JavaRush /จาวาบล็อก /Random-TH /Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่า...
Павел
ระดับ

Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร

เผยแพร่ในกลุ่ม
ทุกอย่างเริ่มต้นด้วยบรรจุภัณฑ์ ในการพัฒนาอุตสาหกรรม มีความจำเป็นต้อง "จัดทำแพ็กเกจ" แอปพลิเคชันที่ประกอบขึ้น เช่น เพื่อให้สามารถถ่ายโอนไปยังเซิร์ฟเวอร์ที่จะใช้งานได้ ในรูปแบบที่นักพัฒนารวบรวมไว้บนคอมพิวเตอร์ของเขา เช่น "บรรจุภัณฑ์" ควรทำหน้าที่เป็นเครื่องป้องกัน วิธีนี้จะช่วยลดความประหลาดใจ เช่น เมื่อแอปพลิเคชันทำงานระหว่างการทดสอบ แต่หยุดทำงานเมื่อถ่ายโอนไปยังการใช้งานจริง นอกจากนี้ “บรรจุภัณฑ์” ยังแยกแอปพลิเคชันหนึ่งจากอีกแอปพลิเคชันหนึ่งซึ่งอยู่บนเซิร์ฟเวอร์เดียวกัน การแยกดังกล่าวทำให้แอปพลิเคชันหนึ่งไม่รบกวนการทำงานของอีกแอปพลิเคชันหนึ่ง (ตัวอย่างเช่น: แอปพลิเคชันหนึ่งจะไม่สามารถเข้าครอบครอง RAM ของเซิร์ฟเวอร์ทั้งหมดได้ โดยปล่อยให้ การประยุกต์ใช้ครั้งที่สองกับชะตากรรม) ข้อดีของ "บรรจุภัณฑ์" ด้วยสถาปัตยกรรมไมโครเซอร์วิสนั้นเห็นได้ชัดเจนเป็นพิเศษและเป็นที่เข้าใจได้ มีไมโครเซอร์วิสมากมาย - แอปพลิเคชันขนาดเล็กจำนวนมากที่ต้องสื่อสารระหว่างกัน แต่ในขณะเดียวกันก็ไม่ควรรบกวนซึ่งกันและกัน ตัวอย่างคือตู้ลิ้นชัก (เซิร์ฟเวอร์) ซึ่งมีลิ้นชักที่แตกต่างกันมากมาย และเราสามารถย้ายถุงเท้าที่แตกต่างกันจากลิ้นชักหนึ่งไปอีกลิ้นชักหนึ่งได้อย่างง่ายดาย และในขณะเดียวกันก็จะไม่ปะปนกันหรือกับกางเกงชั้นใน Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 1 บรรจุภัณฑ์ถูกสร้างขึ้นโดยเครื่องมือเสมือนจริง กาลครั้งหนึ่ง เครื่องเสมือน (VM) ถูกใช้เป็น "บรรจุภัณฑ์" คนเฒ่าคนแก่จะจำได้ว่าพวกเขาปรับใช้ Windows XP บน Vista ในเครื่องเสมือนได้อย่างไร ตอนนี้ VM สำหรับแพ็คเกจแอปพลิเคชันกลายเป็นอดีตไปแล้ว โลกถูกครอบครองโดยตู้คอนเทนเนอร์ เนื่องจาก: เบากว่า มีประสิทธิผลมากกว่า และปลอดภัยกว่า รายละเอียดเพิ่มเติม: คอนเทนเนอร์แตกต่างจากเครื่องเสมือนอย่างไร Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 2 คุณต้องจำข้อดีบางประการของคอนเทนเนอร์: • มีขนาดเล็กกว่า (ใช้หน่วยความจำบนเซิร์ฟเวอร์น้อยกว่า); • สามารถเข้าถึงทรัพยากรเซิร์ฟเวอร์ที่ใช้ร่วมกัน (RAM, เวลาประมวลผลของโปรเซสเซอร์); • มีความสามารถในการพกพาไปยังสภาพแวดล้อมอื่นๆ ได้ดีขึ้น (ตั้งแต่การทดสอบจนถึงระดับอุตสาหกรรม) • ให้ความเร็วในการเปิดที่สูงขึ้น (เนื่องจากคอนเทนเนอร์มีน้ำหนักเบาจึงเปิดเร็วขึ้น) นักเทียบท่าเป็นแม่ของคอนเทนเนอร์ ถ้าพูดถึงคอนเทนเนอร์ แปลว่า Docker Docker เป็นซอฟต์แวร์สำหรับการปรับใช้และการจัดการแอปพลิเคชันในสภาพแวดล้อมแบบคอนเทนเนอร์โดยอัตโนมัติ จากตัวอย่าง Docker เป็นจุดผสมระหว่างนักออกแบบออนไลน์กับเครื่องพิมพ์ 3 มิติที่มีเครน นั่นคือเขาสามารถออกแบบเทมเพลต (รูปภาพ) สำหรับคอนเทนเนอร์ก่อน พิมพ์ (สร้าง) คอนเทนเนอร์ตามเงื่อนไขที่กำหนด (รูปภาพ) จากนั้นจึงย้ายไปยังทุกที่ที่ต้องการ Dockerfiles ถูกใช้แทนคันโยก กระบวนการจัดการนั้นง่ายดาย: คุณเขียนไฟล์ คำสั่ง รัน และดูว่าเกิดอะไรขึ้น Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 3 ความคุ้นเคยครั้งแรกกับ Docker Docker Compose - อัปเกรด Docker ตอนนี้เรามาดูสถานการณ์ที่จำเป็นต้องรันคอนเทนเนอร์หลายตัวในตำแหน่งเดียว ยูทิลิตี้ที่ใช้คือ Docker Compose Docker Compose เป็นเครื่องมือที่มาพร้อมกับ Docker ได้รับการออกแบบมาเพื่อแก้ไขปัญหาที่เกี่ยวข้องกับการปรับใช้โครงการ ความแตกต่างระหว่าง Docker และ Docker Compose: Docker ใช้เพื่อจัดการแต่ละคอนเทนเนอร์ Docker Compose ใช้เพื่อจัดการคอนเทนเนอร์หลายรายการพร้อมกัน เครื่องมือนี้มีความสามารถเช่นเดียวกับ Docker แต่ช่วยให้คุณสามารถทำงานกับโครงสร้างที่ซับซ้อนมากขึ้นได้ Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 4 สถานการณ์ทั่วไปสำหรับการใช้ Docker Compose: ลองนึกภาพว่าคุณเป็นนักพัฒนาโครงการเว็บ โครงการนี้มีสองเว็บไซต์ ช่องทางแรกช่วยให้นักธุรกิจสามารถสร้างร้านค้าออนไลน์ได้ด้วยการคลิกเพียงไม่กี่ครั้ง ประการที่สองมุ่งเป้าไปที่การสนับสนุนลูกค้า ไซต์ทั้งสองนี้โต้ตอบกับฐานข้อมูลเดียวกัน โปรเจ็กต์ของคุณกำลังได้รับความนิยมมากขึ้นเรื่อยๆ และปรากฎว่าพลังของเซิร์ฟเวอร์ที่โปรเจ็กต์ทำงานนั้นไม่เพียงพออีกต่อไป ด้วยเหตุนี้ คุณจึงตัดสินใจย้ายทั้งโปรเจ็กต์ไปยังเครื่องอื่น หากคุณไม่ได้ใช้ Docker Compose คุณจะต้องย้ายและกำหนดค่าคอนเทนเนอร์ใหม่ทีละรายการ โดยหวังว่าคุณจะไม่ลืมสิ่งใดในกระบวนการนี้ หากคุณใช้ Docker Compose การย้ายโปรเจ็กต์ของคุณไปยังเซิร์ฟเวอร์ใหม่เป็นเรื่องที่สามารถแก้ไขได้ด้วยการรันคำสั่งเพียงไม่กี่คำสั่ง เพื่อให้การโอนโปรเจ็กต์ไปยังตำแหน่งใหม่เสร็จสมบูรณ์ คุณจะต้องทำการตั้งค่าบางอย่างและอัปโหลดสำเนาสำรองของฐานข้อมูลไปยังเซิร์ฟเวอร์ใหม่ DockerComposer ทั่วไป: Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 5 สิ่งที่คุณต้องจำไว้ที่นี่: คอนเทนเนอร์เป็นวิธีหลักสำหรับแอปพลิเคชัน "บรรจุภัณฑ์" นักเทียบท่าจัดการคอนเทนเนอร์ สร้างอิมเมจคอนเทนเนอร์ หยิบและย้ายคอนเทนเนอร์ ในการจัดการคอนเทนเนอร์จำนวนมากพร้อมกัน จะใช้ Docker Compose ซึ่งรวมอยู่ใน Docker โปรแกรมเหล่านี้เป็นซอฟต์แวร์ฟรี (ของแจกฟรี) Kubernetes (K8s) - ระบบอัตโนมัติของนักเทียบ ท่า ดังนั้นเราจึงปรับใช้คอนเทนเนอร์ เรารู้วิธีถ่ายโอนพวกมัน "เป็นชุด" จากเครื่องหนึ่งไปอีกเครื่องหนึ่ง แต่ทันใดนั้นตู้คอนเทนเนอร์ใบหนึ่งก็หล่นลงมา! จะทำอย่างไร? ใครจะเลี้ยงมันอีกล่ะ? Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 6 แน่นอนคุณสามารถทำได้ด้วยตนเองผ่าน Docker แต่คุณต้องทำอะไรบางอย่าง เขียนอะไรบางอย่าง คุณต้องมีเครื่องมืออัตโนมัติบางอย่าง นี่คือที่มาของ Kubernetes (ตัวย่อ K8s) และยังจะจัดการกับการจัดการและการประสาน (การจัดการอัตโนมัติของเอนทิตีที่เกี่ยวข้อง) ของคอนเทนเนอร์ด้วย ด้วย K8 ที่มีอยู่ คุณไม่จำเป็นต้องตรวจสอบคอนเทนเนอร์ทั้งกลางวันและกลางคืน การกำหนดสถานการณ์พฤติกรรมก็เพียงพอแล้ว และ K8 จะทำทุกอย่างเอง คุณสมบัติหลักของ Kubernetes 1. ให้ความสามารถในการปรับขนาดและการจัดการการกำหนดค่าของคุณ 2. คุณสามารถอธิบายสิ่งที่คุณต้องการได้รับเมื่อปรับใช้คลัสเตอร์ และ K8 จะดำเนินการดังกล่าว เช่น ระบุจำนวนพ็อดจำนวนหน่วยความจำที่จะจัดสรรให้ ระบุจำนวนเรพลิกา (อินสแตนซ์) ของแอปพลิเคชันที่ใช้งาน (ในคอนเทนเนอร์) บนพ็อด 3. รับผิดชอบในการบำรุงรักษาระบบให้อยู่ในสถานะที่กำหนดหากมีสิ่งใดตก K8 จะหยิบขึ้นมาตามการกำหนดค่าที่กำหนดไว้ สิ่งที่คุณต้องจำไว้ที่นี่: Kubernetes เป็นเครื่องมือสำหรับประสานแอปพลิเคชันที่มีคอนเทนเนอร์ ทำให้การปรับใช้งาน การปรับขนาด และการประสานงานในคลัสเตอร์เป็นแบบอัตโนมัติ รองรับเทคโนโลยีการบรรจุคอนเทนเนอร์ที่สำคัญ รวมถึง Docker K8s เป็นซอฟต์แวร์โอเพ่นซอร์ส Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 7 OpenShift คือ Ferrari ในโลกของการจำลองเสมือน เจ๋ง รวดเร็ว และมีราคาแพง กำลังพัฒนาหัวข้อ เรามาต่อกันที่ OpenShift กันดีกว่า OpenShift เป็นส่วนเสริมของ Kubernetes ที่มีฟังก์ชันเพิ่มเติม พร้อมใช้งานทันที ไม่ต้องกำหนดค่าที่ยาวและยุ่งยาก และสามารถนำไปใช้จริงได้ทันที ดูว่ามีไอคอนที่แตกต่างกันกี่ไอคอนเหนือ Kubernetes และแต่ละคนก็ทำสิ่งเจ๋งๆ ของตัวเอง Docker, Kubernetes, OpenShift คือใคร และเกี่ยวข้องกันอย่างไร  - 8 ไฮไลท์ของ OpenShift: • เป็นผลิตภัณฑ์แบบชำระเงิน ไม่เหมือน K8; • DevOps พร้อมใช้งานทันที รองรับสถานการณ์การปรับใช้สีน้ำเงิน/เขียวขั้นพื้นฐาน • รองรับ Jenkins ในตัว; • จัดเตรียมเครื่องมือที่สะดวกสำหรับการจัดการและการทำงานกับคลัสเตอร์ • มีรูปแบบการรักษาความปลอดภัยที่เข้มงวดมากขึ้นและมีการตรวจสอบในตัว ควรเน้นย้ำอีกครั้งว่า OpenShift เป็นผลิตภัณฑ์แบบชำระเงิน ไม่เหมือน Kubernetes ความแตกต่างคือ: หากเราใช้ Kubernetes เพียงอย่างเดียว เราก็จะแก้ปัญหาทั้งหมดได้ด้วยตัวเอง หากเราพูดถึง OpenShift มันเป็นผลิตภัณฑ์ของ Red Hat ซึ่งแก้ปัญหาที่เกิดขึ้นใหม่โดยเป็นส่วนหนึ่งของการสนับสนุนแบบชำระเงิน สรุป: ในการพัฒนาอุตสาหกรรมมีความจำเป็นต้อง "จัดทำแพ็กเกจ" แอปพลิเคชัน แนวทางนี้มีความเกี่ยวข้องอย่างยิ่งในสถาปัตยกรรมไมโครเซอร์วิส ภาชนะบรรจุเป็นวิธีการหลักในการใช้งานบรรจุภัณฑ์ นักเทียบท่าจัดการคอนเทนเนอร์ สร้างอิมเมจคอนเทนเนอร์ หยิบและย้ายคอนเทนเนอร์ ในการจัดการคอนเทนเนอร์จำนวนมากพร้อมกัน จะใช้ Docker Compose ซึ่งรวมอยู่ใน Docker โปรแกรมเหล่านี้เป็นซอฟต์แวร์ฟรี Kubernetes(K8s) เป็นเครื่องมือสำหรับประสานแอปพลิเคชันที่มีคอนเทนเนอร์ ทำให้การปรับใช้ การปรับขนาด และการประสานงานในคลัสเตอร์เป็นแบบอัตโนมัติ รองรับเทคโนโลยีการบรรจุคอนเทนเนอร์ที่สำคัญ รวมถึง Docker K8s เป็นซอฟต์แวร์โอเพ่นซอร์ส OpenShift เป็นส่วนเสริมของ Kubernetes ที่มีฟังก์ชันการทำงานเพิ่มเติม นี่เป็นผลิตภัณฑ์แบบชำระเงิน ซึ่งแตกต่างจาก K8 ที่มีไว้สำหรับการใช้งานในองค์กร ให้ DevOps ทันที: รองรับสถานการณ์การปรับใช้งานหลัก สีน้ำเงิน/เขียว, canary, มีการสนับสนุนในตัวสำหรับ Jenkins และมอบเครื่องมือที่สะดวกสำหรับการจัดการและทำงานกับคลัสเตอร์ มีรูปแบบการรักษาความปลอดภัยที่เข้มงวดมากขึ้นและมีการตรวจสอบในตัว สำหรับผู้ที่อยากเขียนโค้ด: จัดทำแอปพลิเคชัน Spring Boot ลงในคอนเทนเนอร์ วิธีปรับใช้ Postgres ใน Docker และเชื่อมต่อกับแอปพลิเคชัน Spring-Boot การสัมมนา ผ่านเว็บ: นักเทียบท่า - วิธีทำงานกับคอนเทนเนอร์ได้อย่างไร - การพัฒนาแบ็กเอนด์ใน Java
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION