From b54b31cbf6fcf99a28d17b090bd71eeae7adece6 Mon Sep 17 00:00:00 2001 From: Hana <115437281+Hana-Hasa@users.noreply.github.com> Date: Wed, 11 Nov 2026 17:19:50 +0700 Subject: [PATCH] =?UTF-8?q?[docs]=20[VKS]=20C=E1=BA=A5u=20h=C3=ACnh=20ACL?= =?UTF-8?q?=20listener=20vLB=20qua=20annotation=20(dropped-cidrs,=20acl-de?= =?UTF-8?q?fault-action)=20=E2=80=94=20VI=20+=20EN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Code --- English/overview/product-updates-all/2026.md | 11 ++++ English/vks/announcements/release-notes.md | 12 +++++ .../cau-hinh-cho-mot-network-load-balancer.md | 4 +- .../integrate-with-network-load-balancer.md | 54 +++++++++++++++++++ .../thong-bao-va-cap-nhat/2026.md | 11 ++++ Vietnamese/vks/announcements/release-notes.md | 12 +++++ .../cau-hinh-cho-mot-network-load-balancer.md | 4 +- .../integrate-with-network-load-balancer.md | 54 +++++++++++++++++++ 8 files changed, 160 insertions(+), 2 deletions(-) diff --git a/English/overview/product-updates-all/2026.md b/English/overview/product-updates-all/2026.md index 38075feb..9e09c2ed 100644 --- a/English/overview/product-updates-all/2026.md +++ b/English/overview/product-updates-all/2026.md @@ -237,6 +237,17 @@ For more details about the updated renewal mechanism and policy, please refer [h {% endtab %} {% tab title="New features" %} +**Nov 2026** + +**VKS — Configure vLB listener ACLs via annotations** + +Starting with version **0.4.2** of GreenNode LoadBalancer Controller, you can configure the ACL of a Load Balancer listener directly in your manifest (Service for NLB, Ingress for ALB) — no vLB Portal needed: + +* New annotations **`vks.vngcloud.vn/dropped-cidrs`** (comma-separated list of blocked IPv4 CIDRs/IPs, `0.0.0.0/0` = block all) and **`vks.vngcloud.vn/acl-default-action`** (`accept`/`drop` for IPs that match no rule). +* The existing `vks.vngcloud.vn/inbound-cidrs` annotation now works as a true whitelist: without `acl-default-action`, the default action is **drop**. +* Removing an annotation restores the listener to its previous ACL value; ACLs configured manually on the Portal are never overwritten. +* Learn more at [Integrate with Network Load Balancer](../../vks/network/working-with-nlb/integrate-with-network-load-balancer.md) and [Configure for a Network Load Balancer](../../vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md). + **Oct 2026** **GreenNode AI Platform — Guardrail** diff --git a/English/vks/announcements/release-notes.md b/English/vks/announcements/release-notes.md index d5f68d02..e2db0a67 100644 --- a/English/vks/announcements/release-notes.md +++ b/English/vks/announcements/release-notes.md @@ -1,5 +1,17 @@ # Release notes +## Nov 11, 2026 + +VKS (VNG Kubernetes Engine) has just released a new update with the following improvements: + +**New features:** + +* **Configure vLB listener ACLs via annotations:** Starting with version **0.4.2** of GreenNode LoadBalancer Controller, you can configure the ACL of a Load Balancer listener directly in your manifest (Service for NLB, Ingress for ALB) — no vLB Portal needed. + * New annotations **`vks.vngcloud.vn/dropped-cidrs`** (comma-separated list of blocked IPv4 CIDRs/IPs, `0.0.0.0/0` = block all) and **`vks.vngcloud.vn/acl-default-action`** (`accept`/`drop` for IPs that match no rule). + * The existing `vks.vngcloud.vn/inbound-cidrs` annotation now works as a true whitelist: without `acl-default-action`, the default action is **drop**. + * Removing an annotation restores the listener to its previous ACL value; ACLs configured manually on the Portal are never overwritten. + * See [Integrate with Network Load Balancer](../network/working-with-nlb/integrate-with-network-load-balancer.md) and [Configure for a Network Load Balancer](../network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md) for details. + ## Sep 28, 2026 VKS (VNG Kubernetes Engine) has just released a new update with the following improvements: diff --git a/English/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md b/English/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md index 800ca116..56fe983e 100644 --- a/English/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md +++ b/English/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md @@ -6,4 +6,6 @@ On the \[Integrate with Network Load Balancer] page, we have shown you how to in Use the annotations below to customize the Load Balancer to suit your needs: -
AnnotationsRequired/Not requiredMeaning
vks.vngcloud.vn/load-balancer-idOptional
  • If you do not already have a previously initialized Network Load Balancer on the vLB system. We will automatically create 1 NLB on your cluster. This NLB will be displayed on vLB Portal, details can be accessed here
  • If you already have a previously initialized Network Load Balancer on the vLB system and you want to reuse the NLB for your cluster. Now, please enter the Load Balancer ID information into this annotation.
vks.vngcloud.vn/load-balancer-nameOptional
  • Annotation vks.vngcloud.vn/load-balancer-namewill be used if you do not use annotation load-balancer-id.
  • Annotation vks.vngcloud.vn/load-balancer-name only makes sense when you create a new load balancer. After the load balancer is successfully created, this annotation will be automatically deleted . Using this annotation after the load balancer has been created will have no effect .
  • When you use this annotation, if you do not already have a previously initialized Network Load Balancer on the vLB system. We will automatically create 1 NLB on your cluster. This ALB will be displayed on vLB Portal, details can be accessed here
  • If you already have a previously initialized Network Load Balancer on the vLB system and you want to reuse the NLB for your cluster. Now, please enter the Load Balancer Name information into this annotation.
vks.vngcloud.vn/package-idOptional
  • If you do not enter this information, we will use the NLB Small configuration by default.
  • If you already have an ACTIVE vLB host and you want to integrate this host into your K8S cluster, please skip this information field.
vks.vngcloud.vn/tagsOptional
  • The tag is added to your NLB.
vks.vngcloud.vn/schemeOptional
  • Default is internet-facing , you can change it to internal depending on your needs.
vks.vngcloud.vn/security-groupsOptional
  • By default, a default security group will be created according to your Cluster.
vks.vngcloud.vn/inbound-cidrsOptional
  • Default All CIRD: 0.0.0.0/0
vks.vngcloud.vn/healthy-threshold-countOptional
  • Default 3
vks.vngcloud.vn/unhealthy-threshold-countOptional
  • Default 3
vks.vngcloud.vn/healthcheck-interval-secondsOptional
  • Default 30
vks.vngcloud.vn/healthcheck-timeout-secondsOptional
  • Default 5
vks.vngcloud.vn/healthcheck-protocolOptional
  • Default TCP . Users can select one of the values ​​TCP/ HTTP/ HTTPS/ PING-UDP
vks.vngcloud.vn/healthcheck-http-methodOptional
  • Default GET . User can choose one of GET / POST / PUT values
vks.vngcloud.vn/healthcheck-pathOptional
  • Default /
vks.vngcloud.vn/healthcheck-http-versionOptional
  • Default 1.0 . Users can choose one of the values ​​1.0, 1.1
vks.vngcloud.vn/healthcheck-http-domain-nameOptional
  • Default is empty
vks.vngcloud.vn/healthcheck-portOptional
  • Default traffic port
vks.vngcloud.vn/success-codesOptional
  • Default 200
vks.vngcloud.vn/idle-timeout-clientOptional
  • Default 50
vks.vngcloud.vn/idle-timeout-memberOptional
  • Default 50
vks.vngcloud.vn/idle-timeout-connectionOptional
  • Default 5
vks.vngcloud.vn/pool-algorithmOptional
  • Default ROUND_ROBIN . The user can select one of the values ​​ROUND_ROBIN / LEAST_CONNECTIONS / SOURCE_IP
vks.vngcloud.vn/target-node-labelsOptional
  • Default is empty
vks.vngcloud.vn/enable-proxy-protocolOptional
  • Default is empty. The user specifies a list of service names in the Load Balancer to which the Proxy Protocol will be applied.
+For listener ACLs, vLB evaluates rules in the following order: **Dropped CIDRs** (block list) → **Allowed CIDRs** (allow list) → **Default action**; the first matching rule wins, and any IP that matches no rule gets the **Default action**. The ACL annotations (`dropped-cidrs`, `inbound-cidrs`, `acl-default-action`) support IPv4 only and require GreenNode LoadBalancer Controller **0.4.2** or later. + +
AnnotationsRequired/Not requiredMeaning
vks.vngcloud.vn/load-balancer-idOptional
  • If you do not already have a previously initialized Network Load Balancer on the vLB system. We will automatically create 1 NLB on your cluster. This NLB will be displayed on vLB Portal, details can be accessed here
  • If you already have a previously initialized Network Load Balancer on the vLB system and you want to reuse the NLB for your cluster. Now, please enter the Load Balancer ID information into this annotation.
vks.vngcloud.vn/load-balancer-nameOptional
  • Annotation vks.vngcloud.vn/load-balancer-namewill be used if you do not use annotation load-balancer-id.
  • Annotation vks.vngcloud.vn/load-balancer-name only makes sense when you create a new load balancer. After the load balancer is successfully created, this annotation will be automatically deleted . Using this annotation after the load balancer has been created will have no effect .
  • When you use this annotation, if you do not already have a previously initialized Network Load Balancer on the vLB system. We will automatically create 1 NLB on your cluster. This ALB will be displayed on vLB Portal, details can be accessed here
  • If you already have a previously initialized Network Load Balancer on the vLB system and you want to reuse the NLB for your cluster. Now, please enter the Load Balancer Name information into this annotation.
vks.vngcloud.vn/package-idOptional
  • If you do not enter this information, we will use the NLB Small configuration by default.
  • If you already have an ACTIVE vLB host and you want to integrate this host into your K8S cluster, please skip this information field.
vks.vngcloud.vn/tagsOptional
  • The tag is added to your NLB.
vks.vngcloud.vn/schemeOptional
  • Default is internet-facing , you can change it to internal depending on your needs.
vks.vngcloud.vn/security-groupsOptional
  • By default, a default security group will be created according to your Cluster.
vks.vngcloud.vn/inbound-cidrsOptional
  • Default All CIDR: 0.0.0.0/0
  • Comma-separated list of IPv4 CIDRs/IPs allowed to access the listener (Allowed CIDRs), evaluated after dropped-cidrs.
  • If you set this annotation without setting vks.vngcloud.vn/acl-default-action, the default action is drop — only the declared IP ranges can access the listener.
  • Removing this annotation restores the listener to its previous ACL value (usually 0.0.0.0/0).
vks.vngcloud.vn/dropped-cidrsOptional
  • Comma-separated list of blocked IPv4 CIDRs/IPs (Dropped CIDRs). Example: 203.0.113.9/32,198.51.100.0/24.
  • 0.0.0.0/0: block all access to the listener.
  • Empty string "": clear the block list (the controller still manages the list).
  • Evaluated before inbound-cidrs: an IP present in both lists is blocked.
  • Blocked traffic is silently discarded, so the client sees a timeout.
vks.vngcloud.vn/acl-default-actionOptional
  • Action applied to IPs that match no ACL rule: accept or drop (case-insensitive).
  • If you set inbound-cidrs without this annotation, the controller sets the default action to drop.
vks.vngcloud.vn/healthy-threshold-countOptional
  • Default 3
vks.vngcloud.vn/unhealthy-threshold-countOptional
  • Default 3
vks.vngcloud.vn/healthcheck-interval-secondsOptional
  • Default 30
vks.vngcloud.vn/healthcheck-timeout-secondsOptional
  • Default 5
vks.vngcloud.vn/healthcheck-protocolOptional
  • Default TCP . Users can select one of the values ​​TCP/ HTTP/ HTTPS/ PING-UDP
vks.vngcloud.vn/healthcheck-http-methodOptional
  • Default GET . User can choose one of GET / POST / PUT values
vks.vngcloud.vn/healthcheck-pathOptional
  • Default /
vks.vngcloud.vn/healthcheck-http-versionOptional
  • Default 1.0 . Users can choose one of the values ​​1.0, 1.1
vks.vngcloud.vn/healthcheck-http-domain-nameOptional
  • Default is empty
vks.vngcloud.vn/healthcheck-portOptional
  • Default traffic port
vks.vngcloud.vn/success-codesOptional
  • Default 200
vks.vngcloud.vn/idle-timeout-clientOptional
  • Default 50
vks.vngcloud.vn/idle-timeout-memberOptional
  • Default 50
vks.vngcloud.vn/idle-timeout-connectionOptional
  • Default 5
vks.vngcloud.vn/pool-algorithmOptional
  • Default ROUND_ROBIN . The user can select one of the values ​​ROUND_ROBIN / LEAST_CONNECTIONS / SOURCE_IP
vks.vngcloud.vn/target-node-labelsOptional
  • Default is empty
vks.vngcloud.vn/enable-proxy-protocolOptional
  • Default is empty. The user specifies a list of service names in the Load Balancer to which the Proxy Protocol will be applied.
diff --git a/English/vks/network/working-with-nlb/integrate-with-network-load-balancer.md b/English/vks/network/working-with-nlb/integrate-with-network-load-balancer.md index 12c33dca..ab48a6f8 100644 --- a/English/vks/network/working-with-nlb/integrate-with-network-load-balancer.md +++ b/English/vks/network/working-with-nlb/integrate-with-network-load-balancer.md @@ -315,6 +315,60 @@ kubectl apply -f nginx-service-lb4.yaml *** +### Block access with ACL annotations + +Starting with version **0.4.2** of GreenNode LoadBalancer Controller, you can configure the ACL of a Load Balancer listener directly in your manifest (Service or Ingress) without using the vLB Portal. ACL rules are evaluated in the following order: **Dropped CIDRs** → **Allowed CIDRs** → **Default action**; the first matching rule wins, and any IP that matches no rule gets the **Default action**. Dropped traffic is silently discarded, so the client sees a timeout instead of a connection refusal. + +Related annotations: + +* `vks.vngcloud.vn/dropped-cidrs`: comma-separated list of blocked IPv4 CIDRs/IPs. +* `vks.vngcloud.vn/inbound-cidrs`: comma-separated list of allowed IPv4 CIDRs/IPs. +* `vks.vngcloud.vn/acl-default-action`: `accept` or `drop`. + +For example, block two sources from accessing the nginx Service above by adding this annotation to the Service: + +``` +apiVersion: v1 +kind: Service +metadata: + name: nginx-service + annotations: + vks.vngcloud.vn/dropped-cidrs: "203.0.113.9/32,198.51.100.0/24" +spec: + selector: + app: nginx + type: LoadBalancer + ports: + - protocol: TCP + port: 80 + targetPort: 80 +``` + +Then run `kubectl apply -f nginx-service-lb4.yaml` again to update the Service. + +Common use cases: + +| Goal | Annotation | +|---|---| +| Block specific IPs/ranges | `vks.vngcloud.vn/dropped-cidrs: "203.0.113.9/32,198.51.100.0/24"` | +| Allow only specific IP ranges | `vks.vngcloud.vn/inbound-cidrs: "192.0.2.0/24"` | +| Allow a range except a few IPs | `vks.vngcloud.vn/inbound-cidrs: "192.0.2.0/24"` and `vks.vngcloud.vn/dropped-cidrs: "192.0.2.13/32"` | +| Block all access | `vks.vngcloud.vn/dropped-cidrs: "0.0.0.0/0"` | + +{% hint style="info" %} +Notes: + +* ACL annotations support IPv4 only and require GreenNode LoadBalancer Controller **0.4.2** or later. They also work for Ingress (ALB). +* If you set `inbound-cidrs` without `acl-default-action`, the default action is `drop` — only the declared IP ranges can access the listener. +* Invalid values (malformed CIDR, IPv6, unknown default action) make the Service/Ingress report an error, and the ACL keeps the last valid configuration. +* Removing the annotation restores the listener ACL to the value it had before the controller took over. +* If multiple Services/Ingresses share one Load Balancer, declare the ACL consistently; otherwise the controller reports a conflict. +{% endhint %} + +For the full meaning of each annotation, see [Configure for a Network Load Balancer](cau-hinh-cho-mot-network-load-balancer.md). + +*** + ### **Step 2: Check Deployment and Service information just deployed** * Run the following command to test **Deployment** diff --git a/Vietnamese/gioi-thieu-chung/thong-bao-va-cap-nhat/2026.md b/Vietnamese/gioi-thieu-chung/thong-bao-va-cap-nhat/2026.md index af853a2d..342e6236 100644 --- a/Vietnamese/gioi-thieu-chung/thong-bao-va-cap-nhat/2026.md +++ b/Vietnamese/gioi-thieu-chung/thong-bao-va-cap-nhat/2026.md @@ -232,6 +232,17 @@ Chính sách gia hạn tài nguyên này áp dụng từ ngày 8/1/2026 và áp {% endtab %} {% tab title="Tính năng mới" %} +**Tháng 11, 2026** + +**VKS – Cấu hình ACL listener vLB qua annotation** + +GreenNode LoadBalancer Controller (từ phiên bản **0.4.2**) cho phép cấu hình ACL cho listener của Load Balancer ngay trên manifest (Service NLB, Ingress ALB), không cần vào vLB Portal: + +* Thêm annotation **`vks.vngcloud.vn/dropped-cidrs`** (danh sách CIDR/IP IPv4 bị chặn, `0.0.0.0/0` = chặn toàn bộ) và **`vks.vngcloud.vn/acl-default-action`** (`accept`/`drop` cho IP không khớp rule nào). +* Annotation `vks.vngcloud.vn/inbound-cidrs` có sẵn nay mang đúng nghĩa whitelist: không đặt `acl-default-action` thì default action là **drop**. +* Gỡ annotation trả listener về giá trị ACL trước đó; ACL đặt tay trên Portal không bị ghi đè. +* Tìm hiểu thêm tại [Integrate with Network Load Balancer](../../vks/network/working-with-nlb/integrate-with-network-load-balancer.md) và [Cấu hình cho một Network Load Balancer](../../vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md). + **Tháng 10, 2026** **GreenNode AI Platform — Guardrail** diff --git a/Vietnamese/vks/announcements/release-notes.md b/Vietnamese/vks/announcements/release-notes.md index 613d2960..524795b8 100644 --- a/Vietnamese/vks/announcements/release-notes.md +++ b/Vietnamese/vks/announcements/release-notes.md @@ -1,5 +1,17 @@ # Release notes +## Nov 11, 2026 + +VKS (VNG Kubernetes Engine) vừa ra mắt bản cập nhật mới với các cải tiến sau: + +**Tính năng mới:** + +* **Cấu hình ACL listener vLB qua annotation:** GreenNode LoadBalancer Controller (từ phiên bản **0.4.2**) cho phép cấu hình ACL cho listener của Load Balancer ngay trên manifest (Service NLB, Ingress ALB), không cần vào vLB Portal. + * Thêm annotation **`vks.vngcloud.vn/dropped-cidrs`** (danh sách CIDR/IP IPv4 bị chặn, `0.0.0.0/0` = chặn toàn bộ) và **`vks.vngcloud.vn/acl-default-action`** (`accept`/`drop` cho IP không khớp rule nào). + * Annotation `vks.vngcloud.vn/inbound-cidrs` có sẵn nay mang đúng nghĩa whitelist: không đặt `acl-default-action` thì default action là **drop**. + * Gỡ annotation trả listener về giá trị ACL trước đó; ACL đặt tay trên Portal không bị ghi đè. + * Hướng dẫn chi tiết tại [Integrate with Network Load Balancer](../network/working-with-nlb/integrate-with-network-load-balancer.md) và [Cấu hình cho một Network Load Balancer](../network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md). + ## Sep 28, 2026 VKS (VNG Kubernetes Engine) vừa ra mắt bản cập nhật mới với các cải tiến sau: diff --git a/Vietnamese/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md b/Vietnamese/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md index 900e0ba6..bd8f34b5 100644 --- a/Vietnamese/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md +++ b/Vietnamese/vks/network/working-with-nlb/cau-hinh-cho-mot-network-load-balancer.md @@ -6,7 +6,9 @@ Tại trang \[Integrate with Network Load Balancer], chúng tôi đã hướng d Sử dụng các annotation dưới đây để tuỳ chỉnh Load Balancer phù hợp với nhu cầu của bạn trên VKS: -
AnnotationBắt buộc/ Không bắt buộcÝ nghĩa
vks.vngcloud.vn/load-balancer-idKhông bắt buộc
  • Nếu bạn chưa có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB. Chúng tôi sẽ tự động tạo 1 NLB trên cluster của bạn. NLB này sẽ hiển thị trên vLB Portal, chi tiết truy cập tại đây
  • Nếu bạn đã có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB và bạn muốn tái sử dụng NLB cho cluster của bạn. Lúc này, bạn hãy nhập thông tin Load Balancer ID vào annotation này.
vks.vngcloud.vn/load-balancer-nameKhông bắt buộc
  • Annotation vks.vngcloud.vn/load-balancer-name sẽ được sử dụng nếu bạn không sử dụng annotation load-balancer-id.
  • Annotation vks.vngcloud.vn/load-balancer-name chỉ có ý nghĩa khi bạn tạo mới một load balancer. Sau khi load balancer được tạo thành công, annotation này sẽ tự động bị xóa. Việc sử dụng annotation này sau khi load balancer được tạo sẽ không có tác dụng.
  • Khi bạn sử dụng annotation này, nếu bạn chưa có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB. Chúng tôi sẽ tự động tạo 1 NLB trên cluster của bạn. ALB này sẽ hiển thị trên vLB Portal, chi tiết truy cập tại đây
  • Nếu bạn đã có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB và bạn muốn tái sử dụng NLB cho cluster của bạn. Lúc này, bạn hãy nhập thông tin Load Balancer Name vào annotation này.
vks.vngcloud.vn/package-idKhông bắt buộc
  • Nếu bạn không nhập thông tin này thì mặc định chúng tôi sẽ sử dụng cấu hình NLB Small.
  • Nếu bạn đã có sẵn host vLB đang ACTIVE và bạn muốn tích hợp host này vô cụm K8S của bạn, vui lòng bỏ qua trường thông tin này.
vks.vngcloud.vn/prefer-zone-idKhông bắt buộc

  • Nếu bạn không nhập thông tin này, hệ thống sẽ tự chọn ngẫu nhiên một zone trong các zone bạn đã chọn sử dụng.
  • Nếu bạn muốn Load Balancer được tạo trong một zone cụ thể, hãy nhập Zone ID vào annotation này. Ví dụ: HCM03-1A, HCM03-1B, HCM03-1C, HAN01-1A.
vks.vngcloud.vn/prefer-subnet-idKhông bắt buộc
  • Nếu không khai báo, hệ thống sẽ chọn ngẫu nhiên một subnet trong các subnet thuộc zone bạn đã chọn.
  • Nếu bạn muốn Load Balancer được tạo trong một subnet cụ thể, hãy nhập Subnet ID vào annotation này.
vks.vngcloud.vn/tagsKhông bắt buộc
  • Tag được gắn thêm cho NLB của bạn.
vks.vngcloud.vn/schemeKhông bắt buộc
  • Mặc định internet-facing, bạn có thể đổi thành internal tùy theo nhu cầu sử dụng.
vks.vngcloud.vn/security-groupsKhông bắt buộc
  • Mặc định sẽ tạo một security group default theo Cluster của bạn.
vks.vngcloud.vn/inbound-cidrsKhông bắt buộc
  • Mặc định All CIRD: 0.0.0.0/0
vks.vngcloud.vn/healthy-threshold-countKhông bắt buộc
  • Mặc định 3
vks.vngcloud.vn/unhealthy-threshold-countKhông bắt buộc
  • Mặc định 3
vks.vngcloud.vn/healthcheck-interval-secondsKhông bắt buộc
  • Mặc định 30
vks.vngcloud.vn/healthcheck-timeout-secondsKhông bắt buộc
  • Mặc định 5
vks.vngcloud.vn/healthcheck-protocolKhông bắt buộc
  • Mặc định TCP. Người dùng có thể chọn một trong các giá trị TCP/ HTTP/ HTTPS/ PING-UDP
vks.vngcloud.vn/healthcheck-http-methodKhông bắt buộc
  • Mặc định GET. Người dùng có thể chọn một trong các giá trị GET / POST / PUT
vks.vngcloud.vn/healthcheck-pathKhông bắt buộc
  • Mặc định /
vks.vngcloud.vn/healthcheck-http-versionKhông bắt buộc
  • Mặc định 1.0. Người dùng có thể chọn một trong các giá trị 1.0, 1.1
vks.vngcloud.vn/healthcheck-http-domain-nameKhông bắt buộc
  • Mặc định trống
vks.vngcloud.vn/healthcheck-portKhông bắt buộc
  • Mặc định traffic port
vks.vngcloud.vn/success-codesKhông bắt buộc
  • Mặc định 200
vks.vngcloud.vn/idle-timeout-clientKhông bắt buộc
  • Mặc định 50
vks.vngcloud.vn/idle-timeout-memberKhông bắt buộc
  • Mặc định 50
vks.vngcloud.vn/idle-timeout-connectionKhông bắt buộc
  • Mặc định 5
vks.vngcloud.vn/pool-algorithmKhông bắt buộc
  • Mặc định ROUND_ROBIN. Người dùng có thể chọn một trong các giá trị ROUND_ROBIN / LEAST_CONNECTIONS / SOURCE_IP
vks.vngcloud.vn/target-node-labelsKhông bắt buộc
  • Mặc định trống
vks.vngcloud.vn/enable-proxy-protocolKhông bắt buộc
  • Mặc định trống. Người dùng chỉ định danh sách các service name trong Load Balancer mà Proxy Protocol sẽ được áp dụng.
vks.vngcloud.vn/is-pocKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống sẽ tạo Load Balancer và thực hiện thanh toán bởi số dư ví POC.
vks.vngcloud.vn/enable-autoscaleKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống sẽ tạo Load Balancer với mode autoscale được bật.
vks.vngcloud.vn/ignoreKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống VKS sẽ không quản lý Service. Mọi thay đổi đối trên Service sẽ bị bỏ qua và LoadBalancer sẽ không được cập nhật.
+Với ACL của listener, vLB đánh giá theo thứ tự: **Dropped CIDRs** (danh sách chặn) → **Allowed CIDRs** (danh sách cho phép) → **Default action** (hành động mặc định); rule khớp đầu tiên sẽ thắng và IP không khớp rule nào sẽ áp dụng **Default action**. Các annotation ACL (`dropped-cidrs`, `inbound-cidrs`, `acl-default-action`) chỉ hỗ trợ IPv4 và yêu cầu GreenNode LoadBalancer Controller từ phiên bản **0.4.2**. + +
AnnotationBắt buộc/ Không bắt buộcÝ nghĩa
vks.vngcloud.vn/load-balancer-idKhông bắt buộc
  • Nếu bạn chưa có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB. Chúng tôi sẽ tự động tạo 1 NLB trên cluster của bạn. NLB này sẽ hiển thị trên vLB Portal, chi tiết truy cập tại đây
  • Nếu bạn đã có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB và bạn muốn tái sử dụng NLB cho cluster của bạn. Lúc này, bạn hãy nhập thông tin Load Balancer ID vào annotation này.
vks.vngcloud.vn/load-balancer-nameKhông bắt buộc
  • Annotation vks.vngcloud.vn/load-balancer-name sẽ được sử dụng nếu bạn không sử dụng annotation load-balancer-id.
  • Annotation vks.vngcloud.vn/load-balancer-name chỉ có ý nghĩa khi bạn tạo mới một load balancer. Sau khi load balancer được tạo thành công, annotation này sẽ tự động bị xóa. Việc sử dụng annotation này sau khi load balancer được tạo sẽ không có tác dụng.
  • Khi bạn sử dụng annotation này, nếu bạn chưa có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB. Chúng tôi sẽ tự động tạo 1 NLB trên cluster của bạn. ALB này sẽ hiển thị trên vLB Portal, chi tiết truy cập tại đây
  • Nếu bạn đã có sẵn một Network Load Balancer đã khởi tạo trước đó trên hệ thống vLB và bạn muốn tái sử dụng NLB cho cluster của bạn. Lúc này, bạn hãy nhập thông tin Load Balancer Name vào annotation này.
vks.vngcloud.vn/package-idKhông bắt buộc
  • Nếu bạn không nhập thông tin này thì mặc định chúng tôi sẽ sử dụng cấu hình NLB Small.
  • Nếu bạn đã có sẵn host vLB đang ACTIVE và bạn muốn tích hợp host này vô cụm K8S của bạn, vui lòng bỏ qua trường thông tin này.
vks.vngcloud.vn/prefer-zone-idKhông bắt buộc

  • Nếu bạn không nhập thông tin này, hệ thống sẽ tự chọn ngẫu nhiên một zone trong các zone bạn đã chọn sử dụng.
  • Nếu bạn muốn Load Balancer được tạo trong một zone cụ thể, hãy nhập Zone ID vào annotation này. Ví dụ: HCM03-1A, HCM03-1B, HCM03-1C, HAN01-1A.
vks.vngcloud.vn/prefer-subnet-idKhông bắt buộc
  • Nếu không khai báo, hệ thống sẽ chọn ngẫu nhiên một subnet trong các subnet thuộc zone bạn đã chọn.
  • Nếu bạn muốn Load Balancer được tạo trong một subnet cụ thể, hãy nhập Subnet ID vào annotation này.
vks.vngcloud.vn/tagsKhông bắt buộc
  • Tag được gắn thêm cho NLB của bạn.
vks.vngcloud.vn/schemeKhông bắt buộc
  • Mặc định internet-facing, bạn có thể đổi thành internal tùy theo nhu cầu sử dụng.
vks.vngcloud.vn/security-groupsKhông bắt buộc
  • Mặc định sẽ tạo một security group default theo Cluster của bạn.
vks.vngcloud.vn/inbound-cidrsKhông bắt buộc
  • Mặc định All CIDR: 0.0.0.0/0
  • Danh sách CIDR/IP IPv4 được phép truy cập (Allowed CIDRs), đánh giá sau dropped-cidrs.
  • Nếu đặt annotation này mà không đặt vks.vngcloud.vn/acl-default-action, default action sẽ là drop — chỉ các dải IP đã khai báo được truy cập.
  • Gỡ annotation này sẽ trả listener về giá trị ACL trước đó (thường là 0.0.0.0/0).
vks.vngcloud.vn/dropped-cidrsKhông bắt buộc
  • Danh sách CIDR/IP IPv4 bị chặn (Dropped CIDRs), ngăn cách bằng dấu phẩy. Ví dụ: 203.0.113.9/32,198.51.100.0/24.
  • 0.0.0.0/0: chặn toàn bộ truy cập vào listener.
  • Chuỗi rỗng "": xóa danh sách chặn (controller vẫn quản lý danh sách này).
  • Được ưu tiên đánh giá trước inbound-cidrs: IP nằm trong cả hai danh sách sẽ bị chặn.
  • Truy cập bị chặn sẽ bị bỏ gói im lặng, client sẽ thấy timeout.
vks.vngcloud.vn/acl-default-actionKhông bắt buộc
  • Hành động áp dụng cho IP không khớp rule ACL nào: accept hoặc drop (không phân biệt hoa thường).
  • Nếu đặt inbound-cidrs mà không đặt annotation này, controller sẽ đặt default action là drop.
vks.vngcloud.vn/healthy-threshold-countKhông bắt buộc
  • Mặc định 3
vks.vngcloud.vn/unhealthy-threshold-countKhông bắt buộc
  • Mặc định 3
vks.vngcloud.vn/healthcheck-interval-secondsKhông bắt buộc
  • Mặc định 30
vks.vngcloud.vn/healthcheck-timeout-secondsKhông bắt buộc
  • Mặc định 5
vks.vngcloud.vn/healthcheck-protocolKhông bắt buộc
  • Mặc định TCP. Người dùng có thể chọn một trong các giá trị TCP/ HTTP/ HTTPS/ PING-UDP
vks.vngcloud.vn/healthcheck-http-methodKhông bắt buộc
  • Mặc định GET. Người dùng có thể chọn một trong các giá trị GET / POST / PUT
vks.vngcloud.vn/healthcheck-pathKhông bắt buộc
  • Mặc định /
vks.vngcloud.vn/healthcheck-http-versionKhông bắt buộc
  • Mặc định 1.0. Người dùng có thể chọn một trong các giá trị 1.0, 1.1
vks.vngcloud.vn/healthcheck-http-domain-nameKhông bắt buộc
  • Mặc định trống
vks.vngcloud.vn/healthcheck-portKhông bắt buộc
  • Mặc định traffic port
vks.vngcloud.vn/success-codesKhông bắt buộc
  • Mặc định 200
vks.vngcloud.vn/idle-timeout-clientKhông bắt buộc
  • Mặc định 50
vks.vngcloud.vn/idle-timeout-memberKhông bắt buộc
  • Mặc định 50
vks.vngcloud.vn/idle-timeout-connectionKhông bắt buộc
  • Mặc định 5
vks.vngcloud.vn/pool-algorithmKhông bắt buộc
  • Mặc định ROUND_ROBIN. Người dùng có thể chọn một trong các giá trị ROUND_ROBIN / LEAST_CONNECTIONS / SOURCE_IP
vks.vngcloud.vn/target-node-labelsKhông bắt buộc
  • Mặc định trống
vks.vngcloud.vn/enable-proxy-protocolKhông bắt buộc
  • Mặc định trống. Người dùng chỉ định danh sách các service name trong Load Balancer mà Proxy Protocol sẽ được áp dụng.
vks.vngcloud.vn/is-pocKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống sẽ tạo Load Balancer và thực hiện thanh toán bởi số dư ví POC.
vks.vngcloud.vn/enable-autoscaleKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống sẽ tạo Load Balancer với mode autoscale được bật.
vks.vngcloud.vn/ignoreKhông bắt buộc
  • Mặc định false.
  • Nếu người dùng chỉ định field này là true, hệ thống VKS sẽ không quản lý Service. Mọi thay đổi đối trên Service sẽ bị bỏ qua và LoadBalancer sẽ không được cập nhật.
diff --git a/Vietnamese/vks/network/working-with-nlb/integrate-with-network-load-balancer.md b/Vietnamese/vks/network/working-with-nlb/integrate-with-network-load-balancer.md index 8ddac62d..7946c6c5 100644 --- a/Vietnamese/vks/network/working-with-nlb/integrate-with-network-load-balancer.md +++ b/Vietnamese/vks/network/working-with-nlb/integrate-with-network-load-balancer.md @@ -291,6 +291,60 @@ kubectl apply -f nginx-service-lb4.yaml *** +### Chặn truy cập bằng ACL annotation + +Từ phiên bản **0.4.2** của GreenNode LoadBalancer Controller, bạn có thể cấu hình ACL cho listener của Load Balancer ngay trên manifest (Service hoặc Ingress) mà không cần vào vLB Portal. ACL được đánh giá theo thứ tự: **Dropped CIDRs** → **Allowed CIDRs** → **Default action**; rule khớp đầu tiên sẽ thắng, IP không khớp rule nào sẽ áp dụng **Default action**. Lưu lượng bị drop sẽ bị bỏ gói im lặng, client sẽ thấy timeout thay vì lỗi từ chối kết nối. + +Các annotation liên quan: + +* `vks.vngcloud.vn/dropped-cidrs`: danh sách CIDR/IP IPv4 bị chặn, ngăn cách bằng dấu phẩy. +* `vks.vngcloud.vn/inbound-cidrs`: danh sách CIDR/IP IPv4 được phép truy cập. +* `vks.vngcloud.vn/acl-default-action`: `accept` hoặc `drop`. + +Ví dụ: chặn 2 nguồn truy cập vào Service nginx ở trên bằng cách thêm annotation vào Service: + +``` +apiVersion: v1 +kind: Service +metadata: + name: nginx-service + annotations: + vks.vngcloud.vn/dropped-cidrs: "203.0.113.9/32,198.51.100.0/24" +spec: + selector: + app: nginx + type: LoadBalancer + ports: + - protocol: TCP + port: 80 + targetPort: 80 +``` + +Sau đó chạy lại lệnh `kubectl apply -f nginx-service-lb4.yaml` để cập nhật Service. + +Một số trường hợp thường dùng: + +| Mục đích | Annotation | +|---|---| +| Chặn một số IP/dải IP | `vks.vngcloud.vn/dropped-cidrs: "203.0.113.9/32,198.51.100.0/24"` | +| Chỉ cho phép một số dải IP | `vks.vngcloud.vn/inbound-cidrs: "192.0.2.0/24"` | +| Cho phép một dải, trừ vài IP | `vks.vngcloud.vn/inbound-cidrs: "192.0.2.0/24"` và `vks.vngcloud.vn/dropped-cidrs: "192.0.2.13/32"` | +| Chặn toàn bộ truy cập | `vks.vngcloud.vn/dropped-cidrs: "0.0.0.0/0"` | + +{% hint style="info" %} +Lưu ý: + +* ACL annotation chỉ hỗ trợ IPv4 và yêu cầu GreenNode LoadBalancer Controller từ phiên bản **0.4.2**. Các annotation này cũng dùng được cho Ingress (ALB). +* Nếu đặt `inbound-cidrs` mà không đặt `acl-default-action`, default action sẽ là `drop` — chỉ các dải IP đã khai báo được truy cập. +* Giá trị không hợp lệ (CIDR sai định dạng, IPv6, default action lạ) sẽ khiến Service/Ingress báo lỗi và ACL giữ nguyên cấu hình hợp lệ trước đó. +* Gỡ annotation sẽ trả listener về giá trị ACL trước khi LBC quản lý. +* Nếu nhiều Service/Ingress dùng chung một Load Balancer, hãy khai báo ACL nhất quán; nếu không, controller sẽ báo lỗi xung đột. +{% endhint %} + +Chi tiết ý nghĩa từng annotation, xem tại [Cấu hình cho một Network Load Balancer](cau-hinh-cho-mot-network-load-balancer.md). + +*** + ### **Kiểm tra thông tin Deployment, Service vừa deploy** * Chạy câu lệnh sau đây để kiểm tra **Deployment**