Chào mọi người, trong video ngày hôm nay mình sẽ giới thiệu với mọi người, Kubernetes là gì
Các bạn có thể vào google,tìm đên trang chủ và, oa định nghĩa đây, tuy nhiên các bạn có thấy dễ hiểu ko ?. Mình nghĩ là ko dễ hiểu lắm.
Trước tiên chúng ta sẽ nói về 1 dàn nhạc(tiếng anh là Orchestra). Đã là dàn nhạc thì chúng ta có 1 nhạc trưởng và nhiều nhạc công. Conductor (hay nhạc trưởng) - linh hồn của dàn nhạc, có vai trò chỉ huy dàn nhạc, giữ nhịp độ và điều tiết các nhạc cụ, truyền cảm xúc lớn mạnh đến nhạc côn g…
Các bản nhạc chắc chắn là được sáng tác bởi các nhà soạn nhạc(hay là Composer).
Nhạc trưởng phải điều tiết dàn nhạc về nhịp độ, giúp các nhạc cụ vào đúng thứ tự, chỉ dẫn về sắc thái mà các nhạc cụ cần biểu đạt.
ok rồi chúng ta quay lại với K8
K8 là 1 Container Orchestration Tool,là 1 tool open source, được phát triển bởi google, ghê nha. Kubenetes đóng vai trò như nhạc trưởng, các nhạc công gọi là các container/services . K8 đảm bảo các services hoạt động trơn chu theo hướng dẫn từ 1 file config(đuôi yaml, hoặc yml),rõ ràng các bạn thấy file config này đóng vai trò như composer(hay nhà soạn nhạc) ở trên.
Rồi bây giờ chúng ta tìm hiểu xem tại sao cái K8 lại được tạo ra, nó tạo ra giải quyết những vấn đề gì?
Chúng ta hãy nói về kiến trúc monolith, rất nhiều ứng dụng đang được xây dựng trên kiến trúc này. Trong kiến trúc monolith, tất cả các chức năng, gồm cả các thư viện bên thứ 3, gộp chung vào 1 deployment. Với các ứng dụng nhỏ, điều này ok, tuy nhiên việc deploy mất nhiều thời gian, do tất cả các module phải đi cùng nhau, hoặc phải cùng công nghệ, nếu mỗi module do 1 team phát triển thì điều này càng trở nên phức tạp. Khi muốn mở rộng(hay scale), ta phải update tất cả các module, nên hệ thống xảy ra rất nhiều rủi ro.
Để giảm thiểu, thiên hạ chuyển sang kiến trúc microservices. Trong kiến trúc này, một chức năng lớn được chia thành nhiều chức năng nhỏ hơn, được gọi là các service(dịch vụ).Việc scale hệ thống sẽ dễ dàng hơn vì chỉ cần update service nào có liên quan, ko phải cập nhật tất cả các service, giảm đáng kể hiện tượng thắt cổ chai(bottle-neck).
Ở đây có 1 vấn đề là "1 machine - 1 service", nghĩa là mỗi service cần phải chạy trên 1 machine riêng biệt. Machine ở đây có thể là PC, host, laptop,..., vậy nên nếu hệ thống của ta có nhiều services thì số lượng machine cũng tăng lên theo, rất tốn kém
Để giải quyết vấn đề này, chúng ta có khái niệm containers, các services thay vì được chứa vào machine, sẽ được chứa vào container, ứng dụng quản lý container này gọi là Containerized Applications(ví dụ cụ thể là Docker).
Vậy là 1 Machine sẽ cài 1 Containerized Applications, trong App này sẽ có nhiều Container, mỗi container sẽ quản lý 1 hoặc nhiều services
Bây giờ giả sử một container bên trong Containerized App cần được nâng cấp, container này phải được tắt đi để bật container đã nâng cấp lên, khoảng thời gian giữa khi tắt container cũ và thời điểm bật container mới gọi là downtime. Làm thế nào để giảm thiểu thời gian downtime này xuống thấp nhất đây ta ?
Vậy làm thế nào mà container này thông báo cho các container khác là "tôi đang nâng cấp đấy" ?
Câu hỏi thú vị đây, tất cả sẽ được giải quyết bằng "nhạc trưởng" Kubenetes. Thông qua Kubenetes API nằm trên Master Note,sử dụng 1 Dashboard, ở đây tên gọi mỹ miều là Kubenetes Control Plane(nghe như vô lăng hoặc trung tâm điều khiển), K8 sẽ giao tiếp với các Node ở phía Slave Node
Mỗi Node ở phía slave node gồm nhiều Pod. Pod là gì nhỉ, nó là đơn vị nhỏ nhất trong K8, trong mỗi pod có thể quản lý 1 hoặc nhiều container. Kubenetes API thông qua Control Plane ko thể can thiệp vào từng Container mà sẽ can thiệp vào Pod
Nhiều node trên slave node sẽ được nhóm lại thành các cluster, bên trong cluster các container sẽ được kết với nhau thông qua thông qua địa chỉ IP, địa chỉ IP này lại đc tạo ra từ 1 virtual network bên trong cluster .
Bây giờ lập trình viên sẽ muốn cluster của mình phải tùy biến kiểu A, B với yêu cầu C,D nào đó, cho hết vào 1 hoặc nhiều file yml, rồi gửi lên cho Kubenetes API thực hiện. Việc này giống như gửi tác phẩm âm nhạc của nhà soạn nhạc(Composer) cho nhạc trưởng thực hiện.
Cảm ơn các bạn đã quan tâm, nếu các bạn thích video này, hãy cho 1 like, comment hoặc sub để tác giả có thêm động lực làm các video tiếp theo
Support - www.paypal.me/...
SUBSCRIBE TO MY CHANNEL FOR MORE INTERESTING VIDEOS:
/ nguyenduchoang
You can see code in github:
github.com/sun...
Twitter: / nguyend97601913
Facebook: / nguyen.duc.hoang.bk
Негізгі бет Kubernetes là gì | giải thích siêu dễ hiểu bằng hình ảnh trong 10 phút
No video
Пікірлер: 50