Do các dữ liệu trong POD là dạng dữ liệu lưu trữ tạm thời, khi POD xóa đi thì toàn bộ các dữ liệu sẽ mất đi vì vậy Quý khách cần sử dụng Persistent Storage để lưu trữ dữ liệu quan trọng mà không mất đi sau khi xóa POD. Trong bài viết này vHost sẽ hướng dẫn Quý khách sử dụng NFS làm Persistent Storage cho hệ thống Kubernetes
Nội Dung
Yêu cầu
- Một NFS Server cùng network với các worker node của Kubernetes.
- Tối thiểu 1 worker node
Hướng dẫn cấu hình trên NFS Server
Trong bài viết này NFS có thông tin như sau:
IP: 10.1.1.180
Data path: /data
Các worker node có cùng range IP 10.1.1.0/24
Cài đặt NFS Server:
apt update && apt -y upgrade
apt install -y nfs-server
mkdir /data
cat <<EOF >> /etc/exports
/data 10.1.1.0/24(rw,no_subtree_check,no_root_squash)
EOF
systemctl enable --now nfs-server
exportfs -ar
Hướng dẫn cấu hình trên Kubernetes cluster
Trong bài viết này sẽ hướng dẫn tạo Storage Class để các hệ thống CI/CD có thể chủ động requets Persistent Storage thay vì phải request thủ công:
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--create-namespace \
--namespace nfs-provisioner \
--set nfs.server=10.1.1.180 \
--set nfs.path=/data
Kiểm tra lại kết quả:
Tiếp theo tiếp tục kiểm thử bằng cách tạo PersistentVolumeClaim bằng manifest sau:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vhost-db1
labels:
storage.k8s.io/name: nfs
storage.k8s.io/part-of: kubernetes-complete-reference
storage.k8s.io/created-by: vhost
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 1Gi
Tiến hành apply manifest và kiểm tra lại kết quả PVC đã tạo:
Khai báo và sử dụng PVC đã tạo cho POD:
apiVersion: v1
kind: Pod
metadata:
name: vhosttest-pod
spec:
containers:
- name: example
image: busybox
volumeMounts:
- mountPath: "/data"
name: nginx
stdin: true
stdinOnce: true
tty: true
volumes:
- name: nginx
persistentVolumeClaim:
claimName: vhost-db1
Triển khai POD:
Tạo data mẫu trong POD và kiểm tra lại trên NFS Server:
Đã thấy data của POD xuất hiện trên NFS Server:
Thông qua bài viết này vHost đã hướng dẫn cấu hình NFS server làm Persistent Storage cho Kubernetes. Nếu Quý khách cần hỗ trợ thêm thông tin, có thể liên hệ với đội ngũ kỹ sư của chúng tôi tại support@vhost.vn.