Helpex - Trao đổi & giúp đỡ Đăng nhập

Multipass và MicroK8s: Con đường nhanh nhất đến Ubuntu và Kubernetes?

Multipass và MicroK8s: Con đường nhanh nhất đến Ubuntu và Kubernetes?

Các phím tắt Multipass và MicroK8s có hợp pháp cho Ubuntu và Kubernetes không?

Trong cuộc phỏng vấn gần đây của tôi với Carmine Rimi của Canonical , anh ấy đã đề cập đến Multipass và MicroK8s như những lựa chọn thay thế cho Docker để chạy quy trình công việc dựa trên Kubernetes trên một máy phát triển. Là một người dùng lâu dài của Docker cho Máy tính để bàn (Mac), tôi rất tò mò muốn xem nó có thể cung cấp những lựa chọn thay thế nào.

Bạn cũng có thể thích: Cách cài đặt và triển khai Kubernetes trên Ubuntu 16.04

Để làm rõ, Multipass là trình quản lý VM nhẹ mà mọi thứ khác đều chạy trên đó. Nó chỉ chạy các hình ảnh dựa trên Ubuntu và hoạt động với hypervisor gốc hệ điều hành của bạn hoặc Virtualbox trên Windows và macOS.

Cài đặt

Multipass

Tôi là người dùng macOS, vì vậy đã kích hoạt homebrew để cài đặt Multipass lần đầu tiên, nhưng snaps có sẵn và mã nhị phân cho Windows:

brew cask install multipass


Tiếp theo, bạn có thể tìm kiếm hình ảnh bằng findlệnh trả về danh sách các hình ảnh có sẵn (bốn hình ảnh tại thời điểm viết bài):

multipass find

Để khởi chạy hình ảnh cập nhật nhất, hãy sử dụng multipass launch ubuntulệnh hoặc để chỉ định phiên bản, thay thế “ubuntu” bằng một phiên bản từ findđầu ra ở trên hoặc URL hình ảnh. Ví dụ: để khởi chạy Ubtunu 16.04, hãy sử dụng multipass launch 16.04.


Sau đó, để kết nối với một phiên bản đang chạy. Đầu tiên, tìm tên phiên bản của nó bằng listtùy chọn, sau đó sử dụng shelltùy chọn, chỉ định hình ảnh. Ví dụ:

$ multipass list

Name                    State             IPv4             Image
close-willet            Running           192.168.64.4     Ubuntu 16.04 LTS
rewarded-stud           Running           192.168.64.3     Ubuntu 18.04 LTS


Sau đó:

multipass shell rewarded-stud


Bạn cũng có thể chạy các lệnh trong một phiên bản một cách gián tiếp mà không cần kết nối trực tiếp với phiên bản đó bằng exectùy chọn và lệnh được phân tách bằng dấu gạch ngang kép ( --), ví dụ:

multipass exec rewarded-stud -- ls -a


Sau đó, dừng và xóa một phiên bản với các tùy chọn stopdeletetùy chọn tương ứng:

multipass stop rewarded-stud
multipass delete rewarded-stud


Điều này vẫn để lại một số tàn dư phía sau, để loại bỏ hoàn toàn tất cả các trường hợp và hình ảnh đã xóa, hãy sử dụng multipass purge.

MicroK8s

Đây là nơi mọi thứ trở nên thú vị. Không có gói bổ sung nào để cài đặt trên máy chủ của bạn (nếu bạn đang chạy macOS hoặc Windows), bạn cài đặt MicroK8s chỉ trong tích tắc trên phiên bản Ubuntu được lưu trữ trên nhiều máy chủ của bạn.

Kết nối với một phiên bản như đã nêu chi tiết ở trên, sau đó chạy phần sau bên trong phiên bản:

sudo snap install microk8s --classic


Sau đó khởi động MicroK8 bằng:

sudo microk8s.start


Ngoài ra, khởi động MicroK8 mà không cần kết nối với phiên bản bằng cách sử dụng:

multipass exec intrigued-kudu -- /snap/bin/microk8s.start


OK, tuyệt vời, nhưng điều này là khó hiểu từ máy chủ, sẽ tốt hơn nếu sử dụng một cái gì đó như kubectl .

Trước tiên, bạn cần thêm người dùng đa phương thức vào nhóm microk8s để nó có quyền chạy và truy cập các dịch vụ cần thiết:

multipass exec intrigued-kudu -- sudo usermod -a -G microk8s multipass


Tiếp theo, sao chép tệp kubeconfig từ phiên bản:

multipass exec intrigued-kudu -- /snap/bin/microk8s.config > kubeconfig


Sau đó, sử dụng cấu hình mới để truy cập Kubernetes đang chạy trên phiên bản:

kubectl --kubeconfig=kubeconfig get all --all-namespaces


Bạn có thể xem những dịch vụ nào đang chạy trên cụm Kubernetes với:

$ multipass exec intrigued-kudu -- /snap/bin/microk8s.kubectl cluster-info

Kubernetes master is running at https://127.0.0.1:16443
Heapster is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/heapster/proxy
CoreDNS is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Grafana is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
InfluxDB is running at https://127.0.0.1:16443/api/v1/namespaces/kube-system/services/monitoring-influxdb:http/proxy


Thay thế “127.0.0.1” bằng IP của máy ảo và bạn sẽ có thể truy cập các dịch vụ như bình thường.

Từ phát triển đến sản xuất

Cho đến nay, rất tốt, nhưng điều này mang lại lợi ích gì cho bất kỳ quy trình làm việc hiện tại nào mà bạn có thể đã có? Canonical lập luận rằng multipass cho phép bạn truy cập vào cùng những hình ảnh mà họ cung cấp cho các nhà cung cấp đám mây, mang lại cho bạn một môi trường nhất quán từ phát triển đến sản xuất. Có nhiều cách khác để tìm và sử dụng những hình ảnh này với các công cụ khác, và nhiều người có thể tranh luận rằng họ không cần sự nhất quán đó.

Nếu bạn hài lòng khi thêm một công cụ khác cùng với (hoặc thay vì) bất kỳ thứ gì khác mà bạn đang sử dụng (và chỉ cần hình ảnh Ubuntu), thì Multipass sử dụng CPU và không gian đĩa tối thiểu và đảm bảo cho bạn hình ảnh đáng tin cậy phù hợp với hơn 30% những hình ảnh được sử dụng trên đám mây .

Đọc thêm


Dockerless, Phần 1: Công cụ nào để thay thế Docker bằng và làm thế nào

Draft vs. Skaffold: Phát triển trên Kubernetes

2 hữu ích 0 bình luận 26k xem chia sẻ

Có thể bạn quan tâm

loading