Hãy cùng khám phá cách bạn có thể cài đặt phiên bản cục bộ của Kubernetes trên Ubuntu bằng MicroK8s (MicroKates). Với thiết lập này, bạn có thể dễ dàng lưu trữ các ứng dụng container một cách an toàn, đáng tin cậy và có khả năng mở rộng cao.
1. Tại sao sử dụng MicroK8s?
Kubernetes là một nền tảng mã nguồn mở giúp hợp lý hóa các hoạt động của DevOps bằng cách tự động hóa việc triển khai, mở rộng quy mô và quản lý các ứng dụng được chứa trong container. Kubernetes còn được gọi là K8s, cái tên bắt nguồn từ việc đếm tám chữ cái giữa k và s trong tên Kubernetes. Hãy nghĩ về MicroK8s như một phiên bản Micro Kubernetes.
Hầu hết các môi trường đám mây cấp sản xuất công cộng và riêng tư chạy Ubuntu đều sử dụng Charmed Kubernetes để quản lý các ứng dụng được container hóa. Tuy nhiên, thách thức với Charmed Kubernetes là nó ngốn tài nguyên và đòi hỏi một mức độ hiểu biết nhất định để cấu hình đúng cách.
Đây là lúc MicroK8s xuất hiện. MicroK8s là một Kubernetes nhỏ và nhẹ, có thể chạy trên PC của nhà phát triển, thiết bị IoT hoặc trên các thiết bị biên mà không cần máy ảo. MicroK8s là đa nền tảng và có thể chạy trên cả kiến trúc Intel và ARM.
MicroK8s cung cấp một trong những cách tốt nhất để tự làm quen với Kubernetes. Đây là Kubernetes được chứng nhận bởi Cloud Native Computing Foundation (CNCF), đảm bảo rằng việc triển khai Kubernetes là phù hợp và có thể tương tác theo các tiêu chuẩn ngành cụ thể.
2. Bước 1: Cài đặt MicroK8s trên Ubuntu
Bạn có thể dễ dàng cài đặt MicroK8s trên Ubuntu bằng lệnh snap.
sudo snap install microk8s --classic
Ngoài ra, bạn có thể cài đặt MicroK8s từ GUI bằng Trung tâm phần mềm Ubuntu. Đơn giản chỉ cần tìm kiếm microk8s và sau đó nhấp vào nút Install.
3. Bước 2: Định cấu hình tường lửa cho MicroK8s
Để đảm bảo giao tiếp liền mạch giữa các nhóm và với internet, bạn nên bật giao tiếp đến và đi trên giao diện mạng container của tường lửa.
Một pod là đơn vị tính toán có thể triển khai nhỏ nhất trong Kubernetes; nó có thể là một hoặc một nhóm các container với tài nguyên mạng và lưu trữ được chia sẻ, v.v.
sudo ufw allow in on cni0 && sudo ufw allow out on cni0
Sau đó, chạy lệnh sau:
sudo ufw default allow routed
4. Bước 3: Thêm người dùng vào Nhóm MicroK8s
Hiện tại, bạn sẽ phải sử dụng lệnh sudo để chạy hầu hết các lệnh của MicroK8s. Mặc dù đây là một biện pháp bảo mật tốt trên máy chủ sản xuất, nhưng nó có thể không cần thiết trên máy phát triển.
Thêm người dùng của bạn vào nhóm MicroK8s để không phải sử dụng sudo.
sudo usermod -aG microk8s $USER
Ngoài ra, hãy đặt người dùng hiện tại của bạn làm chủ sở hữu của thư mục ~/.kube.
sudo chown -f -R $USER ~/.kube
Để các thay đổi có hiệu lực, hãy tải lại các nhóm người dùng bằng cách chạy lệnh sau:
newgrp microk8s
5. Bước 4: Kích hoạt các tiện ích bổ sung (add-on) quan trọng
Theo mặc định, MicroK8s chứa mức tối thiểu để đạt được dấu chân tối thiểu trên các thiết bị IoT và edge. Tuy nhiên, bạn có thể cài đặt một vài tiện ích bổ sung (add-on) quan trọng để quản lý các dịch vụ của MicroK8s. Bật tiện ích bổ sung DNS, trang tổng quan và bộ nhớ bằng lệnh microk8s.
microk8s enable dns dashboard storage
Các dịch vụ khác có thể yêu cầu tiện ích bổ sung DNS, vì vậy bạn nên luôn bật tiện ích bổ sung này.
Tiện ích bổ sung bảng điều khiển cung cấp cho bạn tổng quan đồ họa về các dịch vụ trong MicroK8s; bạn cũng có thể sử dụng nó để quản lý các dịch vụ.
Bạn có thể xem danh sách các tiện ích bổ sung MicroK8s có sẵn bằng cách chạy lệnh:
microk8s status
6. Bước 5: Xem Trang tổng quan MicroK8s
Bây giờ bạn đã bật tiện ích bổ sung bảng điều khiển, bạn có thể dễ dàng truy cập trang tổng quan MicroK8s từ trình duyệt web của mình.
Đầu tiên, bạn cần địa chỉ IP của nhóm bảng điều khiển. Bạn có thể lấy nó bằng cách chạy lệnh:
microk8s kubectl get all --all-namespaces
Từ đầu ra của lệnh ở trên, bạn sẽ nhận thấy rằng dịch vụ kubernetes-dashboard đang chạy trên địa chỉ IP 10.152.183.35 và đang nghe trên cổng TCP 443. Lưu ý rằng địa chỉ IP này có thể khác với địa chỉ đang được sử dụng bởi dịch vụ bảng điều khiển của bạn vì nó được tạo ngẫu nhiên.
Trong trình duyệt, hãy truy cập địa chỉ IP được liệt kê. Trong trường hợp này, nó sẽ là https://10.152.183.35:443. Đảm bảo rằng bạn trỏ đến đúng URL.
Vì mục đích bảo mật, bảng điều khiển Kubernetes sẽ yêu cầu bạn cung cấp chi tiết xác thực để đăng nhập. Bạn có thể truy cập bảng điều khiển token mặc định bằng cách chạy lệnh sau. Sau đó sao chép kubernetes.io/service-account-token được trình bày và dán nó vào đầu vào token.
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token
Trang tổng quan trình bày tổng quan về khối lượng công việc, dịch vụ, cấu hình, clusters, v.v.
7. Bước 6: Tạo dịch vụ với MicroK8s
Để xem các MicroK8 đang hoạt động, hãy tạo một triển khai dịch vụ microbot có chứa hai nhóm. Tạo nhóm bằng lệnh kubectl:
microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1
Mở rộng nhóm microbot bằng cách sử dụng lệnh bên dưới.
microk8s kubectl scale deployment microbot --replicas=2
Tạo một dịch vụ để hiển thị việc triển khai microbot.
microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service
Hiện chúng ta đã triển khai hai nhóm microbot dưới tên service/microbot-service. Bạn có thể xem chi tiết của dịch vụ microbot và các dịch vụ khác bằng cách chạy lệnh sau:
microk8s kubectl get all --all-namespaces
Bạn sẽ nhận thấy rằng dịch vụ microbot đang chạy trên NodePort, do đó, bạn có thể truy cập nó thông qua trình duyệt. Trong trường hợp này, dịch vụ đang chạy trên cổng được tạo ngẫu nhiên 30353.
Trong trình duyệt của bạn, hãy truy cập URL http://localhost:30353, trong đó 30353 là số cổng được liệt kê trong đầu ra ở trên. Đảm bảo rằng bạn đang sử dụng số cổng chính xác.
8. Nên chọn Kubernetes hay Docker?
Bài viết này đã hướng dẫn cách cài đặt cục bộ Kubernetes tối thiểu trên PC hoặc thiết bị biên của bạn. Kubernetes là một phần trong quy trình làm việc của nhiều nhà phát triển và được sử dụng rộng rãi để triển khai các ứng dụng container quy mô lớn trong sản xuất.
Kubernetes được sử dụng để quản lý hoặc sắp xếp một nhóm các thùng chứa, ví dụ như thùng chứa docker, một cách dễ dàng. Mặt khác, Standalone Docker chủ yếu được sử dụng để quản lý các vùng chứa đơn lẻ. Việc lựa chọn sử dụng Docker hay Kubernetes sẽ phụ thuộc vào năng lực của nhóm bạn và quy mô của phần mềm để triển khai cho sản xuất.
>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:
- Tất cả những điều bạn cần biết về khóa học lập trình tại FUNiX FPT
- 5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX
- Từ A-Z chương trình học FUNiX – Mô hình đào tạo lập trình trực tuyến số 1 Việt Nam
- Lý do phổ biến khiến học viên nước ngoài chọn FUNiX
- Lưu ý để học blockchain trực tuyến hiệu quả cao tại FUNiX
- Lý do nữ giới nên chọn FUNiX để học chuyển nghề IT
- FUNiX trở thành đối tác của Liên minh Blockchain Việt Nam
- 3 lý do bạn trẻ nên học blockchain trực tuyến ở FUNiX
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/install-local-kubernetes-instance-microk8s-ubuntu/
Bình luận (0
)