Kubernetes (phát âm là “CUBE-A-NET-IS”) là một nền tảng mã nguồn mở giúp quản lý các ứng dụng vùng chứa như Docker. Cho dù bạn đang muốn tự động hóa hoặc mở rộng quy mô các vùng chứa này trên nhiều máy chủ, Kubernetes có thể tăng tốc độ triển khai. Để làm điều này, nó có thể sử dụng các thành phần bên trong như API Kubernetes hoặc các tiện ích mở rộng của bên thứ ba chạy trên Kubernetes.
Bài viết này sẽ giúp bạn hiểu các khái niệm cơ bản về Kubernetes và tại sao nó lại gây ra sự thay đổi địa chấn như vậy trên thị trường máy chủ, với các nhà cung cấp cũng như các nhà cung cấp đám mây, chẳng hạn như Azure và Google Cloud, cung cấp dịch vụ Kubernetes.
Kubernetes:Sơ lược về lịch sử
Kubernetes là một trong những món quà của Google dành cho cộng đồng nguồn mở. Nền tảng vùng chứa là một phần của Borg, một dự án nội bộ của Google trong hơn một thập kỷ. Borg cho phép Google quản lý hàng trăm, thậm chí hàng nghìn nhiệm vụ (được gọi là “Borglets”) từ các ứng dụng khác nhau trên các cụm. Mục tiêu của nó là sử dụng hiệu quả máy móc (và máy ảo) trong khi đảm bảo tính khả dụng cao của các tính năng thời gian chạy.
Kiến trúc tương tự đã phổ biến với các công ty khác đang tìm cách để đảm bảo tính khả dụng cao một cách hiệu quả. Vào năm 2015, ngay sau khi Kubernetes 1.0 ra mắt, Google đã từ bỏ quyền kiểm soát công nghệ này. Kubernetes hiện đang thành lập với một nền tảng có tên là Cloud Native Computing Foundation (CNCF), chính nó là một phần của Linux Foundation.
Cách hoạt động của Kubernetes
Mượn ý tưởng của Dự án Borg, “Borglets” nhường chỗ cho “pod”, là đơn vị lập lịch trình chứa các thùng chứa. Về cơ bản, chúng có các địa chỉ IP riêng lẻ xuất hiện trong hình ảnh bất cứ khi nào vùng chứa yêu cầu CPU, bộ nhớ hoặc bộ lưu trữ.
Các nhóm đảm bảo tính khả dụng cao bằng cách cân bằng tải lưu lượng truy cập ở định dạng tổng hợp. Hơn nữa, chúng nằm bên trong các máy (hoặc máy ảo) được gọi là “các nút công nhân”, còn được gọi là “các tay sai”. Từ thời điểm này, một “nút chính” kiểm soát toàn bộ cụm bằng cách sắp xếp bộ chứa bằng cách sử dụng API Kubernetes. Docker có khả năng chạy trong từng nút công nhân nơi nó có thể tải xuống hình ảnh và khởi động vùng chứa.
Để nhận được kết nối API tại một cụm Kubernetes, một cú pháp CLI được gọi là kubectl
Được sử dụng. Đây là một lệnh rất quan trọng vì nó chạy một tay tất cả các lệnh mà nút Master phục vụ cho các nút công nhân. Thành thạo kubectl đòi hỏi một chút học hỏi, nhưng khi đã học, bạn có thể bắt đầu sử dụng các cụm Kubernetes. Kubernetes cũng như Docker được viết bằng ngôn ngữ lập trình Go.
Ứng dụng
Kubernetes có thể giảm đáng kể chi phí máy chủ và trung tâm dữ liệu vì tính hiệu quả cao trong việc sử dụng máy móc. Một số ứng dụng phổ biến của Kubernetes bao gồm:
- Quản lý máy chủ ứng dụng . Hầu hết các máy chủ ứng dụng đều yêu cầu bảo mật, quản lý cấu hình, cập nhật và hơn thế nữa, các máy chủ này có thể chạy bằng Kubernetes.
- Phát hành và khôi phục tự động . Với Kubernetes, bạn không phải lo lắng về việc phát hành sản phẩm hoặc hoàn nguyên trên nhiều nút kết thúc.
- Triển khai các ứng dụng không có trạng thái . Các ứng dụng web hiện có thể điều khiển từ xa. Ví dụ:Kubernetes có thể giúp bạn chạy máy chủ Nginx bằng cách sử dụng triển khai ứng dụng không trạng thái.
- Triển khai các ứng dụng trạng thái . Kubernetes có thể chạy cơ sở dữ liệu MySQL.
- Lưu trữ các đối tượng API . Đối với các nhu cầu lưu trữ khác nhau, Kubernetes đảm bảo khả năng lưu trữ lý tưởng vì nó sử dụng các nguyên tắc của vùng chứa.
- Sẵn sàng xuất xưởng . Kubernetes rất hữu ích trong các ứng dụng có sẵn như khám phá dịch vụ, ghi nhật ký và giám sát cũng như xác thực.
- Ứng dụng IoT . Kubernetes đang nhận thấy sự sử dụng ngày càng nhiều trong IoT vì khả năng mở rộng quy mô lớn của nó.
- Chạy mọi nơi . Bạn có thể chạy Kubernetes ở bất cứ đâu, kể cả bên trong vali.
Tóm tắt
Mục tiêu của Kubernetes là sử dụng tài nguyên máy tính ở mức tối đa. Vì bạn có thể sắp xếp các vùng chứa trên nhiều máy chủ, các nút cuối sẽ không bao giờ gặp sự cố hoặc lỗi tài nguyên. Nó giúp mở rộng quy mô tự động vì bạn chỉ phải đưa ra lệnh một lần từ nút Chính và việc mở rộng quy mô ứng dụng không có gì là mang tính cách mạng.
Để tìm hiểu thêm về Kubernetes, hãy truy cập trang web chính thức của Kubernetes có chứa các hướng dẫn.