Nội dung bài viết
Video học lập trình mỗi ngày
Kubernetes là gì? Đừng quan tâm tới nó, khi bạn cần sẽ tự tìm đến. Câu chuyện dưới đây sẽ cho bạn biết rõ hơn. Giả sử bạn là một nhà phát triển và bạn đã làm việc thực sự chăm chỉ và phát triển ra một ứng dụng trò chuyện trực tuyến.
Trích một đoạn trong bài viết: What's Kubernetes?.
Kubernetes là gì?
Giả sử bạn là một nhà phát triển và bạn đã làm việc thực sự chăm chỉ và phát triển ra một ứng dụng trò chuyện trực tuyến. Bạn cảm thấy ứng dụng mà bạn cho là rất tâm huyết và và quyết định push lên docker của mình. Sau đó bạn lựa chọn cho mình nhà cung cấp hosting như AWS or vultr manh mẽ, và quyêt định chạy command.
$ docker run ...
Sau khi thành công bạn mua tiên miền subrss.com và quyết định triển khai nó ra thế giới. Google Analytics của bạn cho bạn biết rằng 50 người đang sử dụng nó mỗi ngày và bạn rất hài lòng. Nhưng điều gì sẽ xảy ra khi nó phát triển?
Tại một thời điểm nào đó, ứng dụng của bạn sẽ quá thành công vì lợi ích của chính nó và quá nhiều người đang truy cập vào nó để sử dụng, rất vui vẻ nhưng sau đó thì một Docker nhỏ đó lại xử lý một cách mệt nhọc, và gây chậm chạp, bạn quyết định triển khai lại với hai việc
Bạn triển khai thêm một Docker nữa, vậy là bạn có 2.
Bạn thêm một thứ được gọi là load banlancer để phân phối lưu lượng truy cập giữa hai vùng chứa của bạn.
Tuyệt vời, bây giờ bạn có thể thở phào và ngủ một giấc thật ngon. Nhưng điều gì sẽ xảy ra khi có sự cố xảy ra? Giả sử bạn quên thêm trình xử lý lỗi vào mã của mình và do đó một trong các vùng chứa (docker) của bạn ngừng hoạt động. Là một nhà phát triển quan trọng nhất là tính thận trọng, bạn đã thiết lập cảnh báo, vì vậy bạn nhận được thông báo Slack cho bạn biết mọi thứ không ổn. Vì vậy, bạn đăng nhập lại vào máy chủ của mình, khởi động lại vùng chứa số 1 (vùng chứa thứ hai vẫn ổn) và bạn đã sẵn sàng. Anonystick đã viết một plugin theo dõi hệ thống từ slack bạn có thể sử dụng nó miễn phí tại send-error-slack
Kubernetes đến từ đâu?
Nhưng điều gì sẽ xảy ra khi bạn cần nâng cấp ứng dụng của mình? Và điều gì sẽ xảy ra khi bạn cần 10 container, không phải 2? Điều gì sẽ xảy ra khi có quá nhiều load balencer của bạn mà bạn cần một bộ cân bằng tải khác ? Các vấn đề cứ lặp đi lặp lại - đó là bản chất của phần mềm có quy mô lớn. Vì vậy, bạn có thể có một kỹ sư chuyên dụng chỉ tập trung vào việc ngồi xung quanh, chờ đợi các vấn đề xảy ra - nhưng điều đó không thực sự hiệu quả khi bạn có một ứng dụng với 15.000 vùng chứa. Những gì bạn thực sự cần là một bộ công cụ giúp bạn dễ dàng tự động hóa công việc tạo, quản lý và mở rộng vùng chứa.
Đây chính xác là vấn đề mà Google đã gặp phải trong nội bộ từ giữa đến cuối những năm 2000. Họ đang hoạt động ở quy mô thực sự lớn (hàng tỷ người dùng!) Và cần đảm bảo rằng mọi thứ hoạt động, thực sự nhanh, mọi lúc. Vì vậy, họ đã phát triển một hệ thống gọi là Borg tự động xử lý tất cả các công việc vận hành khó chịu này . Cuối cùng, họ mở nguồn phiên bản mới hơn của nó vào năm 2014 và đặt tên là Kubernetes. Đó là mã nguồn mở, có nghĩa là bạn có thể đọc và sử dụng mã trên Github theo đúng nghĩa đen.
Trích thôi, bạn có thể đọc full here