Tổng quan về GUI cho Kubernetes

Tổng quan về GUI cho Kubernetes

Để làm việc chính thức với hệ thống, kiến ​​​​thức về các tiện ích dòng lệnh là rất quan trọng: trong trường hợp của Kubernetes, đây là kubectl. Mặt khác, các giao diện đồ họa chu đáo, được thiết kế tốt có thể thực hiệnоhầu hết các tác vụ thông thường và mở ra các cơ hội bổ sung cho hoạt động của các hệ thống.

Năm ngoái chúng tôi đã xuất bản một bản dịch tổng quan nhỏ về giao diện người dùng web đối với Kubernetes, được tính thời gian trùng với thông báo về giao diện web Kubernetes WebView. Tác giả của bài báo đó và chính tiện ích đó, Henning Jacobs từ Zalando, vừa định vị sản phẩm mới là “kubectl cho web”. Anh ấy muốn tạo một công cụ có khả năng tương tác thân thiện với người dùng ở định dạng hỗ trợ kỹ thuật (ví dụ: nhanh chóng hiển thị sự cố với liên kết web) và để phản hồi sự cố, tìm kiếm sự cố trong nhiều cụm cùng một lúc. Con cái của anh ấy đang phát triển vào thời điểm hiện tại (chủ yếu là do nỗ lực của chính tác giả).

