- vừa được xem lúc

Triển khai Kubernetes Cluster với K3s trên MacOS

0 0 35

Người đăng: Minh Hoàng

Theo Viblo Asia

1. Lời mở đầu

Xin chào mọi người 👋👋👋

Tiếp tục chuỗi bài Mayfest2023 thì mình sẽ chia sẻ với mọi người một phiên bản của Kubernetes mang tên K3s. Trong quá trình cài đặt để sử dụng thì mình gặp một chút vấn đề nên tiện bài viết này thì mình cũng chia sẻ với mọi người cách xử lý luôn. Không dài dòng nữa, cùng bắt đầu thôi =))))

2. K3s là gì?

K3s là một nền tảng Kubernetes nhẹ được tối ưu hóa cho các trường hợp sử dụng có tài nguyên hạn chế như IoT, CI, hệ thống nhúng (embedded systems) hoặc các môi trường điện toán đám mây nhỏ. K3s là một sản phẩm của công ty Rancher Labs, được giới thiệu vào năm 2019.

Tính năng chính của K3s bao gồm:

  1. Nhẹ và dễ triển khai: K3s có kích thước dưới 100MB và cài đặt đơn giản hơn so với Kubernetes. Nó có thể được triển khai trên các hệ thống có tài nguyên hạn chế, chẳng hạn như Raspberry Pi hoặc VM.

  2. Cấu hình đơn giản: K3s sử dụng một tệp cấu hình YAML đơn giản để cấu hình các thành phần Kubernetes. Người dùng có thể sử dụng các tệp cấu hình YAML tương tự như trong Kubernetes để triển khai ứng dụng của họ trên K3s.

  3. Hiệu suất cao: K3s được tối ưu hóa để đạt được hiệu suất cao trên các nền tảng có tài nguyên hạn chế. Nó sử dụng các công nghệ như SQLite và Traefik để giảm độ phức tạp và tăng tốc độ xử lý.

  4. Bảo mật: K3s được thiết kế với bảo mật cao. Nó sử dụng TLS để bảo vệ các kết nối giữa các thành phần và hỗ trợ các tính năng bảo mật khác như mã hóa dữ liệu và xác thực người dùng.

  5. Hỗ trợ cộng đồng: K3s được phát triển và hỗ trợ bởi một cộng đồng lớn, với nhiều người dùng và nhà phát triển đang đóng góp vào dự án.

Thực sự K3s đáp ứng đủ tiêu chí ngon-bổ-rẻ cho việc triển khai và quản lý các ứng dụng chạy Kubernetes trên các môi trường có tài nguyên hạn chế.

Vậy để cài đặt K3s thì bạn cần làm gì nhỉ? Truy cập vào trang chủ của K3s thì bạn sẽ thấy chỉ cần chạy câu lệnh phía dưới:

curl -sfL https://get.k3s.io | sh - 

Tuy nhiên sau khi chạy xong bạn lại gặp lỗi như này 😅

➜ ~ curl -sfL https://get.k3s.io | sh -
[ERROR] Can not find systemd or openrc to use as a process supervisor for k3s

Lỗi Can not find systemd or openrc to use as a process supervisor for k3s xuất hiện khi cài đặt K3s trên MacOS là do hệ thống không có trình quản lý tiến trình nào được hỗ trợ bởi K3s. Trên các hệ thống Linux phổ biến, K3s sử dụng systemd hoặc OpenRC để quản lý tiến trình, tuy nhiên, trên MacOS, K3s không hỗ trợ các trình quản lý tiến trình này.

Bạn vẫn muốn cài K3s trên MacOS, okay, mình sẽ giúp bạn 😉

3. Cài đặt K3s trên MacOS

Bạn có thể tham khảo các các cách sau để cài đặt K3s trên MacOs:

3.1. Sử dụng K3d

Trước hết, K3d (K3s in Docker) là một tiện ích được thiết kế để dễ dàng chạy k3s trong Docker. K3d sử dụng Docker để tạo ra các node K3s, và có thể được sử dụng để tạo ra các cluster K3s cho mục đích phát triển hoặc kiểm thử. Cụ thể hơn về K3d thì chắc mình sẽ dành riêng một bài viết cho nó nhé 😗

Đầu tiên, bạn cần cài đặt K3d, có khá nhiều cách, ở đây mình dùng luôn homebrew để cài:

brew install k3d

Kiểm tra version xem đã cài thành công chưa nào, như bạn đã thấy thì mặc định K3d đã cài luôn K3s cho mình rồi :v

➜ ~ k3d version
k3d version v5.4.7
k3s version v1.25.6-k3s1 (default)

Với nhu cầu sử dụng K3s thôi thì bạn chỉ cần dùng K3d để tạo một cụm single node K3s đơn giản, không cần thêm tuỳ chọn gì cả:

➜ ~ k3d cluster create k3s-demo
INFO[0000] Prep: Network
INFO[0000] Created network 'k3d-k3s-demo'
INFO[0000] Created image volume k3d-k3s-demo-images
INFO[0000] Starting new tools node...
INFO[0000] Starting Node 'k3d-k3s-demo-tools'
INFO[0009] Creating node 'k3d-k3s-demo-server-0'
INFO[0011] Pulling image 'docker.io/rancher/k3s:v1.25.6-k3s1'
INFO[0368] Creating LoadBalancer 'k3d-k3s-demo-serverlb'
INFO[0370] Pulling image 'ghcr.io/k3d-io/k3d-proxy:5.4.7'
INFO[0556] Using the k3d-tools node to gather environment information
INFO[0556] Starting new tools node...
INFO[0556] Starting Node 'k3d-k3s-demo-tools'
INFO[0557] Starting cluster 'k3s-demo'
INFO[0557] Starting servers...
INFO[0557] Starting Node 'k3d-k3s-demo-server-0'
INFO[0561] All agents already running.
INFO[0561] Starting helpers...
INFO[0561] Starting Node 'k3d-k3s-demo-serverlb'
INFO[0567] Injecting records for hostAliases (incl. host.k3d.internal) and for 3 network members into CoreDNS configmap...
INFO[0569] Cluster 'k3s-demo' created successfully!
INFO[0569] You can now use it like this:
kubectl cluster-info

Lệnh trên đã tạo ra một cụm K3s mới với tên là k3s-demo. Bạn có thể đặt tên khác bằng cách thay k3s-demo bằng tên bạn mong muốn.

Để kết nối kubectl đến cụm K3s vừa tạo, bạn có thể sử dụng lệnh sau:

➜ ~ export KUBECONFIG="$(k3d kubeconfig write k3s-demo)"

Lệnh trên sẽ tạo một tệp cấu hình kubectl mới và lưu trữ nó trong biến môi trường KUBECONFIG.

Sau khi tạo cụm K3s, bạn có thể kiểm tra nó bằng cách sử dụng kubectl. Ví dụ, bạn có thể kiểm tra danh sách các nodes trong cụm bằng lệnh:

➜ ~ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3d-k3s-demo-server-0 Ready control-plane,master 81s v1.25.6+k3s1

Vậy là bạn đã cài đặt thành công K3s bằng K3d trên macOS và có thể sử dụng để triển khai ứng dụng trên Kubernetes.

3.2 Sử dụng Multipass

Multipass là một công cụ tạo máy ảo trên các nền tảng hỗ trợ, bao gồm MacOS. Bạn có thể tải và cài đặt Multipass từ đây hoặc sử dụng trình quản lý package như Homebrew để cài đặt:

brew install multipass

Sau khi đã cài xong multipass, bạn cần tạo một VM với multipass, chạy lệnh sau để tạo một VM với tên k3s-demo:

multipass launch --name k3s-demo --cpus 2 --memory 2048M --disk 10G

Các thông số cho VM ở trên thì bạn có thể tùy chỉnh theo ý muốn nhé 😄, tiếp theo bạn sử dụng multipass để ssh vào VM k3s-demo vừa được tạo, và sử dụng curl để tải xuống script cài đặt K3s và chạy script đó:

multipass shell k3s-demo
curl -sfL https://get.k3s.io | sh -

Khi quá trình cài đặt đã hoàn tất, bạn chỉ cần exec vào VM để kiểm tra trạng thái của K3s:

multipass exec k3s-demo sudo k3s kubectl get nodes

Vậy là bạn có thể sử dụng K3s trên MacOS bằng cách sử dụng Multipass để tạo một VM và cài đặt K3s trên đó 😗

4. Tổng kết

Vậy là qua bài viết vừa rồi, mình đã cùng mọi người xử lý vấn đề khi cài đặt K3s trên nền tảng MacOS, cá nhân mình sẽ lựa chọn cách 1 là sử dụng K3d vì nó triển khai nhanh chóng và tiện lợi cho việc xây dựng, quản lý các cụm K8s. Nếu bạn còn có cách nào hay hơn thì hãy chia sẻ phía dưới phần bình luận để mọi người cùng tham khảo nhé 😄

Cảm ơn mọi người đã dành thời gian theo dõi bài viết này! 🙇

5. Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 55

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 113

- vừa được xem lúc

[Kubernetes] Kubectl và các command cơ bản

Mở đầu. Kubectl là công cụ quản trị Kubernetes thông qua giao diện dòng lệnh, cho phép bạn thực thi các câu lệnh trong Kubernetes cluster.

0 0 59

- vừa được xem lúc

Triển khai EFK Stack trên Kubernetes

EFK stack on K8S. Giới thiệu. Một hệ thống có thể chạy nhiều dịch vụ hoặc ứng dụng khác nhau, vì vậy việc. theo dõi hệ thống là vô cùng cần thiết.

0 0 72

- vừa được xem lúc

Thực hành Kubernetes (K8S) bằng cách sử dụng lệnh Command

Bài hướng dẫn hôm nay sẽ hướng dẫn sử dụng K8S bằng cách sử dụng câu lệnh thay vì UI trên web. Có 2 lựa chọn để thực hiện:. . Sử dụng Cloud Shell.

0 0 56

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 49