K8S-Course 02: Cài đặt Lab kubernetes – phần 1

Tram Ho

Giới thiệu

Trong bài này mình giới thiệu cách sử dụng phần mềm VMware Workstation Pro trên window để tạo các máy ảo (VM). Sau đó cài đặt kubernetes lên các VM này.

image.png

Yêu cầu: Có máy chủ cấu hình 16GB RAM trở lên (8GB hoặc 12GB cũng có thể nhưng sẽ không đảm bảo lắm)
Máy chủ cài win10/win11/winserver đều được và quan trọng nhất là máy phải có kết nối internet (để tải gói, docker image..)
Kiến trúc của hệ thống lab sẽ như sau:
image.png

Mình dự định cài các máy với thông tin như sau:

Máy ảoRoleIPRAMCPUHDDNote
master1master192.168.10.11 (NAT)2GB2 core30GBSẽ cài thêm haproxy
worker1worker192.168.10.12 (NAT)4GB2 core30GBSẽ cài thêm rancher
worker2worker192.168.10.13 (NAT)4GB2 core30GB + 30GBSẽ cài thêm nfs-server
kubesprayinstallation server192.168.10.8 (NAT)2GB2 core30GB

Note: Cấu hình RAM/CPU bên trên là ví dụ với case máy 16GB RAM, nếu bạn có nhiều hơn thì có thể tăng lên cho thoải mái. Lưu ý cấu hình của k8s node tối thiểu là 2GB RAM.

Cơ bản là cài VMware Workstation lên máy PC để tạo các máy ảo. Tạo 3 máy ảo chạy Centos7 (master1, worker1, worker2) để cài k8s, máy ảo kubespray để làm server cài đặt. Từ máy ảo kubespray này mình sẽ thực hiện cài đặt k8s lên 3 node trên.

Trên máy PC sẽ cài mobaxterm (hoặc puty hay SSH-Client nào bạn quen dùng) để kết nối vào k8s sau khi cài đặt.

Các bước thực hiện

Mình sẽ hướng dẫn cách cài đặt hệ thống lab kubernetes theo các bước chính (giả định bạn đã có PC có window rồi)

  • Cài đặt VMware Workstation Pro lên máy PC Window + Cấu hình network cho vmware
  • Cài đặt một VM mới dùng Centos7 + cấu hình các tham số cơ bản
  • Clone VM bên trên thành 04 VM với tên lần lượt là: master1, worker1, worker2 và kubespray
  • Cập nhật lại hostname, IP.. cho các VM mới clone
  • Cài đặt cấu hình máy ảo kubespray để chuẩn bị cài đặt k8s
  • Cấu hình tham số cho việc cài đặt + cài đặt k8s bằng kubespray

Hướng dẫn chi tiết

Cài đặt VMware Workstation Pro

Các bạn tham khảo link tải và cài đặt VMware Workstation Pro ở đây về cài. Cơ bản chỉ toàn next là xong rồi mình không hướng dẫn thêm.

Cấu hình network cho VMware Workstation Pro

Bước này nhằm mục đích setup dải IP mình sẽ dùng cho các máy ảo (VM) sau này. Để thực hiện, các bạn mở VMware Workstation Pro vào mục edit ==> Virtual Network Editor ==> Chọn vào loại network là NAT:

image.png

Ở đây mình hướng dẫn sử dụng NAT, khi đó các VM sẽ được cấp một private IP trong dải mà bạn cài đặt ở mục Subnet IP. Các bạn có thể setup dải này tùy ý, ở đây mình recommend dùng dải 192.168.10.0 mask 255.255.255.0 (như hình).

Hướng dẫn cài đặt Centos7 và cấu hình tham số

Cài đặt centos7 lên máy ảo (VM)

Đầu tiên các bạn download bộ cài Centos7 ở đây, nhớ chọn đúng file “CentOS-7-x86_64-Minimal-2009.iso” cho nó nhẹ!

Sau khi download file về máy, thì mở VMware Workstation Pro để chuẩn bị cài đặt một VM mới. Các bạn vào File ==> New Virtual Machine.. ==> Typical ==> Next ==> Installer disc image file (iso): ==> Trỏ tới file iso centos mà đã download về máy ở bước trước ==> Next

