Updating layer-4-and-layer-7-load-balancing.md, adding note v2.10/v2.11 as RKE still applicable

Signed-off-by: Sunil Singh <sunil.singh@suse.com>
This commit is contained in:
Sunil Singh
2026-03-19 13:25:20 -07:00
parent 0a206c2a71
commit 27c40e5b37
12 changed files with 72 additions and 128 deletions
@@ -11,13 +11,11 @@ Kubernetes supports load balancing in two ways: Layer-4 Load Balancing and Layer
## Layer-4 Load Balancer
Layer-4 load balancer (or the external load balancer) forwards traffic to Nodeports. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -30,17 +28,11 @@ Cluster Deployment | Layer-4 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GCE cloud provider
Azure AKS | Supported by Azure cloud provider
RKE on EC2 | Supported by AWS cloud provider
RKE on DigitalOcean | Limited NGINX or third-party Ingress*
RKE on vSphere | Limited NGINX or third party-Ingress*
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Limited NGINX or third-party Ingress*
Third-party MetalLB | Limited NGINX or third-party Ingress*
\* Services can be exposed through a single [globally managed config-map.](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)
Third-party MetalLB | third-party Ingress*
## Layer-7 Load Balancer
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer. In addition, RKE clusters deploys the Nginx Ingress Controller.
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### Support for Layer-7 Load Balancing
@@ -51,16 +43,12 @@ Cluster Deployment | Layer-7 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GKE cloud provider
Azure AKS | Not Supported
RKE on EC2 | Nginx Ingress Controller
RKE on DigitalOcean | Nginx Ingress Controller
RKE on vSphere | Nginx Ingress Controller
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Nginx Ingress Controller
### Host Names in Layer-7 Load Balancer
Some cloud-managed layer-7 load balancers (such as the ALB ingress controller on AWS) expose DNS addresses for ingress rules. You need to map (via CNAME) your domain name to the DNS address generated by the layer-7 load balancer.
Other layer-7 load balancers, such as the Google Load Balancer or Nginx Ingress Controller, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. Nginx Ingress Controller exposes the external IP of all nodes that run the Nginx Ingress Controller. You can do either of the following:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. Configure your own DNS to map (via A records) your domain name to the IP addresses exposes by the Layer-7 load balancer.
2. Ask Rancher to generate an xip.io host name for your ingress rule. Rancher will take one of your exposed IPs, say `a.b.c.d`, and generate a host name `<ingressname>.<namespace>.a.b.c.d.xip.io`.
@@ -7,13 +7,11 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
## 四层负载均衡器
四层负载均衡器(或外部负载均衡器)将流量转发到 Nodeport。四层负载均衡器支持转发 HTTP TCP 流量。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -26,17 +24,13 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GCE 云提供商支持 |
| Azure AKS | 由 Azure 云提供商支持 |
| EC2 上的 RKE | 由 AWS 云提供商支持 |
| DigitalOcean 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| vSphere 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | third-party Ingress\* |
\* 可以通过单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 来公开服务。
## 七层负载均衡器
七层负载均衡器(或 Ingress Controller)支持基于主机和路径的负载均衡和 SSL 终止。七层负载均衡器仅转发 HTTP HTTPS 流量,因此它们仅侦听端口 80 443。亚马逊和谷歌等云提供商支持七层负载均衡器。此外,RKE 集群部署了 Nginx Ingress Controller
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### 七层负载均衡支持
@@ -47,16 +41,12 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GKE 云提供商支持 |
| Azure AKS | 不支持 |
| EC2 上的 RKE | Nginx Ingress Controller |
| DigitalOcean 上的 RKE | Nginx Ingress Controller |
| vSphere 上的 RKE | Nginx Ingress Controller |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | Nginx Ingress Controller |
### 七层负载均衡器中的主机名
一些托管在云上的七层负载均衡器(例如 AWS 上的 ALB Ingress Controller)会为 Ingress 规则公开 DNS 地址。你需要(使用 CNAME)将你的域名映射到七层负载均衡器生成的 DNS 地址。
其他七层负载均衡器(例如 Google Load Balancer 或 Nginx Ingress Controller)会直接公开一个或多个 IP 地址。Google Load Balancer 提供了一个可路由的 IP 地址。Nginx Ingress Controller 公开了运行 Nginx Ingress Controller 的所有节点的外部 IP。你可以执行以下任一操作:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. 配置你自己的 DNS,从而(使用 A 记录)将你的域名映射到七层负载均衡器公开的 IP 地址。
2. 让 Rancher 为你的 Ingress 规则生成一个 xip.io 主机名。Rancher 将使用你公开的其中一个 IP(假设是 `a.b.c.d`)生成一个主机名(即 `<ingressname>.<namespace>.a.b.c.d.xip.io`)。
@@ -11,6 +11,14 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
:::warning
**Ingress-NGINX EOL:** The community `ingress-nginx` controller reaches End-of-Life (EOL) in March 2026. Traefik is the recommended migration path for Rancher environments.
Traefik includes a native Ingress NGINX provider. This allows you to migrate from NGINX without rewriting your existing Ingress objects, as Traefik will automatically interpret `nginx.ingress.kubernetes.io` annotations. If you are upgrading a cluster that is already using `ingress-nginx`, follow this [guide](https://doc.traefik.io/traefik/migrate/nginx-to-traefik/) for more information.
:::
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
@@ -11,6 +11,14 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
:::warning
**Ingress-NGINX EOL:** The community `ingress-nginx` controller reaches End-of-Life (EOL) in March 2026. Traefik is the recommended migration path for Rancher environments.
Traefik includes a native Ingress NGINX provider. This allows you to migrate from NGINX without rewriting your existing Ingress objects, as Traefik will automatically interpret `nginx.ingress.kubernetes.io` annotations. If you are upgrading a cluster that is already using `ingress-nginx`, follow this [guide](https://doc.traefik.io/traefik/migrate/nginx-to-traefik/) for more information.
:::
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
@@ -7,13 +7,11 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
## 四层负载均衡器
四层负载均衡器(或外部负载均衡器)将流量转发到 Nodeport。四层负载均衡器支持转发 HTTP TCP 流量。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -26,17 +24,13 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GCE 云提供商支持 |
| Azure AKS | 由 Azure 云提供商支持 |
| EC2 上的 RKE | 由 AWS 云提供商支持 |
| DigitalOcean 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| vSphere 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | third-party Ingress\* |
\* 可以通过单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 来公开服务。
## 七层负载均衡器
七层负载均衡器(或 Ingress Controller)支持基于主机和路径的负载均衡和 SSL 终止。七层负载均衡器仅转发 HTTP HTTPS 流量,因此它们仅侦听端口 80 443。亚马逊和谷歌等云提供商支持七层负载均衡器。此外,RKE 集群部署了 Nginx Ingress Controller
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### 七层负载均衡支持
@@ -47,16 +41,12 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GKE 云提供商支持 |
| Azure AKS | 不支持 |
| EC2 上的 RKE | Nginx Ingress Controller |
| DigitalOcean 上的 RKE | Nginx Ingress Controller |
| vSphere 上的 RKE | Nginx Ingress Controller |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | Nginx Ingress Controller |
### 七层负载均衡器中的主机名
一些托管在云上的七层负载均衡器(例如 AWS 上的 ALB Ingress Controller)会为 Ingress 规则公开 DNS 地址。你需要(使用 CNAME)将你的域名映射到七层负载均衡器生成的 DNS 地址。
其他七层负载均衡器(例如 Google Load Balancer 或 Nginx Ingress Controller)会直接公开一个或多个 IP 地址。Google Load Balancer 提供了一个可路由的 IP 地址。Nginx Ingress Controller 公开了运行 Nginx Ingress Controller 的所有节点的外部 IP。你可以执行以下任一操作:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. 配置你自己的 DNS,从而(使用 A 记录)将你的域名映射到七层负载均衡器公开的 IP 地址。
2. 让 Rancher 为你的 Ingress 规则生成一个 xip.io 主机名。Rancher 将使用你公开的其中一个 IP(假设是 `a.b.c.d`)生成一个主机名(即 `<ingressname>.<namespace>.a.b.c.d.xip.io`)。
@@ -7,13 +7,11 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
## 四层负载均衡器
四层负载均衡器(或外部负载均衡器)将流量转发到 Nodeport。四层负载均衡器支持转发 HTTP TCP 流量。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -26,17 +24,13 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GCE 云提供商支持 |
| Azure AKS | 由 Azure 云提供商支持 |
| EC2 上的 RKE | 由 AWS 云提供商支持 |
| DigitalOcean 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| vSphere 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | third-party Ingress\* |
\* 可以通过单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 来公开服务。
## 七层负载均衡器
七层负载均衡器(或 Ingress Controller)支持基于主机和路径的负载均衡和 SSL 终止。七层负载均衡器仅转发 HTTP HTTPS 流量,因此它们仅侦听端口 80 443。亚马逊和谷歌等云提供商支持七层负载均衡器。此外,RKE 集群部署了 Nginx Ingress Controller
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### 七层负载均衡支持
@@ -47,16 +41,12 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GKE 云提供商支持 |
| Azure AKS | 不支持 |
| EC2 上的 RKE | Nginx Ingress Controller |
| DigitalOcean 上的 RKE | Nginx Ingress Controller |
| vSphere 上的 RKE | Nginx Ingress Controller |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | Nginx Ingress Controller |
### 七层负载均衡器中的主机名
一些托管在云上的七层负载均衡器(例如 AWS 上的 ALB Ingress Controller)会为 Ingress 规则公开 DNS 地址。你需要(使用 CNAME)将你的域名映射到七层负载均衡器生成的 DNS 地址。
其他七层负载均衡器(例如 Google Load Balancer 或 Nginx Ingress Controller)会直接公开一个或多个 IP 地址。Google Load Balancer 提供了一个可路由的 IP 地址。Nginx Ingress Controller 公开了运行 Nginx Ingress Controller 的所有节点的外部 IP。你可以执行以下任一操作:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. 配置你自己的 DNS,从而(使用 A 记录)将你的域名映射到七层负载均衡器公开的 IP 地址。
2. 让 Rancher 为你的 Ingress 规则生成一个 xip.io 主机名。Rancher 将使用你公开的其中一个 IP(假设是 `a.b.c.d`)生成一个主机名(即 `<ingressname>.<namespace>.a.b.c.d.xip.io`)。
@@ -7,13 +7,11 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
## 四层负载均衡器
四层负载均衡器(或外部负载均衡器)将流量转发到 Nodeport。四层负载均衡器支持转发 HTTP TCP 流量。
通常情况下,四层负载均衡器由底层云提供商支持,因此,如果你在裸金属服务器和 vSphere 集群上部署 RKE 集群,则不支持四层负载均衡器。但是,单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 可用于在 NGINX 或第三方 Ingress 上公开服务。
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
你可以使用非云负载均衡器(例如 [MetalLB](https://metallb.universe.tf/))来部署集群。但是,该用例比云提供商支持的四层负载均衡器更高级,而且不可以在 Rancher 或 RKE 中配置。
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -26,17 +24,13 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GCE 云提供商支持 |
| Azure AKS | 由 Azure 云提供商支持 |
| EC2 上的 RKE | 由 AWS 云提供商支持 |
| DigitalOcean 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| vSphere 上的 RKE | 受限的 NGINX 或第三方 Ingress\* |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | 受限的 NGINX 或第三方 Ingress\* |
| 第三方 MetalLB | third-party Ingress\* |
\* 可以通过单个[全局管理的 config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) 来公开服务。
## 七层负载均衡器
七层负载均衡器(或 Ingress Controller)支持基于主机和路径的负载均衡和 SSL 终止。七层负载均衡器仅转发 HTTP HTTPS 流量,因此它们仅侦听端口 80 443。亚马逊和谷歌等云提供商支持七层负载均衡器。此外,RKE 集群部署了 Nginx Ingress Controller
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### 七层负载均衡支持
@@ -47,16 +41,12 @@ Kubernetes 支持四层负载均衡和七层负载均衡。
| Amazon EKS | 由 AWS 云提供商支持 |
| Google GKE | 由 GKE 云提供商支持 |
| Azure AKS | 不支持 |
| EC2 上的 RKE | Nginx Ingress Controller |
| DigitalOcean 上的 RKE | Nginx Ingress Controller |
| vSphere 上的 RKE | Nginx Ingress Controller |
| 自定义主机上的 RKE<br/>(例如裸金属服务器) | Nginx Ingress Controller |
### 七层负载均衡器中的主机名
一些托管在云上的七层负载均衡器(例如 AWS 上的 ALB Ingress Controller)会为 Ingress 规则公开 DNS 地址。你需要(使用 CNAME)将你的域名映射到七层负载均衡器生成的 DNS 地址。
其他七层负载均衡器(例如 Google Load Balancer 或 Nginx Ingress Controller)会直接公开一个或多个 IP 地址。Google Load Balancer 提供了一个可路由的 IP 地址。Nginx Ingress Controller 公开了运行 Nginx Ingress Controller 的所有节点的外部 IP。你可以执行以下任一操作:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. 配置你自己的 DNS,从而(使用 A 记录)将你的域名映射到七层负载均衡器公开的 IP 地址。
2. 让 Rancher 为你的 Ingress 规则生成一个 xip.io 主机名。Rancher 将使用你公开的其中一个 IP(假设是 `a.b.c.d`)生成一个主机名(即 `<ingressname>.<namespace>.a.b.c.d.xip.io`)。
@@ -15,6 +15,14 @@ Layer-4 load balancer (or the external load balancer) forwards traffic to Nodepo
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
:::warning
**Ingress-NGINX EOL:** The community `ingress-nginx` controller reaches End-of-Life (EOL) in March 2026. Traefik is the recommended migration path for Rancher environments.
Traefik includes a native Ingress NGINX provider. This allows you to migrate from NGINX without rewriting your existing Ingress objects, as Traefik will automatically interpret `nginx.ingress.kubernetes.io` annotations. If you are upgrading a cluster that is already using `ingress-nginx`, follow this [guide](https://doc.traefik.io/traefik/migrate/nginx-to-traefik/) for more information.
:::
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
@@ -15,6 +15,14 @@ Layer-4 load balancer (or the external load balancer) forwards traffic to Nodepo
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
:::warning
**Ingress-NGINX EOL:** The community `ingress-nginx` controller reaches End-of-Life (EOL) in March 2026. Traefik is the recommended migration path for Rancher environments.
Traefik includes a native Ingress NGINX provider. This allows you to migrate from NGINX without rewriting your existing Ingress objects, as Traefik will automatically interpret `nginx.ingress.kubernetes.io` annotations. If you are upgrading a cluster that is already using `ingress-nginx`, follow this [guide](https://doc.traefik.io/traefik/migrate/nginx-to-traefik/) for more information.
:::
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
@@ -11,13 +11,11 @@ Kubernetes supports load balancing in two ways: Layer-4 Load Balancing and Layer
## Layer-4 Load Balancer
Layer-4 load balancer (or the external load balancer) forwards traffic to Nodeports. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -30,17 +28,11 @@ Cluster Deployment | Layer-4 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GCE cloud provider
Azure AKS | Supported by Azure cloud provider
RKE on EC2 | Supported by AWS cloud provider
RKE on DigitalOcean | Limited NGINX or third-party Ingress*
RKE on vSphere | Limited NGINX or third party-Ingress*
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Limited NGINX or third-party Ingress*
Third-party MetalLB | Limited NGINX or third-party Ingress*
\* Services can be exposed through a single [globally managed config-map.](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)
Third-party MetalLB | third-party Ingress*
## Layer-7 Load Balancer
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer. In addition, RKE clusters deploys the Nginx Ingress Controller.
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### Support for Layer-7 Load Balancing
@@ -51,16 +43,12 @@ Cluster Deployment | Layer-7 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GKE cloud provider
Azure AKS | Not Supported
RKE on EC2 | Nginx Ingress Controller
RKE on DigitalOcean | Nginx Ingress Controller
RKE on vSphere | Nginx Ingress Controller
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Nginx Ingress Controller
### Host Names in Layer-7 Load Balancer
Some cloud-managed layer-7 load balancers (such as the ALB ingress controller on AWS) expose DNS addresses for ingress rules. You need to map (via CNAME) your domain name to the DNS address generated by the layer-7 load balancer.
Other layer-7 load balancers, such as the Google Load Balancer or Nginx Ingress Controller, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. Nginx Ingress Controller exposes the external IP of all nodes that run the Nginx Ingress Controller. You can do either of the following:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. Configure your own DNS to map (via A records) your domain name to the IP addresses exposes by the Layer-7 load balancer.
2. Ask Rancher to generate an xip.io host name for your ingress rule. Rancher will take one of your exposed IPs, say `a.b.c.d`, and generate a host name `<ingressname>.<namespace>.a.b.c.d.xip.io`.
@@ -11,13 +11,11 @@ Kubernetes supports load balancing in two ways: Layer-4 Load Balancing and Layer
## Layer-4 Load Balancer
Layer-4 load balancer (or the external load balancer) forwards traffic to Nodeports. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -30,17 +28,11 @@ Cluster Deployment | Layer-4 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GCE cloud provider
Azure AKS | Supported by Azure cloud provider
RKE on EC2 | Supported by AWS cloud provider
RKE on DigitalOcean | Limited NGINX or third-party Ingress*
RKE on vSphere | Limited NGINX or third party-Ingress*
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Limited NGINX or third-party Ingress*
Third-party MetalLB | Limited NGINX or third-party Ingress*
\* Services can be exposed through a single [globally managed config-map.](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)
Third-party MetalLB | third-party Ingress*
## Layer-7 Load Balancer
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer. In addition, RKE clusters deploys the Nginx Ingress Controller.
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### Support for Layer-7 Load Balancing
@@ -51,16 +43,12 @@ Cluster Deployment | Layer-7 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GKE cloud provider
Azure AKS | Not Supported
RKE on EC2 | Nginx Ingress Controller
RKE on DigitalOcean | Nginx Ingress Controller
RKE on vSphere | Nginx Ingress Controller
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Nginx Ingress Controller
### Host Names in Layer-7 Load Balancer
Some cloud-managed layer-7 load balancers (such as the ALB ingress controller on AWS) expose DNS addresses for ingress rules. You need to map (via CNAME) your domain name to the DNS address generated by the layer-7 load balancer.
Other layer-7 load balancers, such as the Google Load Balancer or Nginx Ingress Controller, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. Nginx Ingress Controller exposes the external IP of all nodes that run the Nginx Ingress Controller. You can do either of the following:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. Configure your own DNS to map (via A records) your domain name to the IP addresses exposes by the Layer-7 load balancer.
2. Ask Rancher to generate an xip.io host name for your ingress rule. Rancher will take one of your exposed IPs, say `a.b.c.d`, and generate a host name `<ingressname>.<namespace>.a.b.c.d.xip.io`.
@@ -11,13 +11,11 @@ Kubernetes supports load balancing in two ways: Layer-4 Load Balancing and Layer
## Layer-4 Load Balancer
Layer-4 load balancer (or the external load balancer) forwards traffic to Nodeports. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
Often, the Layer-4 load balancer is supported by the underlying cloud provider, so when you deploy RKE clusters on bare-metal servers and vSphere clusters, Layer-4 load balancer is not supported. However, a single [globally managed config-map](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/) can be used to expose services on NGINX or third-party ingress.
Layer-4 load balancer (or the external load balancer) forwards traffic to NodePorts. Layer-4 load balancer allows you to forward both HTTP and TCP traffic.
:::note
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher or RKE.
It is possible to deploy a cluster with a non-cloud load balancer, such as [MetalLB.](https://metallb.universe.tf/) However, that use case is more advanced than the Layer-4 load balancer supported by a cloud provider, and it is not configurable in Rancher.
:::
@@ -30,17 +28,11 @@ Cluster Deployment | Layer-4 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GCE cloud provider
Azure AKS | Supported by Azure cloud provider
RKE on EC2 | Supported by AWS cloud provider
RKE on DigitalOcean | Limited NGINX or third-party Ingress*
RKE on vSphere | Limited NGINX or third party-Ingress*
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Limited NGINX or third-party Ingress*
Third-party MetalLB | Limited NGINX or third-party Ingress*
\* Services can be exposed through a single [globally managed config-map.](https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/)
Third-party MetalLB | third-party Ingress*
## Layer-7 Load Balancer
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer. In addition, RKE clusters deploys the Nginx Ingress Controller.
Layer-7 load balancer (or the ingress controller) supports host and path-based load balancing and SSL termination. Layer-7 load balancer only forwards HTTP and HTTPS traffic and therefore they listen on ports 80 and 443 only. Cloud providers such as Amazon and Google support layer-7 load balancer.
### Support for Layer-7 Load Balancing
@@ -51,16 +43,12 @@ Cluster Deployment | Layer-7 Load Balancer Support
Amazon EKS | Supported by AWS cloud provider
Google GKE | Supported by GKE cloud provider
Azure AKS | Not Supported
RKE on EC2 | Nginx Ingress Controller
RKE on DigitalOcean | Nginx Ingress Controller
RKE on vSphere | Nginx Ingress Controller
RKE on Custom Hosts<br/>(e.g. bare-metal servers) | Nginx Ingress Controller
### Host Names in Layer-7 Load Balancer
Some cloud-managed layer-7 load balancers (such as the ALB ingress controller on AWS) expose DNS addresses for ingress rules. You need to map (via CNAME) your domain name to the DNS address generated by the layer-7 load balancer.
Other layer-7 load balancers, such as the Google Load Balancer or Nginx Ingress Controller, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. Nginx Ingress Controller exposes the external IP of all nodes that run the Nginx Ingress Controller. You can do either of the following:
Other layer-7 load balancers, such as the Google Load Balancer, directly expose one or more IP addresses. Google Load Balancer provides a single routable IP address. You can do either of the following:
1. Configure your own DNS to map (via A records) your domain name to the IP addresses exposes by the Layer-7 load balancer.
2. Ask Rancher to generate an xip.io host name for your ingress rule. Rancher will take one of your exposed IPs, say `a.b.c.d`, and generate a host name `<ingressname>.<namespace>.a.b.c.d.xip.io`.