Dự án

Tổng quan

Hồ sơ

Actions

Task #1081

mở

Task #895: Build cluster k8s production mới sự dụng ip private cho Medpro

Test Local Static Volumes trên K8s

Thêm bởi Tùng Nguyễn cách đây 3 tháng. Cập nhật cách đây 3 tháng.

Trạng thái:
New
Mức ưu tiên:
Normal
Phân công cho:
-
Chủ đề:
-
Phiên bản:
-
Bắt đầu:
19-08-2024
Hết hạn:
Tiến độ:

0%

Thời gian ước lượng:

Mô tả

Mục tiêu: xây dựng giải pháp lưu trữ trên môi trường k8s, phù hợp cho các service có tính năng replica mức app như (MongoDB, Elasticsearch ...)
Phương án: Sử dụng local static persistenc volume
https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/tree/master/docs

Mô hình: https://app.diagrams.net/#G17w3CX-PqybY296zzIbChAMFhfhoe9JYI#%7B%22pageId%22%3A%22Z6QLZEgZqsh7oY3-1fRi%22%7D

=====
Thực hiện test với 2 VM cài microk8s
B1: Thực hiện tạo folder /mnt/fast-disks trên các node
B2: Format và mount local disk vào folder

mkdir -p /mnt/fast-disks
mkfs.ext4 /dev/sdb
DISK_UUID=$(sudo blkid -s UUID -o value /dev/sdb)
mkdir /mnt/fast-disks/$DISK_UUID
--- Auto mount when boot ---
nano /etc/fstab
/dev/disk/by-uuid/<UUID> /mnt/fast-disks/<UUID> ext4 defaults 0 1

B3: Cài đặt local-provisioning

--- Install Helm ---
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

--- Install ---
git clone https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner.git
helm repo add sig-storage-local-static-provisioner https://kubernetes-sigs.github.io/sig-storage-local-static-provisioner
cp sig-storage-local-static-provisioner/helm/provisioner/values.yaml /root/values.yaml

--- To storage class ---
nano local-provisioner.yaml
# Only create this for K8s 1.9+
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-disks
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
# Supported policies: Delete, Retain
reclaimPolicy: Delete

--- Create Provisioner ---
helm install -f values.yaml -n kube-system local-provisioner ./sig-storage-local-static-provisioner/helm/provisioner/

Sau khi tạo provisioner, nếu có bất kì folder nào trong folder /mnt/fast-disks thì provisoner sẽ tạo pv

===
Thử tạo service mongodb với repica=2

===
Sau khi reboot lại node K8s thì pod trên node tự start lại

===
Nhược điểm: khi 1 pvc được tạo, mặc dù cho manual size của pvc nhỏ hơn capacity của pv nhưng pvc vẫn chiếm toàn bộ capacity của pv đó.


Tập tin

Actions

Định dạng khác của trang này: Atom PDF