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/tắt proxy protocol
kubernetes.bizflycloud.vn/enable-ingress-hostname false Advertise LB ingress IP dưới dạng hostname <IP>.nip.io
kubernetes.bizflycloud.vn/target-node-labels "" Chỉ định LB trỏ vào nhóm node nhất định theo label theo dạng key1=value1, key2=value2

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
basic-hdd1        volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
basic-ssd1        volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
dedicated-hdd1    volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
dedicated-ssd1    volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
enterprise-hdd1   volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
enterprise-ssd1   volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
premium-hdd1      volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h
premium-ssd1      volume.csi.bizflycloud.vn   Delete          WaitForFirstConsumer   true                   18h

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-hdd1

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-hdd1    7s