
Cập nhật lần cuối: 08/04/2024 17:00
| ℹ️ Góp ý cải thiện tài liệu Để đóng góp chỉnh sửa, nhấp vào liên kết Gửi ticket ở khung bên phải. |
Trong môi trường Kubernetes, Network File System (NFS) là một giải pháp lưu trữ phổ biến nhờ tính linh hoạt, dễ triển khai và khả năng chia sẻ dữ liệu giữa nhiều pod. Việc sử dụng NFS Server làm Storage Class trong dịch vụ VNPT K8s giúp cung cấp khả năng lưu trữ động (dynamic provisioning) và hỗ trợ các ứng dụng yêu cầu truy cập dữ liệu đồng thời từ nhiều node.
Lợi ích của việc sử dụng NFS làm Storage Class
1. Khởi tạo NFS Server
Người dùng có thể khởi tạo NFS Server thông qua dịch vụ File Storage của VNPT Cloud, tham khảo hướng dẫn tại đây.
2. Kiểm tra kết nối
Sau khi khởi tạo thành công NFS Server, hệ thống sẽ tự động gắn một interface thuộc dải mạng của NFS Server vào router mặc định có tên “router_pub_pri_network”.
Trường hợp 1: Default Route của mạng Kubernetes chưa được sử dụng
Nếu dải mạng sử dụng để triển khai Kubernetes Cluster chưa sử dụng Default Route, người dùng cần cấu hình route để đảm bảo kết nối giữa các worker nodes và NFS Server. Thực hiện theo các bước sau:
Sau khi hoàn tất các bước trên, các worker nodes trong cụm Kubernetes sẽ có thể kết nối đến NFS Server một cách ổn định.
Trường hợp 2: Default Route của mạng Kubernetes đã được sử dụng
Nếu dải mạng sử dụng để triển khai Kubernetes Cluster đã sử dụng Default Route, người dùng có thể tự cấu hình NFS Server riêng
Yêu cầu:
1. Trên máy chủ NFS (NFS Server)
Bước 1: Cài đặt gói NFS
Trên CentOS/RHEL:
sudo yum install -y nfs-utilsTrên Ubuntu/Debian:
sudo apt update
sudo apt install -y nfs-kernel-serverBước 2: Tạo thư mục chia sẻ
sudo mkdir -p /srv/nfs_share
sudo chown -R nobody:nogroup /srv/nfs_share
sudo chmod 777 /srv/nfs_shareBước 3: Cấu hình file /etc/exports
Mở file cấu hình:
sudo nano /etc/exportsThêm dòng sau:
/srv/nfs_share 192.168.0.0/24(rw,sync,no_subtree_check)Thay 192.168.1.0/24 bằng dải IP subnet mà các máy client của bạn đang dùng.
Bước 4: Khởi động và kích hoạt dịch vụ NFS
CentOS:
sudo systemctl enable --now nfs-server
sudo systemctl restart nfs-serverUbuntu:
sudo systemctl enable --now nfs-kernel-server
sudo systemctl restart nfs-kernel-serverHướng dẫn kết nối đến NFS Server trên VNPT Kubernetes Service
Dưới đây là hướng dẫn kết nối và triển khai NFS Subdir External Provisioner trên VNPT Kubernetes Service
Bước 1: Đứng từ VM Bastion đã kết nối được tới cụm VNPT Kubernetes Service và cài đặt Helm.
curl -L https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
Bước 2: Thêm Helm repo cho nfs-subdir-external-provisioner
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/Cài đặt NFS Provisioner
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--namespace <your-namespace> \
--create-namespace \
--set nfs.server=192.168.0.10 \
--set nfs.path=/vsanfs/IDG-k8sv2-HB-devtest \
--set nfs.mountOptions[0]=nfsvers=4.1 \
--set storageClass.name=nfs-client \
--set storageClass.defaultClass=false \
--set storageClass.accessModes={ReadWriteMany} \
--set storageClass.reclaimPolicy=Delete \
--set storageClass.volumeBindingMode=WaitForFirstConsumerTrong đó:
Bước 3: Kiểm tra trạng thái
Kiểm tra trạng thái pod sau khi cài đặt, đảm bảo pod đã running
kubectl get pods -n <your-namespace> -l app=nfs-subdir-external-provisionerKiểm tra Storage Class đã được tạo
kubectl get storageclass | grep nfs-client