Tích hợp Load Balancer và Persistent Volume

Kubernetes Engine tích hợp sẵn với dịch vụ BizFly Cloud ServerBizFly Load Balancer. Cho phép cluster của bạn sử dụng tính năng LoadBalancer service và tính năng Persistent Volume

LoadBalancer service

Kubernetes cung cấp một loại service có type = LoadBalancer, ví dụ

apiVersion: v1
kind: Service
metadata:
  name: example-service
spec:
  selector:
    app: example
  ports:
    - port: 8765
      targetPort: 9376
  type: LoadBalancer

Mỗi LoadBalancer service trên Kubernetes cluster tương ứng là một instance Load Balancer trên dịch vụ BizFly Load Balancer và được hiển thị trên dashboard.

Tham khảo thêm Create an External Load Balancer

Tuỳ chỉnh LoadBalancer

Sử dụng các annotations dưới đây khi thực thiện tạo service để tuỳ chỉnh Load Balancer phù hợp với nhu cầu của bạn

Annotation Giá trị mặc định Mô tả
kubernetes.bizflycloud.vn/load-balancer-type small Loại LoadBalancer: small, medium, large
kubernetes.bizflycloud.vn/load-balancer-network-type external Kiểu kết nối: internal hoặc external
kubernetes.bizflycloud.vn/vpc-network-name null Tên VPC network (đối với kiểu kết nối internal)
kubernetes.bizflycloud.vn/enable-proxy-protocol false Bật proxy protocol
kubernetes.bizflycloud.vn/enable-ingress-hostname false Advertise LB ingress IP dưới dạng hostname <IP>.nip.io

Persistent Volume

BizFly Kubernetes Engine hỗ trợ 6 loại Storage Class tương ứng cho 3 loại server, phù hợp với các nhu cầu khác nhau.

NAME                    PROVISIONER                 RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
dedicated-hdd           volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s
dedicated-ssd           volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s
enterprise-hdd          volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s
enterprise-ssd          volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s
premium-hdd (default)   volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s
premium-ssd             volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   15s

Hãy lưu ý sử dụng storageclass phù hợp với loại worker node. Tham khảo thêm Kubernetes Persistent Volumes

WaitForFirstConsumer binding mode

PersistentVolume sẽ tạm thời chưa được tạo nếu chúng chưa được sử dụng bởi một Consumer (Deployment, Statefulset, Pod, ..) nào đó. Nếu bạn tạo PVC mà không gắn nó vào Consumer nào, PVC sẽ ở trạng thái Pending.

Điều này giúp đảm bảo Volume ở cùng Availability Zone với Consumer trong trường hợp cluster chạy trên nhiều AZ khác nhau (multi-AZ).

Chỉ định tên của Storage Class khi tạo PersistentVolumeClaim, ví dụ

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: example-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 4Gi
  storageClassName: premium-hdd

Kiểm tra PersistentVolumeClaim đã được tạo tương ứng và đang ở trạng thái pending chờ consumer sử dụng.

> kubectl  get pvc
NAME          STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
example-pvc   Pending                                      premium-hdd    7s