Vì chúng tôi phục vụ nhiều cụm Kubernetes với nhiều kích cỡ khác nhau nên chúng tôi cũng quan tâm đến việc có thể cung cấp công cụ trực quan cho khách hàng của mình. Khi chọn một giao diện phù hợp, các tính năng sau đây là chìa khóa đối với chúng tôi:

  • hỗ trợ phân biệt quyền của người dùng (RBAC);
  • trực quan hóa trạng thái không gian tên và các nguyên hàm Kubernetes tiêu chuẩn (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • truy cập vào dòng lệnh bên trong nhóm;
  • xem nhật ký của nhóm;
  • xem trạng thái của nhóm (describe status);
  • loại bỏ vỏ.

Các chức năng khác, chẳng hạn như xem các tài nguyên đã sử dụng (trong ngữ cảnh nhóm/bộ điều khiển/không gian tên), tạo/chỉnh sửa các nguyên mẫu K8, không liên quan trong quy trình làm việc của chúng tôi.

Chúng tôi sẽ bắt đầu đánh giá với Bảng điều khiển Kubernetes cổ điển, đây là tiêu chuẩn của chúng tôi. Vì thế giới không đứng yên (có nghĩa là Kubernetes ngày càng có nhiều GUI mới), chúng tôi cũng sẽ nói về các lựa chọn thay thế hiện tại của nó, tóm tắt mọi thứ trong bảng so sánh ở cuối bài viết.

NB: Trong bài đánh giá, chúng tôi sẽ không lặp lại với những giải pháp đã được xem xét trong bài viết cuối cùngtuy nhiên, để hoàn thiện, các tùy chọn liên quan từ nó (K8Dash, Octant, Kubernetes Web View) được đưa vào bảng cuối cùng.

1. Bảng điều khiển Kubernetes

  • trang tài liệu;
  • kho (8000+ sao GitHub);
  • Giấy phép: Apache 2.0;
  • Tóm lại: “Giao diện web chung cho các cụm Kubernetes. Nó cho phép người dùng quản lý và khắc phục sự cố các ứng dụng đang chạy trong cụm, cũng như quản lý chính cụm đó.”

Tổng quan về GUI cho Kubernetes

Đây là bảng điều khiển có mục đích chung được bao phủ bởi các tác giả Kubernetes trong tài liệu chính thức (Nhưng không triển khai được mặc định). Nó được thiết kế cho nhu cầu hoạt động hàng ngày và gỡ lỗi các ứng dụng trong một cụm. Ở nhà, chúng tôi sử dụng nó như một công cụ trực quan nhẹ chính thức cho phép chúng tôi cung cấp cho các nhà phát triển quyền truy cập cần thiết và đủ vào cụm. Khả năng của nó bao gồm tất cả các nhu cầu phát sinh trong quá trình sử dụng cụm (trong bài viết này chúng tôi đã trình diễn một số tính năng của bảng điều khiển). Như bạn có thể đoán, điều này có nghĩa là nó đáp ứng tất cả các yêu cầu của chúng tôi được liệt kê ở trên.

Trong số các tính năng chính của Kubernetes Dashboard:

  • Điều hướng: xem các đối tượng chính của K8 trong ngữ cảnh của các không gian tên.
  • Nếu bạn có quyền quản trị viên, bảng điều khiển sẽ hiển thị các nút, không gian tên và Ổ đĩa liên tục. Đối với các nút, số liệu thống kê có sẵn về việc sử dụng bộ nhớ, bộ xử lý, phân bổ tài nguyên, số liệu, trạng thái, sự kiện, v.v.
  • Xem các ứng dụng được triển khai trong một không gian tên theo loại của chúng (Deployment, StatefulSet, v.v.), mối quan hệ giữa chúng (ReplicaSet, Horizontal Pod Autoscaler), thống kê và thông tin chung và được cá nhân hóa.
  • Xem các dịch vụ và Đường vào, cũng như mối quan hệ của chúng với các nhóm và điểm cuối.
  • Xem các đối tượng và kho lưu trữ tệp: Khối lượng liên tục và Yêu cầu khối lượng liên tục.
  • Xem và chỉnh sửa ConfigMap và Secret.
  • Xem các bản ghi.
  • Truy cập dòng lệnh trong vùng chứa.

Một nhược điểm đáng kể (tuy nhiên, không phải đối với chúng tôi) là không có hỗ trợ cho công việc đa cụm. Dự án được cộng đồng tích cực phát triển và duy trì các tính năng có liên quan với việc phát hành các phiên bản và thông số kỹ thuật mới của API Kubernetes: phiên bản mới nhất của bảng điều khiển là v2.0.1 Ngày 22 tháng 2020 năm 1.18 - Đã kiểm tra khả năng tương thích với Kubernetes XNUMX.

2. ống kính

Tổng quan về GUI cho Kubernetes

Dự án được định vị là một môi trường phát triển tích hợp (IDE) hoàn chỉnh cho Kubernetes. Hơn nữa, nó được tối ưu hóa để hoạt động với nhiều cụm và số lượng lớn nhóm chạy trong đó (đã thử nghiệm trên 25 nhóm).

Các tính năng/khả năng chính của Lens:

  • Ứng dụng độc lập không yêu cầu cài đặt bất kỳ thứ gì bên trong cụm (chính xác hơn là phải có Prometheus để lấy tất cả các số liệu, nhưng bản cài đặt hiện có cũng có thể được sử dụng cho việc này). Quá trình cài đặt “chính” được thực hiện trên máy tính cá nhân chạy Linux, macOS hoặc Windows.
  • Quản lý đa cụm (hỗ trợ hàng trăm cụm).
  • Trực quan hóa trạng thái của cụm trong thời gian thực.
  • Biểu đồ và xu hướng sử dụng tài nguyên với lịch sử dựa trên Prometheus tích hợp sẵn.
  • Truy cập vào dòng lệnh của vùng chứa và trên các nút cụm.
  • Hỗ trợ đầy đủ cho Kubernetes RBAC.

Phát hành hiện tại - 3.5.0 ngày 16 tháng 2020 năm XNUMX Ban đầu được tạo bởi Kontena, ngày nay tất cả tài sản trí tuệ đã được chuyển giao cho một tổ chức đặc biệt Phòng thí nghiệm Lakend, được gọi là "liên minh các chuyên gia công nghệ và chuyên viên điện toán đám mây gốc", chịu trách nhiệm "bảo toàn và cung cấp phần mềm và sản phẩm Nguồn mở của Kontena."

Lens là dự án phổ biến thứ hai trên GitHub từ danh mục GUI cho Kubernetes, “chỉ thua” bản thân Bảng điều khiển Kubernets. Tất cả các giải pháp Nguồn mở khác không thuộc danh mục CLI* đều kém hơn đáng kể về mức độ phổ biến.

* Xem về K9s trong phần tiền thưởng của bài đánh giá.

3. Kuber từ tính

Tổng quan về GUI cho Kubernetes

Đây là một ứng dụng độc quyền được cài đặt trên máy tính cá nhân (Linux, macOS, Windows được hỗ trợ). Các tác giả của nó hứa hẹn sẽ thay thế hoàn toàn tiện ích dòng lệnh và cùng với nó - không cần nhớ các lệnh và thậm chí tăng tốc độ gấp XNUMX lần.

Một trong những tính năng thú vị của công cụ là hỗ trợ tích hợp cho biểu đồ Helm và một trong những nhược điểm là thiếu số liệu hiệu suất ứng dụng.

Các tính năng chính của Kubernetic:

  • Thuận tiện hiển thị trạng thái cụm. Một màn hình để xem tất cả các đối tượng cụm liên quan và các phụ thuộc của chúng; trạng thái sẵn sàng đỏ/xanh cho tất cả các đối tượng; chế độ xem trạng thái cụm với cập nhật trạng thái thời gian thực.
  • Các nút thao tác nhanh để xóa và mở rộng ứng dụng.
  • Hỗ trợ vận hành đa cụm.
  • Công việc đơn giản với các không gian tên.
  • Hỗ trợ cho biểu đồ Helm và kho lưu trữ Helm (bao gồm cả kho riêng tư). Cài đặt và quản lý biểu đồ trong giao diện web.

Giá hiện tại của sản phẩm là khoản thanh toán một lần 30 euro cho việc một người sử dụng sản phẩm cho bất kỳ số lượng không gian tên và cụm nào.

4. Kubevious

  • website;
  • Trình bày;
  • kho (~500 sao GitHub);
  • Giấy phép: Apache 2.0
  • Tóm lại: "Kubevious làm cho các cụm Kubernetes, cấu hình ứng dụng và xem trạng thái trở nên an toàn và dễ hiểu."

Tổng quan về GUI cho Kubernetes

Ý tưởng của dự án là tạo ra một công cụ được thiết kế để phân tích và gỡ lỗi các cấu hình ứng dụng được triển khai trong một cụm. Các tác giả tập trung chủ yếu vào việc triển khai các tính năng này, để lại những điều tổng quát hơn cho phần sau.

Các tính năng và chức năng chính của Kubevious:

  • Trực quan hóa cụm theo cách tập trung vào ứng dụng: các đối tượng liên quan trong giao diện được nhóm lại, sắp xếp theo thứ bậc.
  • Hiển thị trực quan các phụ thuộc trong cấu hình và hệ quả xếp tầng của những thay đổi của chúng.
  • Hiển thị lỗi cấu hình cụm: sử dụng sai nhãn, bỏ sót cổng, v.v. (Nhân tiện, nếu bạn quan tâm đến tính năng này, hãy chú ý đến Polarisvề cái mà chúng tôi đã viết.)
  • Ngoài điểm trước đó, có thể phát hiện các thùng chứa nguy hiểm tiềm ẩn, tức là. có quá nhiều đặc quyền (thuộc tính hostPID, hostNetwork, hostIPC, gắn kết docker.sock vân vân).
  • Hệ thống tìm kiếm nâng cao cho cụm (không chỉ theo tên của đối tượng mà còn theo thuộc tính của chúng).
  • Công cụ lập kế hoạch năng lực và tối ưu hóa tài nguyên.
  • "Cỗ máy thời gian" tích hợp (khả năng xem các thay đổi trước đó trong cấu hình của các đối tượng).
  • Quản lý RBAC với bảng Vai trò, Liên kết Vai trò, Tài khoản Dịch vụ có liên quan đến nhau.
  • Chỉ hoạt động với một cụm.

Dự án có lịch sử rất ngắn (lần phát hành đầu tiên diễn ra vào ngày 11 tháng 2020 năm XNUMX) và có vẻ như đã có một giai đoạn ổn định hoặc phát triển chậm lại. Nếu các phiên bản trước được phát hành thường xuyên, thì bản phát hành mới nhất (v0.5 ngày 15 tháng 2020 năm 4) đã bị tụt hậu so với tốc độ phát triển ban đầu. Điều này có thể là do số lượng người đóng góp ít: chỉ có XNUMX người trong số họ trong lịch sử của kho lưu trữ và tất cả công việc thực tế đều do một người thực hiện.

5. Kubewise

  • trang dự án;
  • Giấy phép: độc quyền (sẽ trở thành Nguồn mở);
  • Tóm lại: "Ứng dụng khách đa nền tảng đơn giản dành cho Kubernetes."

Tổng quan về GUI cho Kubernetes

Một sản phẩm mới của VMware, ban đầu được tạo ra như một phần của cuộc thi hackathon nội bộ (vào tháng 2019 năm XNUMX). Được cài đặt trên máy tính cá nhân, hoạt động trên cơ sở điện tử (hỗ trợ Linux, macOS và Windows) và yêu cầu kubectl v1.14.0 trở lên.

Các tính năng chính của Kubewise:

  • Giao diện tương tác với các thực thể Kubernetes được sử dụng phổ biến nhất: nút, không gian tên, v.v.
  • Hỗ trợ nhiều tệp kubeconfig cho các cụm khác nhau.
  • Thiết bị đầu cuối có khả năng đặt biến môi trường KUBECONFIG.
  • Tạo các tệp kubeconfig tùy chỉnh cho không gian tên đã cho.
  • Các tính năng bảo mật nâng cao (RBAC, mật khẩu, tài khoản dịch vụ).

Cho đến nay, dự án chỉ có một bản phát hành - phiên bản 1.1.0 ngày 26 tháng 2019 năm 2020. Hơn nữa, các tác giả đã lên kế hoạch phát hành nó ngay lập tức dưới dạng Nguồn mở, nhưng do các vấn đề nội bộ (không liên quan đến vấn đề kỹ thuật), họ không thể thực hiện được điều này. Kể từ tháng XNUMX năm XNUMX, các tác giả đang làm việc trên bản phát hành tiếp theo và nên bắt đầu quá trình mở mã cùng lúc.

6. Bảng điều khiển OpenShift

Tổng quan về GUI cho Kubernetes

Mặc dù giao diện web này là một phần của bản phân phối OpenShift (nó được cài đặt ở đó bằng nhà điều hành đặc biệt), các tác giả cung cấp cho khả năng cài đặt/sử dụng nó trong cài đặt Kubernetes bình thường (vanilla).

OpenShift Console đã được phát triển trong một thời gian dài nên nó đã tích hợp nhiều tính năng. Chúng tôi sẽ đề cập đến những cái chính:

  • Cách tiếp cận giao diện được chia sẻ - hai "quan điểm" về các khả năng có sẵn trong Bảng điều khiển: dành cho quản trị viên và dành cho nhà phát triển. Cách thức quan điểm của nhà phát triển nhóm các đối tượng ở dạng dễ hiểu hơn cho các nhà phát triển (theo ứng dụng) và tập trung giao diện vào việc giải quyết các tác vụ điển hình như triển khai ứng dụng, theo dõi trạng thái xây dựng/triển khai và thậm chí chỉnh sửa mã thông qua Eclipse Che.
  • Quản lý khối lượng công việc, mạng, lưu trữ, quyền truy cập.
  • Phân tách hợp lý khối lượng công việc thành các dự án và ứng dụng. Trong một trong những phiên bản mới nhất - v4.3 - đã xuất hiện đặc biệt Bảng điều khiển dự án, hiển thị dữ liệu thông thường (số lượng và trạng thái triển khai, nhóm, v.v.; mức tiêu thụ tài nguyên và các chỉ số khác) trong một lát cắt dự án.
  • Cập nhật trong thời gian thực hiển thị trạng thái của cụm, những thay đổi (sự kiện) đã xảy ra trong đó; xem nhật ký.
  • Xem dữ liệu giám sát dựa trên Prometheus, Alertmanager và Grafana.
  • Quản lý các nhà khai thác được đại diện trong trung tâm điều hành.
  • Quản lý các bản dựng chạy qua Docker (từ một kho lưu trữ được chỉ định với Dockerfile), S2I hoặc các tiện ích bên ngoài tùy ý.

NB: Chúng tôi đã không thêm những người khác để so sánh Bản phân phối Kubernetes (ví dụ, ít nổi tiếng hơn nhiều Kubesphere): mặc dù thực tế là GUI có thể rất tiên tiến trong chúng, nhưng nó thường là một phần của ngăn xếp tích hợp của một hệ thống lớn. Tuy nhiên, nếu bạn nghĩ rằng không có đủ giải pháp hoạt động đầy đủ trong bản cài đặt vanilla K8s, hãy cho chúng tôi biết trong phần nhận xét.

tiền thưởng

1. Portainer trên Kubernetes trong bản Beta

  • website;
  • kho (~100 sao GitHub);
  • Giấy phép: Zlib(?) (tương tự cho dự án mẹ).

Một dự án từ nhóm Portainer đã phát triển giao diện phổ biến cùng tên để làm việc với Docker. Vì dự án đang ở giai đoạn phát triển ban đầu (phiên bản beta đầu tiên và duy nhất đi ra ngày 16 tháng 2020 năm XNUMX), chúng tôi không đánh giá các tính năng của nó. Tuy nhiên, nó có thể được nhiều người quan tâm: nếu đây là về bạn, hãy theo dõi sự phát triển.

2. Bảng băng

  • website;
  • Giấy phép: độc quyền;
  • Tóm lại: "Trình chỉnh sửa Kubernetes trực quan".

Tổng quan về GUI cho Kubernetes

Ứng dụng dành cho máy tính để bàn mới này nhằm mục đích trực quan hóa và quản lý tài nguyên Kubernetes trong thời gian thực với giao diện kéo và thả đơn giản. Các đối tượng hiện được hỗ trợ là Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap và Secret. Họ sẽ sớm hứa sẽ hỗ trợ thêm cho Helm. Nhược điểm chính là sự gần gũi của mã (dự kiến mở "theo một cách nào đó") và thiếu sự hỗ trợ của Linux (cho đến nay chỉ có phiên bản dành cho Windows và macOS, mặc dù điều này rất có thể chỉ là vấn đề thời gian).

3.k9s

  • website;
  • Trình diễn;
  • kho (~7700 sao GitHub);
  • Giấy phép: Apache 2.0;
  • Tóm lại: "Giao diện bảng điều khiển dành cho Kubernetes cho phép bạn quản lý cụm của mình theo phong cách."

Tổng quan về GUI cho Kubernetes

Tiện ích này chỉ nằm trong phần bổ sung của bài đánh giá vì lý do nó cung cấp giao diện điều khiển GUI. Tuy nhiên, các tác giả thực sự đã tận dụng tối đa thiết bị đầu cuối, không chỉ cung cấp giao diện thân thiện với người dùng mà còn có 6 chủ đề được xác định trước và một hệ thống phím tắt và bí danh lệnh nâng cao. Cách tiếp cận toàn diện của họ không giới hạn ở hình thức bên ngoài: các tính năng của k9 rất ấn tượng: quản lý tài nguyên, hiển thị trạng thái của cụm, hiển thị tài nguyên dưới dạng biểu diễn phân cấp với các phụ thuộc, xem nhật ký, hỗ trợ RBAC, mở rộng khả năng thông qua plugin ... Tất cả điều này đã hấp dẫn đối với cộng đồng K8s rộng lớn: số lượng Ngôi sao GitHub của dự án gần như tốt bằng Bảng điều khiển Kubernetes chính thức!

4. Bảng điều khiển ứng dụng

Và ở cuối bài đánh giá - một danh mục nhỏ riêng biệt. Nó bao gồm hai giao diện web được thiết kế không phải để quản lý toàn diện các cụm Kubernetes mà để quản lý những gì được triển khai trong chúng.

Như bạn đã biết, một trong những công cụ hoàn thiện và phổ biến nhất để triển khai các ứng dụng phức tạp trong Kubernetes là Helm. Trong thời gian tồn tại, nhiều gói (biểu đồ Helm) đã được tích lũy để triển khai dễ dàng nhiều ứng dụng phổ biến. Do đó, sự xuất hiện của các công cụ trực quan phù hợp cho phép bạn quản lý vòng đời của biểu đồ là khá hợp lý.

4.1. Một mắt

  • kho (1300+ sao GitHub);
  • Giấy phép: Apache 2.0;
  • Tóm lại: “Một ứng dụng web để tìm kiếm và khám phá các biểu đồ Helm trên nhiều kho lưu trữ. Phục vụ như là cơ sở cho dự án trung tâm Helm."

Tổng quan về GUI cho Kubernetes

Sự phát triển này từ các tác giả của Helm được cài đặt trong Kubernetes và hoạt động trong cùng một cụm, thực hiện tác vụ. Tuy nhiên, hiện tại, dự án gần như không được triển khai. Mục đích chính của nó là hỗ trợ sự tồn tại của Helm Hub. Đối với các nhu cầu khác, các tác giả đề xuất Kubeapps (xem bên dưới) hoặc Red Hat Automation Broker (một phần của OpenShift, nhưng cũng không còn được phát triển nữa).

4.2. Kubeapps

  • website;
  • Trình bày;
  • kho (~2100 sao GitHub);
  • Giấy phép: Apache 2.0
  • Tóm lại: "Bảng điều khiển ứng dụng của bạn dành cho Kubernetes."

Tổng quan về GUI cho Kubernetes

Một sản phẩm từ Bitnami, cũng được cài đặt trong cụm Kubernetes, nhưng khác với Monocular ở điểm ban đầu tập trung vào làm việc với các kho lưu trữ riêng.

Các chức năng và tính năng chính của Kubeapps:

  • Xem và cài đặt biểu đồ Helm từ kho lưu trữ.
  • Kiểm tra, cập nhật và xóa các ứng dụng dựa trên Helm được cài đặt trên cụm.
  • Hỗ trợ kho lưu trữ biểu đồ tùy chỉnh và riêng tư (hỗ trợ ChartMuseum và JFrog Artifactory).
  • Xem và làm việc với các dịch vụ bên ngoài - từ Danh mục dịch vụ và Nhà môi giới dịch vụ.
  • Xuất bản các ứng dụng đã cài đặt bằng cơ chế Ràng buộc danh mục dịch vụ.
  • Hỗ trợ xác thực và tách quyền bằng RBAC.

Bảng tóm tắt

Dưới đây là bảng tóm tắt trong đó chúng tôi đã cố gắng tóm tắt và tổng hợp các tính năng chính của các giao diện trực quan hiện có để tiện cho việc so sánh:

Tổng quan về GUI cho Kubernetes
(Bản trực tuyến của bảng có sẵn trên Google Tài liệu.)

Kết luận

GUI cho Kubernetes là một thị trường ngách khá cụ thể và mới mẻ. Tuy nhiên, nó đang phát triển rất tích cực: có thể tìm thấy cả những giải pháp khá trưởng thành và những giải pháp rất trẻ vẫn còn chỗ để phát triển. Chúng phục vụ cho nhiều ứng dụng, cung cấp các tính năng và kiểu dáng phù hợp với hầu hết mọi sở thích. Chúng tôi hy vọng rằng đánh giá này sẽ giúp bạn chọn công cụ phù hợp nhất với nhu cầu hiện tại của bạn.

PS

Cảm ơn bạn kvap cho số liệu trên OpenShift Console để làm bảng so sánh nhé!

Đọc thêm trên blog của chúng tôi:

Nguồn: www.habr.com

Thêm một lời nhận xét