Tiếp tục điền tên của VM (tên hiển thị trên VMworkstation Pro) và nơi lưu các bạn muốn lưu máy ảo này ==> Next:

image.png

Trong mục “Maximum disk size (GB)” chọn dung lượng 30GB, tick chọn “Split virtual disk into multiple files ==> Next.

Gần xong rồi, giờ tới bước cấu hình tài nguyên cho máy ảo. Tick vào “Poweron this virtual machine after creation” và ấn vào Customize Hardware…:

image.png

Ở đây lưu ý vài chỗ:

  • Memory: Chọn 2048 (2GB)
  • Processors: Chọn 1 processor * 2 core. Nếu máy bạn chip xịn thì có thể tăng lên tương ứng.
    image.png
  • Network Adapter: Tick chọn vào mục “NAT: Used to share the host’s IP address
    image.png

Okie rồi, giờ ấn Finish thôi để bắt đầu cài đặt thôi.
Ở giao diện này các bạn ấn Enter để thực hiện cho nhanh không phải chờ mấy chục giây nhé:

image.png

Ở giao diện đầu tiên chọn ngôn ngữ English:

image.png

Tiếp theo ở giao diện này ta sẽ cầu hình thời gian (datetime), phân vùng cài đặt (INSTALLATION DESTINATION) và network.

Chọn vào DATE & TIME và cài đặt giờ cho máy chủ + set timezone về HCM ==> Ấn Done khi hoàn thành.

image.png

Tiếp tục chọn “INSTALLATION DESTINATION” ==> Chọn vào ổ 30GB mà ta đã tạo ==> Done

image.png

Tiếp theo là cấu hình Hostname và network. Đầu tiên điền hostname là centos7 ==> Apply. Tiếp theo enable cái network Ethernet (ens33) cho nó thành màu xanh như hình:

image.png

Chọn tiếp vào Configure… để cấu hình IP cho nó:

image.png
Ta chọn vào thẻ IPv4 Settings và chọn Method từ “DHCP” thành “Manual”, ấn nút Add và đặt thông số như sau:

IPNetmaskGateway
192.168.10.20255.255.255.0192.168.10.2

DNS mình đặt là 2 DNS của google để VM có thể kết nối ra internet: 8.8.8.8, 8.8.4.4

Sở dĩ ở đây mình đặt IP là 192.168.10.20 là để tránh các IP mình đã planning cho các node. Sau này khi clone máy ảo này ra mình sẽ sửa lại IP theo đúng quy hoạch.

Hoàn thành bước trên thì ta ấn vào Begin Installation để bắt đầu quá trình cài đặt Centos 7.
Tiếp theo ta cần set password cho user root bằng cách ấn vào ROOT PASSWORD và nhập 2 lần pass vào đó.

image.png

Ấn tiếp vào USER CREATION để tạo thêm một super user có tên sysadmin:
image.png

Các bạn lưu ý ghi nhớ password cho user root và sysadmin này để sử dụng về sau nhé!

Khi hoàn tất cài đặt sẽ có thông báo để reboot máy ảo, các bạn ấn vào reboot:

image.png

Sau khi reboot ta có thể login bằng user/pass đã tạo bên trên và kiểm tra luôn IP của máy ảo:

image.png

Như vậy nó đã được gán thành công IP 192.168.10.20 rồi.

Tiếp theo ta dùng phần mềm SSH client để kết nối tới nó thao tác cho dễ dàng hơn là làm trực tiếp trên console của VMware workstation.

Cấu hình tham số cho máy ảo

Đầu tiên ta cấu hình cho user sysadmin có quyền sudo không cần password. Ta sửa file /etc/sudoers và thêm vào cuối file dòng sau:

Sau đó ta cần kiểm tra và disable swap trên centos. Dùng lệnh sau để kiểm tra:

Như vậy hệ thống đang có dùng swap, và có mount ở trong cấu hình fstab.

