Published on

Xây dựng Kubernetes Cluster trên Microsft Hyper-V server

Ở bài viết trước mình đã giới thiệu cách cài đặt và cấu hình máy chủ chạy Microsoft Hyper-V và cách quản lý nó. Chi tiết xem tại: Ảo hóa máy chủ dùng công nghệ Hyper-V

Hôm nay mình sẽ giới thiệu cách xây dựng một Kubernetes Cluster trên Hyper-V Server, các đoạn code và chương trình được tham khảo và chỉnh sửa theo nhu cầu riêng của mình.

Tóm tắt công việc

Thông thường Server sẽ được đặt ở 1 nơi riêng biệt, chúng ta sẽ thiết lập để có thể quản lý Server thông qua các công cụ: Windows Admin Center và Hyper-V Manager từ 1 máy tính khác. (Xem ở bài viết trước)

Khởi tạo các máy ảo (mình dùng Ubuntu) và thiết lập sẵn các phần mềm cần thiết để xây dựng Kubernets cluster (kubecltl, kubeadm, …). Mỗi máy ảo sẽ đóng vai trò là 1 node trong cluster. Tùy theo cấu hình server mà cấu hình (RAM, CPU,…) của mỗi node có thể tùy chỉnh cũng như tăng giảm số node.

Hiện tại với demo của mình chỉ hỗ trợ xây dựng cluster 1 master, nhiều worker node (node1, node2, …)

Cluster sử dụng lớp mạng riêng 10.10.0.0/24 (có thể sửa tùy ý dãi IP mà bạn mong muốn) gắn với lớp mạng tên KubeNatNet và Hyper-V Switch (Internal) tên K8s.

Network và máy ảo thiết lập xong, thì join các node lại với Kubeadm là 1 cluster hoàn chỉnh đã được xây dựng thành công

Hyper-V server

Bạn cần phải khởi tạo ssh public key, trên cmd của server chạy lệnh:

ssh-keygen

Window client

  • Vào Window Admin Center để tải file id_rsa.pub từ server và lưu vào thư mục C:\Users\yourUser\.ssh\
  • qemu-img for Windows: Download và giải nén vào: C:\qemu-img thêm thư mục đó vào System Environment Path
  • Mở Powershell ở chế độ admin (Run as Administrator)
Set-Executionpolicy remotesigned
.\hyperv-k8s.ps1 Get-Image
.\hyperv-k8s.ps1 Save-ISOMaster
.\hyperv-k8s.ps1 Save-ISONode1

Lưu ý: Nếu muốn thêm node thứ X chỉ cần chạy Save-ISONodeX hiện tại script chỉ hỗ trợ cluster 1 master – multiple workers

Sau khi các lệnh trên chạy thành công thì các folder tương ứng với master, node1, node2, .. sẽ được tạo ra C:\Users\yourUser\Documents

Window Admin Center

  • Upload file hyperv-k8s.ps1 vào C:\Users\Administrator\Documents
  • Tạo thư mục C:\Users\Administrator\Documents\isos
  • Upload các file master.iso, node1.iso, node2.iso, … vào C:\Users\Administrator\Documents\isos
  • Mở PowerShell lên và chạy các lệnh
.\hyperv-k8s.ps1 Install-Tools
.\hyperv-k8s.ps1 Deploy-HostsFile
.\hyperv-k8s.ps1 Deploy-Network
.\hyperv-k8s.ps1 Get-Image
.\hyperv-k8s.ps1 Deploy-Master
.\hyperv-k8s.ps1 Deploy-Node1

# Chờ một thời gian cho các máy ảo khởi tạo thành công. Có thể mở Hyper-V manager khi %CPU giảm về thấp là đã khởi tạo xong
.\hyperv-k8s.ps1 Initialize-Kubeadm
.\hyperv-k8s.ps1 Start-KubeadmJoin
.\hyperv-k8s.ps1 Save-KubeConfig

Video hướng dẫn