KlusterKit

KlusterKit: Bộ công cụ nguồn mở giúp đơn giản hóa việc triển khai Kubernetes và chạy trong môi trường tại chỗ bị cô lập về mặt vật lý

KlusterKit

Hôm nay, chúng tôi vui mừng thông báo rằng Platform9 đang cung cấp nguồn mở Klusterkit, một bộ gồm ba công cụ, theo giấy phép Apache v2.0 trên GitHub.

Khách hàng của chúng tôi triển khai phần mềm tại các trung tâm dữ liệu riêng tư thường không được kết nối với Internet (vì lý do bảo mật hoặc lý do khác). Các công ty lớn này muốn tận dụng Kubernetes và hiện đại hóa ứng dụng của họ, đồng thời triển khai chúng ở các trung tâm dữ liệu khác nhau, những nơi thường không được kết nối với thế giới bên ngoài. Đây là lúc Klusterkit xuất hiện, giúp dễ dàng cung cấp và quản lý các cụm K8 trong môi trường cách ly về mặt vật lý.

Klusterkit bao gồm ba công cụ độc lập có thể được sử dụng cùng nhau hoặc riêng biệt để quản lý vòng đời của cụm sản xuất Kubernetes:

  1. vvdadm, CLI để đơn giản hóa việc quản lý cụm etcd.
  2. gật đầu, một CLI để quản trị nút mở rộng kubeadm và triển khai các phần phụ thuộc mà kubeadm cần.
  3. cctl, một công cụ quản lý vòng đời cụm sử dụng API cụm từ cộng đồng Kubernetes và sử dụng nodeadm và etcdadm để phân phối và duy trì liền mạch các cụm Kubernetes có tính sẵn sàng cao trong môi trường tại chỗ và thậm chí cả môi trường cách ly vật lý.

Cùng với nhau, ba công cụ này thực hiện các nhiệm vụ sau:

  • Dễ dàng cung cấp và quản lý cụm etcd và bảng điều khiển Kubernetes có tính sẵn sàng cao trong môi trường tại chỗ được cách ly về mặt vật lý thông qua API cụm.
  • Khôi phục bảng điều khiển cụm sau khi xảy ra lỗi khi sử dụng bản sao lưu etcd.
  • Đóng gói tất cả các tạo phẩm cần thiết để đưa Kubernetes vào môi trường cách ly về mặt vật lý.

Tính năng của Klusterkit

  • Hỗ trợ đa chủ (HA cluster K8s).
  • Cung cấp và quản lý các cụm etcd an toàn.
  • Làm việc trong môi trường bị cô lập về mặt vật lý.
  • Hỗ trợ nâng cấp và rollback.
  • Flannel (vxlan) làm CNI cho phần phụ trợ; Có kế hoạch hỗ trợ các CNI khác.
  • Sao lưu và khôi phục các cụm etcd sau khi mất số đại biểu.
  • Bảo vệ bảng điều khiển khỏi hết bộ nhớ và thời gian CPU.

Kiến trúc giải pháp Klusterkit

KlusterKit

Để đơn giản và có khả năng chịu lỗi cao, Klusterkit sử dụng một tệp cctl-state.yaml duy nhất để lưu trữ siêu dữ liệu cụm Kubernetes. Thông qua cctl CLI, bạn có thể quản lý vòng đời của cụm Kubernetes trên bất kỳ máy nào có tệp trạng thái này. Đây có thể là máy tính xách tay của người vận hành hoặc bất kỳ máy tính nào khác là một phần của cụm Kubernetes.

Cctl triển khai và gọi giao diện cluster-api từ thượng nguồn dưới dạng thư viện cho các hoạt động CRUD trên cụm. Anh ta sử dụng nhà cung cấp ssh, một nhà cung cấp api cụm kim loại trần nguồn mở từ Platform9, từ đó gọi etcdadm và nodeadm để thực hiện các thao tác trên cụm.

Cách sử dụng Klusterkit và các thành phần của nó:

1 – Có thể dễ dàng thu thập bất kỳ công cụ nào trong ba công cụ bằng lệnh go get:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Sau đó, các tệp thực thi này có thể được đóng gói và sao chép vào các máy mục tiêu nơi cụm Kubernetes có tính sẵn sàng cao sẽ chạy. Đặt các tệp nodeadm và etcdadm vào thư mục phiên bản:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Nếu bạn cần sắp xếp cụm Kubernetes cục bộ, trong môi trường cách ly về mặt vật lý, bạn có thể dễ dàng tải xuống trước các phần phụ thuộc cần thiết trên máy tính có quyền truy cập Internet bằng lệnh tải xuống nodeadm và etcdadm. Sau đó, các mục đã tải xuống (tức là tệp đơn vị kubelet và kubelet cho các tệp thực thi systemd, CNI, tệp kubeadm, tất cả các hình ảnh vùng chứa bao gồm Kubernetes, hình ảnh được lưu giữ và tệp systemd, hình ảnh vùng chứa etcd và các tệp cấu hình tương ứng) có thể dễ dàng được sao chép sang các máy chủ bị cô lập về mặt vật lý. với cctl, nodeadm và etcdadm. (Xem chi tiết ở wiki).

4 – Khi mọi thứ đã sẵn sàng, bạn có thể tạo cụm Kubernetes đầu tiên bằng một vài lệnh:

– Đầu tiên tạo thông tin xác thực cho cụm.

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– Sau đó tạo một đối tượng cụm. –help hiển thị danh sách các tùy chọn được hỗ trợ.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Cuối cùng, tạo máy đầu tiên trong cluster.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Đọc thêm tài liệu tại GitHub.

Nguồn: www.habr.com

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