JavaRush /Blog Java /Random-VI /Docker, Kubernetes, OpenShift là ai và chúng có liên quan...
Павел
Mức độ

Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?

Xuất bản trong nhóm
Tất cả bắt đầu với bao bì. Trong quá trình phát triển công nghiệp, cần phải “đóng gói” ứng dụng đã được lắp ráp, chẳng hạn để nó có thể được chuyển đến máy chủ nơi nó sẽ hoạt động, dưới dạng mà nhà phát triển đã lắp ráp nó trên máy tính của mình, chẳng hạn như “đóng gói” nên phục vụ như một loại bảo vệ. Điều này giúp loại bỏ những bất ngờ, chẳng hạn như khi một ứng dụng hoạt động trong quá trình thử nghiệm nhưng lại bị hỏng khi chuyển sang sản xuất. Ngoài ra, "đóng gói" cách ly ứng dụng này với ứng dụng khác, nằm trên cùng một máy chủ, việc cách ly như vậy cho phép một ứng dụng không can thiệp vào công việc của ứng dụng khác (ví dụ: một ứng dụng sẽ không thể chiếm toàn bộ RAM của máy chủ, khiến ứng dụng thứ hai cho số phận của nó). Ưu điểm của việc “đóng gói” bằng kiến ​​trúc microservice đặc biệt dễ nhận thấy và điều này cũng dễ hiểu, có rất nhiều microservice - nhiều ứng dụng nhỏ phải giao tiếp với nhau nhưng đồng thời không được can thiệp lẫn nhau. Một ví dụ là một chiếc tủ có nhiều ngăn kéo (máy chủ), trong đó có nhiều ngăn kéo khác nhau, chúng ta có thể dễ dàng di chuyển các loại tất khác nhau từ ngăn kéo này sang ngăn kéo khác, đồng thời chúng sẽ không lẫn lộn với nhau hoặc với quần lót. Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 1 Bao bì được tạo ra bởi các công cụ ảo hóa. Ngày xửa ngày xưa, máy ảo (VM) được sử dụng làm “đóng gói”. Người già sẽ nhớ cách họ triển khai Windows XP trên Vista trên máy ảo. Bây giờ VM cho việc đóng gói ứng dụng đã là chuyện quá khứ. Thế giới đã bị chiếm lĩnh bởi container. Bởi vì chúng: nhẹ hơn, hiệu quả hơn và an toàn hơn. Chi tiết hơn: container khác với máy ảo như thế nào? Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 2 Bạn cần nhớ một số ưu điểm của container: • chúng có kích thước nhỏ hơn (chiếm ít bộ nhớ trên máy chủ); • có quyền truy cập vào tài nguyên máy chủ dùng chung (RAM, thời gian tính toán của bộ xử lý); • có khả năng di chuyển tốt hơn tới các môi trường khác (từ thử nghiệm đến công nghiệp); • cung cấp tốc độ phóng cao hơn (vì thùng chứa nhẹ nên khởi chạy nhanh hơn). Docker là mẹ của container. Khi họ nói container, họ có nghĩa là Docker. Docker là phần mềm tự động hóa việc triển khai và quản lý ứng dụng trong môi trường được đóng gói. Sử dụng các ví dụ, Docker là sự kết hợp giữa một nhà thiết kế trực tuyến và một máy in 3D có cần cẩu. Nghĩa là, trước tiên anh ta có thể thiết kế một mẫu (hình ảnh) cho một thùng chứa, in (tạo) thùng chứa theo các điều kiện (hình ảnh) nhất định, sau đó di chuyển nó đến bất cứ nơi nào cần thiết. Dockerfiles được sử dụng thay vì đòn bẩy. Quá trình quản lý rất đơn giản: bạn viết tệp, lệnh, chạy chúng và xem điều gì sẽ xảy ra. Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 3 Lần đầu làm quen với Docker Docker Compose - Docker được nâng cấp Bây giờ hãy xem xét một tình huống trong đó nhiều vùng chứa cần chạy ở một vị trí. Tiện ích được sử dụng cho việc này là Docker Compose. Docker Compose là một công cụ đi kèm với Docker. Nó được thiết kế để giải quyết các vấn đề liên quan đến việc triển khai dự án. Sự khác biệt giữa Docker và Docker Compose: Docker được sử dụng để quản lý các vùng chứa riêng lẻ. Docker Compose được sử dụng để quản lý nhiều vùng chứa cùng một lúc. Công cụ này cung cấp các khả năng tương tự như Docker nhưng cho phép bạn làm việc với các cấu trúc phức tạp hơn. Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 4 Kịch bản điển hình khi sử dụng Docker Compose: Hãy tưởng tượng rằng bạn là nhà phát triển một dự án web. Dự án này bao gồm hai trang web. Việc đầu tiên cho phép người kinh doanh tạo các cửa hàng trực tuyến chỉ bằng vài cú nhấp chuột. Thứ hai là nhằm hỗ trợ khách hàng. Hai trang web này tương tác với cùng một cơ sở dữ liệu. Dự án của bạn ngày càng trở nên phổ biến và hóa ra sức mạnh của máy chủ nơi nó chạy không còn đủ nữa. Kết quả là bạn quyết định chuyển toàn bộ dự án sang một máy khác. Nếu chưa sử dụng thứ gì đó như Docker Compose thì bạn sẽ phải di chuyển và định cấu hình lại từng vùng chứa một, hy vọng rằng bạn sẽ không quên bất cứ điều gì trong quá trình này. Nếu bạn sử dụng Docker Compose thì việc di chuyển dự án của bạn sang máy chủ mới là vấn đề có thể được giải quyết bằng cách chạy một vài lệnh. Để hoàn tất việc chuyển dự án sang vị trí mới, bạn chỉ cần thực hiện một số cài đặt và tải bản sao lưu của cơ sở dữ liệu lên máy chủ mới. DockerComposer điển hình: Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 5 Điều bạn cần nhớ ở đây: Container là phương tiện chính để “đóng gói” ứng dụng. Docker xử lý các container, tạo image container, nhặt và di chuyển các container. Để quản lý đồng thời nhiều vùng chứa, Docker Compose được sử dụng, có trong Docker. Các chương trình này là phần mềm miễn phí (quà tặng miễn phí - nói một cách ngắn gọn) Kubernetes (K8s) - Tự động hóa Docker Và vì vậy, chúng tôi đã triển khai các thùng chứa, chúng tôi biết cách chuyển chúng “theo đợt” từ máy này sang máy khác. Nhưng đột nhiên một trong những container rơi xuống! Phải làm gì? Ai sẽ nuôi nó lần nữa? Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 6 Tất nhiên, bạn có thể thực hiện việc này một cách thủ công thông qua Docker. Nhưng bạn phải làm điều gì đó, viết điều gì đó, bạn cần một loại công cụ tự động hóa nào đó. Đây là lúc Kubernetes (viết tắt là K8s) xuất hiện, nó cũng sẽ xử lý việc quản lý và điều phối (quản lý tự động các thực thể liên quan) của các container. Với K8 tùy ý sử dụng, bạn không cần phải giám sát các thùng chứa cả ngày lẫn đêm. Chỉ cần xác định kịch bản hành vi là đủ và K8 sẽ tự làm mọi việc. Các tính năng chính của Kubernetes 1. Cung cấp khả năng mở rộng và quản lý cấu hình của bạn. 2. Bạn có thể mô tả những gì bạn muốn nhận được khi triển khai một cụm và K8 sẽ thực hiện điều đó. Ví dụ: chỉ định số lượng nhóm, phân bổ bao nhiêu bộ nhớ cho chúng, cho biết số lượng bản sao (phiên bản) của ứng dụng được triển khai (trong vùng chứa) trên nhóm. 3. Chịu trách nhiệm duy trì hệ thống ở trạng thái nhất định, nếu có vật gì rơi thì K8 sẽ nhặt lên theo cấu hình đã thiết lập. Những điều bạn cần nhớ ở đây: Kubernetes là một công cụ để điều phối các ứng dụng được đóng gói - tự động hóa việc triển khai, mở rộng quy mô và điều phối chúng trong một cụm. Hỗ trợ các công nghệ container hóa chính, bao gồm Docker. K8s là phần mềm mã nguồn mở. Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - 7 OpenShift là một chiếc Ferrari trong thế giới ảo hóa, tuyệt vời, nhanh chóng và đắt tiền Phát triển chủ đề, chúng ta hãy chuyển sang OpenShift. OpenShift là một tiện ích bổ sung cho Kubernetes, cung cấp các chức năng bổ sung, sẵn sàng sử dụng ngay, không yêu cầu cấu hình phức tạp và có thể đưa vào sản xuất ngay lập tức. Hãy xem có bao nhiêu biểu tượng khác nhau ở trên Kubernetes. Và mỗi người trong số họ đều làm những điều thú vị của riêng mình. Docker, Kubernetes, OpenShift là ai và chúng có liên quan với nhau như thế nào?  - số 8 Điểm nổi bật của OpenShift: • Đây là sản phẩm trả phí, không giống như K8; • DevOps vượt trội, hỗ trợ các kịch bản triển khai màu xanh lam/xanh lục cơ bản; • Hỗ trợ Jenkins tích hợp; • Cung cấp các công cụ thuận tiện cho việc quản lý và làm việc với cụm; • Có mô hình bảo mật nghiêm ngặt hơn và tính năng giám sát tích hợp. Điều đáng nhấn mạnh một lần nữa là OpenShift là sản phẩm trả phí, không giống như Kubernetes. Sự khác biệt là ở chỗ: nếu chúng ta sử dụng Kubernetes đơn giản thì chúng ta sẽ tự giải quyết mọi vấn đề. Nếu chúng ta nói về OpenShift, thì đó là sản phẩm của Red Hat, giải quyết các vấn đề mới nổi như một phần của hỗ trợ trả phí. Hãy tóm tắt: Trong quá trình phát triển công nghiệp, cần phải “đóng gói” ứng dụng; cách tiếp cận này đặc biệt phù hợp trong kiến ​​trúc microservice. Thùng chứa là phương tiện chính của các ứng dụng đóng gói. Docker xử lý các container, tạo image container, nhặt và di chuyển các container. Để quản lý đồng thời nhiều vùng chứa, Docker Compose được sử dụng, có trong Docker. Các chương trình này là phần mềm miễn phí. Kubernetes(K8s) là một công cụ để điều phối các ứng dụng được đóng gói - tự động hóa việc triển khai, mở rộng quy mô và điều phối chúng trong một cụm. Hỗ trợ các công nghệ container hóa chính, bao gồm Docker. K8s là phần mềm mã nguồn mở. OpenShift là một tiện ích bổ sung cho Kubernetes cung cấp chức năng bổ sung. Đây là sản phẩm trả phí, không giống như K8, dành cho mục đích sử dụng của công ty. Cung cấp DevOps ngay lập tức: hỗ trợ cho các kịch bản triển khai chính màu xanh lam/xanh lá cây, canary, có hỗ trợ tích hợp cho Jenkins và cung cấp các công cụ thuận tiện để quản trị và làm việc với cụm. Có mô hình bảo mật nghiêm ngặt hơn và tính năng giám sát tích hợp. Dành cho những ai đam mê viết mã: Đóng gói ứng dụng Spring Boot vào một container Cách triển khai Postgres trong Docker và kết nối với ứng dụng Spring-Boot Hội thảo trên web: Docker - Cách làm việc với các container? - Phát triển back-end bằng Java
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION