Kubernetes là gì | Kubernetes

Trang tổng quan của Kubernetes.

Kubernetes là 1 nền móng nguồn mở, khả chuyển, có thể mở rộng để quản lý những ứng dụng được đóng gói và những service, giúp tiện lợi trong việc cấu hình và tự động động hoá việc triển khai ứng dụng. Kubernetes là 1 hệ sinh thái lớn và vươn lên là nhanh chóng. Những dịch vụ, sự tương trợ và công cụ có sẵn đa dạng.

Tên gọi Kubernetes có nguồn gốc từ tiếng Hy Lạp, có ý nghĩa là người lái tàu hoặc hoa tiêu. Google mở mã nguồn Kubernetes từ 5 2014. Kubernetes xây dựng dựa trên 1 thập kỷ rưỡi kinh nghiệm mà Google có được sở hữu việc vận hành 1 khối lượng lớn workload trong thực tế, hài hòa sở hữu những ý tưởng và thực tiễn phải chăng nhất từ cùng đồng.

Quay ngược thời kì

Chúng ta hãy xem tại sao Kubernetes siêu hữu ích bằng bí quyết quay ngược thời kì.

Deployment evolution

Thời đại triển khai theo bí quyết cổ điển: Ban đầu, những ứng dụng được chạy trên những máy chủ cơ vật lý. Ko có bí quyết nào để xác định ranh giới tài nguyên cho những ứng dụng trong máy chủ cơ vật lý và điều này gây ra sự cố phân bổ tài nguyên. Thí dụ, ví dụ nhiều ứng dụng cùng chạy trên 1 máy chủ cơ vật lý, có thể có những trường hợp 1 ứng dụng sẽ chiếm phần lớn tài nguyên hơn và kết quả là những ứng dụng khác sẽ hoạt động kém đi. 1 giải pháp cho điều này sẽ là chạy từng ứng dụng trên 1 máy chủ cơ vật lý khác nhau. Nhưng giải pháp này ko tối ưu vì tài nguyên ko được dùng đúng mức và siêu tốn kém cho những tổ chức để có thể duy trì nhiều máy chủ cơ vật lý như vậy.

Thời đại triển khai ảo hóa: Như 1 giải pháp, ảo hóa đã được giới thiệu. Nó cho phép bạn chạy nhiều Máy ảo (VM) trên CPU của 1 máy chủ cơ vật lý. Ảo hóa cho phép những ứng dụng được cô lập giữa những VM và phân phối mức độ bảo mật vì thông tin của 1 ứng dụng ko thể được truy cập tự động do bởi 1 ứng dụng khác.

Ảo hóa cho phép dùng phải chăng hơn những tài nguyên trong 1 máy chủ cơ vật lý và cho phép khả năng mở rộng phải chăng hơn vì 1 ứng dụng có thể được thêm hoặc cập nhật dễ dàng, giảm chi chi phí hartware và hơn thế nữa. Sở hữu ảo hóa, bạn có thể có 1 tập hợp những tài nguyên cơ vật lý dưới dạng 1 cụm những máy ảo sẵn dùng.

Từng VM là 1 máy tính chạy mọi những thành phần, bao gồm cả hệ điều hành riêng của nó, bên trên hartware được ảo hóa.

Xem Thêm  Đăng ký Gmail, thiết lập account Gmail miễn chi phí nhanh nhất

Thời đại triển khai Container: Những container tương tự động như VM, nhưng chúng có tính cô lập để chia sẻ Hệ điều hành (HĐH) giữa những ứng dụng. Do ấy, container được coi là nhẹ (light-weight). Tương tự động như VM, 1 container có hệ thống tệp (filesystem), CPU, bộ nhớ, course of area, v.v. Lúc chúng được tách đi khỏi cơ sở hạ tầng bên dưới, chúng có thể khả chuyển (moveable) trên cloud hoặc những bản phân phối Hệ điều hành.

Những container đã trở nên phổ thông} vì chúng có thêm nhiều lợi ích, chẳng hạn như:

  • Tạo new và triển khai ứng dụng Agile: gia nâng cao tính dễ dàng và hiệu quả của việc tạo những container picture so sở hữu việc dùng VM picture.
  • Vươn lên là, tích hợp và triển khai liên tục: phân phối khả năng construct và triển khai container picture thường xuyên và đáng tin cậy sở hữu việc rollbacks dễ dàng, nhanh chóng.
  • Phân biệt giữa Dev và Ops: tạo những photographs của những utility container tại thời điểm construct/launch thay đổi vì thời kì triển khai, do ấy phân tách những ứng dụng khỏi hạ tầng.
  • Khả năng xem ko chỉ hiển thị thông tin và những metric trên mức Hệ điều hành, mà còn cả utility well being và những tín hiệu khác.
  • Tính nhất quán về môi trường trong suốt quy trình vươn lên là, testing và trong manufacturing: Chạy tương tự động trên máy tính xách tay như trên cloud.
  • Tính khả chuyển trên cloud và những bản phân phối HĐH: Chạy trên Ubuntu, RHEL, CoreOS, on-premises, Google Kubernetes Engine và bất kì nơi nào khác.
  • Quản lý tập trung ứng dụng: Nâng cao mức độ trừu tượng từ việc chạy 1 Hệ điều hành trên hartware ảo hóa sang chạy 1 ứng dụng trên 1 HĐH bằng logical sources.
  • Những micro-services phân tán, elastic: ứng dụng được phân tách thành những phần bé hơn, độc lập và thể được triển khai và quản lý 1 bí quyết linh hoạt – chứ ko cần 1 app nguyên khối (monolithic).
  • Cô lập những tài nguyên: dự đoán hiệu năng ứng dụng
  • Dùng tài nguyên: hiệu quả

Tại sao bạn cần Kubernetes và nó có thể làm cho những gì?

Những container là 1 bí quyết phải chăng để đóng gói và chạy những ứng dụng của bạn. Trong môi trường manufacturing, bạn cần quản lý những container chạy những ứng dụng và đảm bảo rằng ko có khoảng thời kì downtime. Thí dụ, ví dụ 1 container bị tắt đi, 1 container khác cần cần khởi động lên. Điều này sẽ dễ dàng hơn ví dụ được xử lý bởi 1 hệ thống.

Xem Thêm  Tìm Hiểu Mì Ramen Là Gì Và Những Loại Ramen Trong Ẩm Thực Nhật Bản

Đấy là bí quyết Kubernetes tới sở hữu chúng ta. Kubernetes phân phối cho bạn 1 framework để chạy những hệ phân tán 1 bí quyết mạnh mẽ. Nó đảm nhiệm việc nhân rộng và chuyển đổi dự phòng cho ứng dụng của bạn, phân phối những mẫu deployment và hơn thế nữa. Thí dụ, Kubernetes có thể dễ dàng quản lý 1 triển khai canary cho hệ thống của bạn.

Kubernetes phân phối cho bạn:

  • Service discovery và cân bằng tải Kubernetes có thể expose 1 container dùng DNS hoặc liên hệ IP của riêng nó. Giả dụ lượng site visitors truy cập tới 1 container cao, Kubernetes có thể cân bằng tải và phân phối lưu lượng mạng (community site visitors) để việc triển khai được ổn định.
  • Điều phối bộ nhớ Kubernetes cho phép bạn tự động động mount 1 hệ thống lưu trữ mà bạn chọn, như native storages, public cloud suppliers, v.v.
  • Tự động động rollouts và rollbacks Bạn có thể mô tả trạng thái mong muốn cho những container được triển khai dùng Kubernetes và nó có thể thay đổi đổi trạng thái thực tế sang trạng thái mong muốn sở hữu tần suất được kiểm soát. Thí dụ, bạn có thể tự động động hoá Kubernetes để tạo new những container cho việc triển khai của bạn, xoá những container hiện có và ứng dụng mọi những useful resource của chúng vào container new.
  • Đóng gói tự động động Bạn phân phối cho Kubernetes 1 cluster gồm những node mà nó có thể dùng để chạy những tác vụ được đóng gói (containerized process). Bạn cho Kubernetes biết từng container cần bao nhiêu CPU và bộ nhớ (RAM). Kubernetes có thể điều phối những container tới những node để tận dụng phải chăng nhất những useful resource của bạn.
  • Tự động phục hồi Kubernetes khởi động lại những containers bị lỗi, thay đổi thế những container, xoá những container ko phản hồi lại cấu hình well being examine do khách hàng xác định và ko cho những consumer biết tới chúng cho tới lúc chúng sẵn sàng hoạt động.
  • Quản lý cấu hình và bảo mật Kubernetes cho phép bạn lưu trữ và quản lý những thông tin nhạy cảm như: password, OAuth token và SSH key. Bạn có thể triển khai và cập nhật lại secret và cấu hình ứng dụng mà ko cần construct lại những container picture và ko để lộ secret trong cấu hình stack của bạn.

Kubernetes ko cần là gì?

Kubernetes ko cần là 1 hệ thống PaaS (Ứng dụng như 1 Dịch vụ) cổ điển, toàn diện. Do Kubernetes hoạt động trên tầng container chứ ko cần trên tầng hartware, nó phân phối 1 số tính năng thường ứng dụng chung cho những dịch vụ PaaS, như triển khai, nhân rộng, cân bằng tải, ghi nhật ký và giám sát. Tuy nhiên, Kubernetes ko cần là cấu trúc nguyên khối và những giải pháp mặ định này là tùy thuộc} chọn và có thể cắm được (pluggable).

Xem Thêm  Tiết lộ} hầu hết ý nghĩa số 6 1 bí quyết chi tiết nhất

Kubernetes:

  • Ko giới hạn những loại ứng dụng được tương trợ. Kubernetes nhằm phần đích tương trợ 1 khối lượng công việc vô cùng đa dạng, bao gồm cả stateless, stateful và xử lý dữ liệu. Giả dụ 1 ứng dụng có thể chạy trong 1 container, nó sẽ chạy siêu phải chăng trên Kubernetes.
  • Ko triển khai mã nguồn và ko construct ứng dụng của bạn. Quy trình CI/CD được xác định bởi tổ chức cũng như những đề nghị kỹ thuật.
  • Ko phân phối những service trên mức ứng dụng, như middleware (thí dụ, những message buses), những framework xử lý dữ liệu (thí dụ, Spark), cơ sở dữ liệu (thí dụ, MySQL), bộ nhớ cache, cũng như hệ thống lưu trữ của cluster (thí dụ, Ceph). Những thành phần như vậy có thể chạy trên Kubernetes và/hoặc có thể được truy cập bởi những ứng dụng chạy trên Kubernetes thông qua những cơ chế di động, chẳng hạn như Open Service Dealer.
  • Ko cần} những giải pháp ghi lại nhật ký (logging), giám sát (monitoring) hoặc cảnh báo (alerting). Nó phân phối 1 số sự tích hợp như proof-of-concept, và cơ chế để thu thập và xuất những số liệu.
  • Ko phân phối, ko cần} 1 cấu hình ngôn ngữ/hệ thống (thí dụ: Jsonnet). Nó phân phối 1 API khai báo có thể được focused bởi những hình thức khai báo tùy thuộc} ý.
  • Ko phân phối cũng như ứng dụng bất kỳ cấu hình toàn diện, bảo trì, quản lý hoặc hệ thống tự động phục hồi.
  • Bên cạnh ra, Kubernetes ko cần là 1 hệ thống điều phối đơn giản. Trong thực tế, nó loại bỏ sự cần thiết của việc điều phối. Định nghĩa kỹ thuật của điều phối là việc thực thi 1 quy trình công việc được xác định: trước tiên làm cho việc A, tiếp tục là B rồi sau chót là C. Ngược lại, Kubernetes bao gồm 1 tập những quy trình kiểm soát độc lập, có thể hài hòa, liên tục điều khiển trạng thái hiện tại theo trạng thái mong muốn đã cho. Nó ko cần là vấn đề làm cho thế nào bạn có thể đi được từ A tới C. Kiểm soát tập trung cũng ko cần}. Điều này dẫn tới 1 hệ thống dễ dùng hơn, mạnh mẽ hơn, linh hoạt hơn và có thể mở rộng.

Có gì tiếp theo

  • Xem thêm về những thành phần của Kubernetes
  • Sẵn sàng khởi đầu?