Cấu hình NFS làm StorageClass cho cụm K8s

Cập nhật lần cuối: 2025/01/20 17:28:33

ĐIỀU KIỆN

  • Đăng nhập tài khoản vào CMC Cloud Portal
  • Đã khởi tạo 1 cụm K8s
  • Chuẩn bị 1 VM Bastion host được kết nối tới cụm qua Kubectl
  • Chuẩn bị 1 VM để cài đặt ứng dụng NFS

CÁC BƯỚC THỰC HIỆN

1. Triển khai NFS Server

 1.1 Chuẩn bị trước khi cài đặt

  1. Chuẩn bị trước khi cài đặt
  • Cài đặt lvm cho Server

#Ubuntu

apt-get install lvm2

#Centos

yum install lvm2

  • Tạo volume group
vgcreate vg-test /dev/vdb
  • Tạo logical volume
lvcreate -l 100%free -n k8s-storage vg-test
  • Định dạng filesystem cho logical volume và tạo 1 folder để mount vào (tạo /etc/fstab để reboot VM ko mất mount)

sudo mkfs.ext4 /dev/vg-test/k8s-storage

mkdir /home/nfs-pv

chown nobody:nogroup /home/nfs-pv

chmod 2770 /home/nfs-pv

mount /dev/vg-test/k8s-storage /home/nfs-pv/

  • Kiểm tra lại bằng câu lệnh sau
df -hT /home/nfs-pv/

  1.2 Cài đặt và cấu hình NFS Server

  • Cài đặt NFS Server packages

#Ubuntu

sudo apt update

sudo apt install nfs-kernel-server

#Centos

sudo yum -y install nfs-utils

  • Cấu hình NFS exports (trong file /etc/exports)
/home/nfs-pv 10.50.0.0/24 # (rw,no_root_squash,no_subtree_check) Dải ip mà ta allow access đến NFS server. Thay bằng nếu muốn allow all.
  • Cập nhật cấu hình NFS exports bằng cách restart lại hoặc chạy câu lệnh sau

#Ubuntu

sudo systemctl restart nfs-server

#Centos

sudo systemctl enable --now rpcbind nfs-server

sudo systemctl restart nfs-server

  • Kiểm tra lại bằng câu lệnh sau
exportfs

2. Setup Kubernetes NFS Subdir External Provisioner

  • Đứng từ VM Bastion host được kết nối tới cụm và cài đặt tool Helm.
curl -L https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
  • Thêm helm chart repo
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
  • Thêm biến môi trường vào trong file ~/.bashrc trong đó NFS_SERVER là IP của NFS ServerNFS_SHARE là mà Path Share để ta mount bên trên

export NFS_SERVER="10.50.0.235" # IP của NFS Server 

export NFS_SHARE="/home/nfs-pv"

  • Triển khai NFS provisioner sử dụng helm

helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs \

--namespace kube-system --version v4.9.0 \

--set storageClass.create=true \

--set storageClass.name=nfs-csi \

--set storageClass.parameters.server=$NFS_SERVER \

--set storageClass.parameters.share=$NFS_SHARE

  • Kiểm tra kết quả
    back to top

    logo

    © 2023, CMC Cloud. All rights reserved.

    Business Registration Certificate

    Giấy ĐKKD: 0102900049. Nơi cấp: Sở Kế hoạch & Đầu tư Thành phố Hà Nội

    Chịu trách nhiệm nội dung: Đặng Tùng Sơn