+12

Bài 3: Cài đặt Kubernetes với Microk8s 1.26 trên Ubuntu 22.04

Một người bạn của tôi đã từng hỏi, tại sao tôi lại lại thích microk8s hơn minikube?… Kể từ đó, chúng tôi không bao giờ nói chuyện nữa.

Đó là một câu hỏi khó, đặc biệt là đối với một kỹ sư. Câu trả lời không quá rõ ràng, vì nó phải tự trải nghiệm và sở thích cá nhân. Để tôi chỉ cho bạn hiểu vì sao.

MicrroK8s là gì?

MicroK8s là một nền tảng Kubernetes nhẹ và độc lập, được phát triển bởi Canonical, nhà cung cấp của hệ điều hành Ubuntu. Nó được thiết kế để giúp các nhà phát triển và nhà quản trị hệ thống triển khai và quản lý các ứng dụng và dịch vụ đám mây trên Kubernetes một cách nhanh chóng và dễ dàng.

MicroK8s cung cấp một cách đơn giản để triển khai một cụm Kubernetes trên một máy tính cá nhân, một môi trường phát triển hoặc một trung tâm dữ liệu. Nó cung cấp cho người dùng một số tính năng quan trọng như:

  • Cài đặt nhanh chóng và dễ dàng: MicroK8s có thể được cài đặt chỉ bằng một lệnh duy nhất và không cần đòi hỏi kiến thức chuyên môn về Kubernetes.
  • Độc lập và linh hoạt: MicroK8s hoạt động như một nền tảng độc lập và có thể được triển khai trên bất kỳ hệ điều hành nào.
  • Tích hợp tốt với các công cụ phát triển và triển khai: MicroK8s tích hợp với các công cụ phát triển và triển khai phổ biến như Docker, Helm, kubectl và các công cụ DevOps khác.
  • An toàn và bảo mật: MicroK8s cung cấp các tính năng bảo mật và an toàn như tường lửa mạng, TLS và RBAC để giữ cho cụm Kubernetes của bạn an toàn và bảo mật.

Tóm lại, MicroK8s là một giải pháp Kubernetes nhẹ và độc lập, giúp người dùng triển khai và quản lý các ứng dụng đám mây một cách nhanh chóng và dễ dàng trên các môi trường khác nhau.

Lợi ích khi sử dụng Microk8s

  1. Dễ cài dặt, chỉ cần máy của bạn hổ trợ snap
  2. Hỗ trợ cho hơn 42 HĐH Linux, Windows,Mac OS
  3. Hỗ trợ nhanh các cài đặt nhanh các addon Kubernetes cốt lõi như dns và dashboard
  4. Kiểm soát cụm của bạn bằng công cụ kubectl CLI
  5. Triển khai nhanh các container trong cụm

Trong bài viết này mình sẽ hướng dẫn các bạn cài đặt cụm 11 node theo mô hình HA (High Availability ) gồm có 3 con master và 4 worker có tính khả dụng cao

Bạn cần chuẩn bị 7 máy chủ cấu hình như sau:

Danh sách máy chủ

IP Hostname vCPU RAM DISK
192.168.56.2 microk8s-master-1 1 core 2G 50G
192.168.56.3 microk8s-master-2 1 core 2G 50G
192.168.56.4 microk8s-master-3 1 core 2G 50G
192.168.56.5 microk8s-worker-1 1 core 2G 50G
192.168.56.6 microk8s-worker-2 1 core 2G 50G
192.168.56.7 microk8s-worker-3 1 core 2G 50G
192.168.56.8 microk8s-worker-4 1 core 2G 50G

*Mình sẽ triển khi cài đặt theo mô hình như sau

Bài 3_ Cài đặt Kubernetes với Microk8s 1.26 trên Ubuntu 22.04.jpg

Do lần đầu vẽ tay nên vẽ cũng hơi khó xem, mình sẽ cố đẹp hơn trong lần update sau ❤️

Giờ chúng ta bắt đầu thôi :

Bước 1 : ssh vào từng node và đổi lại hostname giống như trên

  • Vào thư mục /etc/hostname
  • Đổi tên hostname theo từng máy chủ ở Danh sách máy chủ
  • Các máy chủ Master

Screenshot 2023-01-06 at 7.01.12 PM.png

  • Các máy chủ Worker

Screenshot 2023-01-06 at 6.47.46 PM.png

Bước 2: Update và upgrade tất cả các node

sudo apt update && apt upgrade -y

Bước 3: Thêm các trường vào file hosts

  • Mở file: /etc/hosts
nano /etc/hosts
  • Thêm vào cuối file :
#master
192.168.56.2  microk8s-master-01
192.168.56.3  microk8s-master-02
192.168.56.4  microk8s-master-03

#worker
192.168.56.5  microk8s-worker-1
192.168.56.6  microk8s-worker-2
192.168.56.7  microk8s-worker-3
192.168.56.8  microk8s-worker-4
  • Các máy chủ Master Screenshot 2023-01-06 at 7.00.36 PM.png

  • Các máy chủ Worker Screenshot 2023-01-06 at 6.46.41 PM.png

Bước 4: Cài đặt microk8s

sudo snap install microk8s --classic --channel=1.26

Microk8s tạo ra một nhóm để kích hoạt sử dụng các lệnh liền mạch yêu cầu đặc quyền root. Để thêm người dùng hiện tại của bạn vào nhóm và có quyền truy cập vào thư mục bộ đệm Kube, hãy chạy hai lệnh sau:

sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
su - $USER

Kiểm tra trạng thái microk8s bằng lệnh microk8s status --wait-ready

  • Các máy chủ Master Screenshot 2023-01-06 at 7.06.35 PM.png

Bước 5: Thêm các node vào cụm

Do hệ thống mình chạy luôn trên máy host bằng Virtuabox nên mình mở tường lửa, các bạn cần allow port của microk8s để thực hiện lệnh ko bị lỗi chận port, các bạn tham khảo qua đường dẫn https://microk8s.io/docs/services-and-ports

Các bạn vui lòng thực hiện lệnh sau trên tất cả các node:

sudo ufw allow 16443/tcp 
sudo ufw allow 10250/tcp 
sudo ufw allow 10255/tcp 
sudo ufw allow 25000/tcp 
sudo ufw allow 12379/tcp 
sudo ufw allow 10257/tcp 
sudo ufw allow 10259/tcp 
sudo ufw allow 19001/tcp 
sudo ufw allow 4789/udp

 sudo ufw allow 10248/tcp 
sudo ufw allow 10249/tcp 
sudo ufw allow 10251/tcp 
sudo ufw allow 10252/tcp 
sudo ufw allow 2380/tcp 
sudo ufw allow 1338/tcp 
  • Tạo token add-node trên con microk8s-master-01 :
microk8s add-node --token-ttl 3600

Mình có 2 đường mạng:

  1. Internet
  2. LAN (Mạng dùng để connect các node)
  • join các máy chủ master, ở đây mình thực hiện lệnh add ở máy microk8s-master-01 thì mình cần add 2 máy microk8s-master-02microk8s-master-03
microk8s join 192.168.56.2:25000/e523c2d3aef2e3679c3e5ccf605d97c2/dbc9df54be3b
  • Tiếp tục join worker vào các node microk8s-worker-1, microk8s-worker-2, microk8s-worker-3, microk8s-worker-4 cũng là đoạn token trên, và chỉ cần thêm --worker sau cùng đoạn join
microk8s join 192.168.56.2:25000/e523c2d3aef2e3679c3e5ccf605d97c2/dbc9df54be3b --worker

Khi join thành công ta dùng lệnh microk8s kubectl get no ở VM microk8s-master-01 để kiểm tra xem các node đã join vào làm master và worker chưa

Screenshot 2023-01-06 at 8.32.40 PM.png

Còn để kiể tra các master node chúng ta dùng lệnh microk8s status ở VM microk8s-master-01

Bước 6: Kích hoạt addon dashboard dns storage

microk8s enable dns dashboard hostpath-storage

sau khi thành công bạn dùng lệnh microk8s dashboard-proxy ở VM microk8s-master-01 để mở dashboard

microk8s dashboard-proxy

Truy cập đường dẫn https://192.168.56.2:10443 để vào Kubernetes Dashboard

Screenshot 2023-01-06 at 8.56.35 PM.png

Các bạn có thể tham khảo thêm ở trang chủ : https://microk8s.io/docs/high-availability

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


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.