Để disable swap ta thực hiện 2 việc:

  • Dùng lệnh disable swap:

  • Xóa dòng mount swap trong file /etc/fstab (dòng nào có swap thì comment nó lại bằng dấu “#” ở đầu dòng:

Tới đây bạn download repo này về máy để lấy các file script cài đặt ban đầu: https://github.com/rockman88v/kubernetes_basic_course.git

Trong thư mục session02-Installation/scripts các bạn copy 2 file “update-vm.sh” và “configure-vm.sh” lên máy ảo ở thư mục /home/sysadmin (thư mục gốc của user sysadmin). Sau đó gán quyền thực thi cho 2 file script này và chạy script configure-vm.sh:

Cơ bản tới đây là đã cài đặt và cấu hình xong một máy ảo ready cho việc cài k8s về sau. Ta sẽ tắt máy ảo nào để clone nó thành các máy ảo để cài đặt.

Tắt máy ảo từ session ssh hiện tại:

Clone máy ảo

Vào VMware Workstation chọn máy ảo ta vừa cài ==> Chuột phải chọn Manage ==> Clone ==> Next ==> Next ==> Create a full clone:
image.png

Đầu tiên ta thực hiện clone thành máy ảo master1 ta thực hiện đặt tên và chọn thư mục lưu máy ảo:

image.png

Sau khi hoàn thành ta chọn máy ảo mới clone xong (master1) ==> Chuột phải ==> Setting và điều chỉnh thông số RAM/CPU/HDD như planning ban đầu.

Lặp lại bước clone máy ảo thành các máy worker1, worker2 và kubespray (lưu ý điều chỉnh thông số RAM/CPU/HDD như planning ban đầu).

Riêng với máy ảo worker2 ta sẽ add thêm cho nó một disk mới dung lượng 30GB (sau này làm NFS server để cài storage class sẽ dùng ở các bài sau):
Chuột phải vào máy ảo worker2 ==> Manage ==> Add… ==> Hard Disk ==> SCSI ==> Create a new virtual disk ==> Đặt dung lượng 30GB + tick split virtual disk into multiple files ==> Next ==> Finish ==> OK

Kết thúc quá trình clone ta được 04 máy ảo đúng theo thiết kế.

Cập nhật lại hostname, IP cho các VM mới clone

Sau khi clone xong 4 máy ảo, thì ta sẽ bật từng máy ảo lên để cấu hình lại cho đúng hostname/IP theo planning (vì full clone nên cả 4 máy ảo này đang được set cùng hostnam/IP).

Ví dụ với master1 ta bật lên, và cập nhật hostname/IP bằng lệnh bên dưới:

NOTE:

Nên thực hiện trên console của VMware Workstation vì sau khi chạy IP của VM sẽ thay đổi về đúng theo planning. Do đó nếu SSH từ một SSH Client thì nó sẽ bị mất kết nối sau khi chạy script

Như vậy là hostname và IP đã được update.

Thực hiện tương tự với các máy ảo còn lại.

Riêng với máy ảo worker2, ta cần thêm một bước nữa là mount disk mới cho nó (ở bước trước ta đã thêm một disk cho nó)

Như vậy disk mới đang ở /dev/sdb. Ta thực hiện mount như sau:

Như vậy disk mới đã được mount vào /nfs-data. Ta cần cấu hình thêm trong /etc/fstab để sau khi khởi động lại nó sẽ tự được mount lại. Ta thêm dòng sau vào file:

Như vậy tới đây cơ bản chúng ta đã setup xong 04 VM có cấu hình đúng theo planning ban đầu:

Máy ảoRoleIPRAMCPUHDDNote
master1master192.168.10.11 (NAT)2GB2 core30GBSẽ cài thêm haproxy
worker1worker192.168.10.12 (NAT)4GB2 core30GBSẽ cài thêm rancher
worker2worker192.168.10.13 (NAT)4GB2 core30GB + 30GBĐã mount vào /nfs-data
kubesprayinstallation server192.168.10.8 (NAT)2GB2 core30GB

Phần tiếp theo ta sẽ cấu hình VM kubespray để cài đặt cụm k8s cluster.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo