Kubernetes là gì?

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 container như Docker. Cho dù bạn đang tìm cách tự động hóa hoặc mở rộng những container này trên nhiều máy chủ, Kubernetes đều có thể giúp tăng tốc độ triển khai. Để tăng tốc độ triển khai, Kubernetes sử dụng các thành phần bên trong như Kubernetes API hoặc những 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à lý do tại sao nó gây ra sự thay đổi “chấn động” như vậy trong thị trường máy chủ. Từ các nhà cung cấp dịch vụ máy chủ cho đến những nhà cung cấp đám mây, như Azure và Google Cloud, tất cả đều có Kubernetes.

Lịch sử tóm tắt của Kubernetes

Kubernetes là một trong những món quà mà Google dành tặng cho cộng đồng mã nguồn mở. Nền tảng container là một phần của Borg, 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 và thậm chí hàng ngàn tác vụ (được gọi là “Borglet”) từ nhiều ứ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ật lý (và máy ảo) trong khi vẫn đảm bảo tính khả dụng cao của các tính năng run-time.

Lịch sử tóm tắt của Kubernetes

Vào năm 2015, ngay khi Kubernetes 1.0 xuất hiện, Google đã từ bỏ quyền kiểm soát công nghệ này. Kubernetes hiện đang có một nền tảng được gọi là Cloud Native Computing Foundation (CNCF). Bản thân nó là một phần của Linux Foundation.

Kubernetes là một phần của Linux Foundation

Cách thức hoạt động của Kubernetes

Mượn ý tưởng của dự án Borg, Borg đã nhường chỗ cho pod, đơn vị chứa các container.

Cách thức hoạt động của Kubernetes

Pod đảm bảo tính khả dụng cao bằng cách cân bằng tải lưu lượng theo định dạng round-robin (luân chuyển vòng). Hơn nữa, pod ở bên trong các máy (hoặc máy ảo) được gọi là “worker node” hay “minion”. Từ thời điểm này, “master node” sẽ điều khiển thông qua việc phối hợp container hóa bằng cách sử dụng API Kubernetes. Docker có khả năng chạy trong mỗi worker node, nơi có thể tải xuống image và bắt đầu các container.

Worker node

Để có được kết nối API tại cụm Kubernetes, cú pháp CLI (còn gọi là kubectl) được sử dụng. Đây là một lệnh rất quan trọng vì nó chạy tất cả các lệnh mà master node phục vụ cho worker node. Để nắm vững kubectl, bạn phải dành chút thời gian học hỏi, nhưng sau đó, 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.

Những ứng dụng

Kubernetes có thể làm giảm đáng kể chi phí máy chủ và trung tâm dữ liệu nhờ hiệu quả sử dụng cao. 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 yêu cầu bảo mật, quản lý cấu hình, cập nhật và nhiều hơn nữa, có thể chạy bằng Kubernetes.
  • Triển khai các ứng dụng stateless (không lưu dữ liệu của client trên server): Các ứng dụng web hiện có thể điều khiển từ xa. Ví dụ: Kubernetes có thể giúp chạy các máy chủ Nginx bằng cách sử dụng phương pháp triển khai ứng dụng stateless.
  • Triển khai các ứng dụng stateful (lưu dữ liệu của client trên server): 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 container.
  • Kubernetes rất hữu ích trong các ứng dụng sáng tạo như khám phá dịch vụ, ghi nhật ký, giám sát và xác thực.
  • Ứng dụng IoT: Kubernetes đang được sử dụng ngày càng nhiều trong IoT nhờ khả năng mở rộng quy mô của nó.
  • Chạy ở bất cứ đâu: Bạn có thể chạy Kubernetes ở bất cứ đâu, kể cả bên trong một chiếc vali.

Ứng dụng

Mục tiêu của Kubernetes là sử dụng tài nguyên điện toán đến mức tối đa. Vì bạn có thể sắp xếp các container trên nhiều máy chủ, các node cuối sẽ không bao giờ gặp sự cố về tài nguyên hoặc bị lỗi. Kubernetes giúp mở rộng quy mô tự động vì bạn chỉ phải đưa ra lệnh một lần từ master node.

Thứ Ba, 02/04/2019 14:52
52 👨 528