内部负载平衡器 (ILB) 通过分配给组织的内部 IP 池公开组织内的服务。ILB 服务永远无法从组织外部的任何端点访问。
默认情况下,您可以从组织中的任何集群访问同一项目中的 ILB 服务。默认的项目网络政策不允许您从项目外部访问任何项目资源,此限制也适用于 ILB 服务。如果平台管理员 (PA) 配置的项目网络政策允许从其他项目访问您的项目,则同一组织中的其他项目也可以访问 ILB 服务。
准备工作
如需配置 ILB,您必须具备以下条件:
- 拥有您要配置负载均衡器的项目。如需了解详情,请参阅创建项目。
必要的身份和访问权限角色:
- 请让您的组织 IAM 管理员向您授予 Load Balancer Admin (
load-balancer-admin) 角色。 - 对于全球 ILB,请让组织 IAM 管理员为您授予 Global Load Balancer Admin (
global-load-balancer-admin) 角色。如需了解详情,请参阅预定义角色说明。
- 请让您的组织 IAM 管理员向您授予 Load Balancer Admin (
创建内部负载均衡器
您可以创建全球级或可用区级 ILB。全球 ILB 的范围涵盖整个 GDC 宇宙。可用区级 ILB 的范围仅限于创建时指定的可用区。如需了解详情,请参阅全球和可用区级负载平衡器。
在 GDC 中使用三种不同的方法创建 ILB:
- 使用 gdcloud CLI 创建全球或可用区级 ILB。
- 使用 Networking Kubernetes 资源模型 (KRM) API 创建全球或区域级 ILB。
- 直接在 Kubernetes 集群中使用 Kubernetes 服务。此方法仅适用于可用区级 ILB。
您可以使用 KRM API 和 gdcloud CLI 定位 Pod 或虚拟机工作负载。直接从 Kubernetes 集群使用 Kubernetes 服务时,您只能以创建 Service 对象的集群中的工作负载为目标。
创建可用区级 ILB
使用 gcloud CLI、KRM API 或 Kubernetes 集群中的 Kubernetes 服务创建区域级 ILB:
gdcloud
使用 gcloud CLI 创建以 Pod 或虚拟机工作负载为目标的 ILB。
此 ILB 以项目中与 Backend 对象中定义的标签匹配的所有工作负载为目标。
如需使用 gdcloud CLI 创建 ILB,请按照以下步骤操作:
创建
Backend资源以定义 ILB 的端点:gdcloud compute backends create BACKEND_NAME \ --labels=LABELS \ --project=PROJECT_NAME \ --zone=ZONE \ --cluster=CLUSTER_NAME替换以下内容:
BACKEND_NAME:您为后端资源选择的名称,例如my-backend。LABELS:一种选择器,用于定义要为此后端资源使用哪些 Pod 与虚拟机之间的端点。例如app=web。PROJECT_NAME:您的项目的名称。ZONE:要用于此调用的可用区。如需为所有需要可用区标志的命令预设该标志,请运行:gdcloud config set core/zone ZONE。可用区标志仅在多可用区环境中可用。此字段是可选字段。CLUSTER_NAME:将所定义选择器的范围限制到的集群。如果未指定此字段,则会选择具有指定标签的所有端点。此字段是可选字段。
如果此 ILB 适用于 Pod 工作负载,请跳过此步骤。如果您要为虚拟机工作负载配置 ILB,请为 ILB 定义健康检查:
gdcloud compute health-checks create tcp HEALTH_CHECK_NAME \ --check-interval=CHECK_INTERVAL \ --healthy-threshold=HEALTHY_THRESHOLD \ --timeout=TIMEOUT \ --unhealthy-threshold=UNHEALTHY_THRESHOLD \ --port=PORT \ --zone=ZONE替换以下内容:
HEALTH_CHECK_NAME:您为健康检查资源选择的名称,例如my-health-check。CHECK_INTERVAL:从一次探测开始到下一次探测开始之间的时间量(以秒为单位)。默认值为5。此字段是可选字段。HEALTHY_THRESHOLD:在声明失败之前等待的时间。默认值为5。此字段是可选字段。TIMEOUT:在声明失败之前等待的时间量(以秒为单位)。默认值为5。此字段是可选字段。UNHEALTHY_THRESHOLD:要将端点视为运行状况不佳所必须失败的连续探测次数。默认值为2。此字段是可选字段。PORT:执行健康检查的端口。默认值为80。此字段是可选字段。ZONE:您要在其中创建此 ILB 的可用区。
创建
BackendService资源,并将之前创建的Backend资源添加到其中:gdcloud compute backend-services create BACKEND_SERVICE_NAME \ --project=PROJECT_NAME \ --target-ports=TARGET_PORTS \ --zone=ZONE \ --health-check=HEALTH_CHECK_NAME替换以下内容:
BACKEND_SERVICE_NAME:相应后端服务的所选名称。TARGET_PORTS:此后端服务转换的目标端口的英文逗号分隔列表,其中每个目标端口都指定了协议、转发规则中的端口和后端实例中的端口。您可以指定多个目标端口。此字段必须采用protocol:port:targetport格式,例如TCP:80:8080。此字段是可选字段。HEALTH_CHECK_NAME:健康检查资源的名称。此字段是可选字段。仅当您为虚拟机工作负载配置 ILB 时,才添加此字段。
将
BackendService资源添加到之前创建的Backend资源:gdcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --backend=BACKEND_NAME \ --project=PROJECT_NAME \ --zone=ZONE创建内部
ForwardingRule资源,用于定义服务可用的 VIP:gdcloud compute forwarding-rules create FORWARDING_RULE_INTERNAL_NAME \ --backend-service=BACKEND_SERVICE_NAME \ --cidr=CIDR \ --ip-protocol-port=PROTOCOL_PORT \ --load-balancing-scheme=INTERNAL \ --zone=ZONE \ --project=PROJECT_NAME替换以下内容:
BACKEND_SERVICE_NAME:后端服务的名称。- 将
FORWARDING_RULE_INTERNAL_NAME替换为您为转发规则选择的名称。 CIDR:此字段是可选字段。如果未指定,系统会自动从可用区 IP 池中预留一个IPv4/32CIDR。指定与相应转发规则位于同一命名空间中的Subnet资源的名称。Subnet资源表示区域子网的请求和分配信息。如需详细了解Subnet资源,请参阅自定义资源示例。PROTOCOL_PORT:要在转发规则中公开的协议和端口。此字段必须采用ip-protocol=TCP:80格式。公开的端口必须与实际应用在容器内公开的端口相同。
如需验证配置的 ILB,请确认每个已创建对象上的
Ready条件。通过向 VIP 发送curl请求来验证流量:如需获取分配的 VIP,请描述转发规则:
gdcloud compute forwarding-rules describe FORWARDING_RULE_INTERNAL_NAME通过向转发规则中
PROTOCOL_PORT字段指定的端口上的 VIP 发送curl请求来验证流量:curl http://FORWARDING_RULE_VIP:PORT替换以下内容:
FORWARDING_RULE_VIP:转发规则的 VIP。PORT:转发规则中PROTOCOL_PORT字段的起始端口号。
API
使用 KRM API 创建以 Pod 或虚拟机工作负载为目标的 ILB。
此 ILB 以项目中与 Backend 对象中定义的标签匹配的所有工作负载为目标。
如需使用 KRM API 创建可用区级 ILB,请按以下步骤操作:
创建
Backend资源以定义 ILB 的端点。为放置工作负载的每个可用区创建Backend资源:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: Backend metadata: namespace: PROJECT_NAME name: BACKEND_NAME spec: clusterName: CLUSTER_NAME endpointsLabels: matchLabels: app: server EOF替换以下内容:
MANAGEMENT_API_SERVER:区域管理 API 服务器的 kubeconfig 路径。如需了解详情,请参阅切换到可用区级上下文。PROJECT_NAME:您的项目的名称。BACKEND_NAME:Backend资源的名称。CLUSTER_NAME:此字段为可选字段。此字段用于指定所定义选择器的范围所限定到的集群。此字段不适用于虚拟机工作负载。如果Backend资源未包含clusterName字段,则指定的标签会应用于项目中的所有工作负载。
您可以为每个可用区使用相同的
Backend资源,也可以为每个可用区创建具有不同标签集的Backend资源。如果此 ILB 适用于 Pod 工作负载,请跳过此步骤。如果您要为虚拟机工作负载配置 ILB,请为 ILB 定义健康检查:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: HealthCheck metadata: namespace: PROJECT_NAME name: HEALTH_CHECK_NAME spec: tcpHealthCheck: port: PORT timeoutSec: TIMEOUT checkIntervalSec: CHECK_INTERVAL healthyThreshold: HEALTHY_THRESHOLD unhealthyThreshold: UNHEALTHY_THRESHOLD EOF替换以下内容:
HEALTH_CHECK_NAME:您为健康检查资源选择的名称,例如my-health-check。PORT:执行健康检查的端口。默认值为80。TIMEOUT:在声明失败之前等待的时间量(以秒为单位)。默认值为5。CHECK_INTERVAL:从一次探测开始到下一次探测开始之间的时间量(以秒为单位)。默认值为5。HEALTHY_THRESHOLD:要将端点视为运行状况良好必须通过的连续探测次数。默认值为2。UNHEALTHY_THRESHOLD:要将端点视为运行状况不佳所必须失败的连续探测次数。默认值为2。
使用之前创建的
Backend资源创建一个BackendService对象。如果您要为虚拟机工作负载配置 ILB,请添加HealthCheck资源。kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: BackendService metadata: namespace: PROJECT_NAME name: BACKEND_SERVICE_NAME spec: backendRefs: - name: BACKEND_NAME healthCheckName: HEALTH_CHECK_NAME EOF替换以下内容:
BACKEND_SERVICE_NAME:为BackendService资源选择的名称。HEALTH_CHECK_NAME:您之前创建的HealthCheck资源的名称。如果您要为 Pod 工作负载配置 ILB,请勿添加此字段。
创建内部
ForwardingRule资源,用于定义服务可用的 VIP。kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: ForwardingRuleInternal metadata: namespace: PROJECT_NAME Name: FORWARDING_RULE_INTERNAL_NAME spec: cidrRef: CIDR ports: - port: PORT Protocol: PROTOCOL backendServiceRef: name: BACKEND_SERVICE_NAME EOF替换以下内容:
FORWARDING_RULE_INTERNAL_NAME:为ForwardingRuleInternal资源选择的名称。CIDR:此字段是可选字段。如果未指定,系统会自动从可用区 IP 池中预留一个IPv4/32CIDR。指定与相应转发规则位于同一命名空间中的Subnet资源的名称。Subnet资源表示区域子网的请求和分配信息。如需详细了解Subnet资源,请参阅自定义资源示例。PORT:使用ports字段指定一个 L4 端口数组,数据包将转发到通过此转发规则配置的后端。必须至少指定一个端口。使用port字段指定端口号。公开的端口必须与实际应用在容器内公开的端口相同。PROTOCOL:用于转发规则的协议,例如TCP。ports数组中的条目必须如下所示:ports: - port: 80 protocol: TCP
如需验证配置的 ILB,请确认每个已创建对象上的
Ready条件。通过向 VIP 发送curl请求来验证流量:如需获取 VIP,请使用
kubectl get:kubectl get forwardingruleinternal -n PROJECT_NAME输出如下所示:
NAME BACKENDSERVICE CIDR READY ilb-name BACKEND_SERVICE_NAME 10.200.32.59/32 True通过向转发规则中
PORT字段指定的端口上的 VIP 发送curl请求来验证流量:curl http://FORWARDING_RULE_VIP:PORT将
FORWARDING_RULE_VIP替换为转发规则的 VIP。
Kubernetes Service
您可以在 GDC 中通过在 Kubernetes 集群中创建类型为 LoadBalancer 的 Kubernetes Service 对象来创建 ILB。此 ILB 仅以创建 Service 对象的集群中的工作负载为目标。
如需使用 Service 对象创建 ILB,请按以下步骤操作:
为
LoadBalancer类型的Service定义创建一个 YAML 文件。您必须使用networking.gke.io/load-balancer-type: internal注解将 ILB 服务设计为内部服务。以下
Service对象是 ILB 服务的示例:apiVersion: v1 kind: Service metadata: annotations: networking.gke.io/load-balancer-type: internal name: ILB_SERVICE_NAME namespace: PROJECT_NAME spec: ports: - port: 1234 protocol: TCP targetPort: 1234 selector: k8s-app: my-app type: LoadBalancer替换以下内容:
ILB_SERVICE_NAME:ILB 服务的名称。PROJECT_NAME:包含后端工作负载的项目的命名空间。
port字段用于配置您在 VIP 地址上公开的前端端口。targetPort字段用于配置您希望将后端工作负载上的流量转发到的后端端口。负载均衡器支持网络地址转换 (NAT)。前端端口和后端端口可以不同。在
Service定义的selector字段中,将 pod 或虚拟机指定为后端工作负载。选择器用于根据您指定的标签与工作负载上的标签的匹配情况,定义要将哪些工作负载作为此服务的后端工作负载。
Service只能选择您定义Service的同一项目和同一集群中的后端工作负载。如需详细了解服务选择,请参阅 https://kubernetes.io/docs/concepts/services-networking/service/。
将
Service定义文件保存在与后端工作负载相同的项目中。ILB 服务只能选择与Service定义位于同一集群中的工作负载。将
Service定义文件应用于集群:kubectl apply -f ILB_FILE将
ILB_FILE替换为 ILB 服务的Service定义文件的名称。创建 ILB 服务时,该服务会获得一个 IP 地址。您可以通过查看服务状态来获取 ILB 服务的 IP 地址:
kubectl -n PROJECT_NAME get svc ILB_SERVICE_NAME替换以下内容:
PROJECT_NAME:包含后端工作负载的项目的命名空间。ILB_SERVICE_NAME:ILB 服务的名称。
您必须获得类似于以下示例的输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ilb-service LoadBalancer 10.0.0.1 10.0.0.1 1234:31930/TCP 22hCLUSTER-IP和EXTERNAL-IP字段必须显示相同的值,即 ILB 服务的 IP 地址。现在,组织中的其他集群可以根据项目所拥有的项目网络政策访问此 IP 地址。如果您未获得输出,请确保您已成功创建 ILB 服务。
GDC 支持服务的域名系统 (DNS) 名称。不过,这些名称仅适用于同一集群中的 ILB 服务。从其他集群中,您必须使用 IP 地址来访问 ILB 服务。
创建全局 ILB
使用 gdcloud CLI 或 KRM API 创建全球 ILB。
gdcloud
使用 gcloud CLI 创建以 Pod 或虚拟机工作负载为目标的 ILB。
此 ILB 以项目中与 Backend 对象中定义的标签匹配的所有工作负载为目标。Backend 自定义资源的范围必须限定为某个地区。
如需使用 gdcloud CLI 创建 ILB,请按照以下步骤操作:
创建
Backend资源以定义 ILB 的端点:gdcloud compute backends create BACKEND_NAME \ --labels=LABELS \ --project=PROJECT_NAME \ --cluster=CLUSTER_NAME \ --zone=ZONE替换以下内容:
BACKEND_NAME:您为后端资源选择的名称,例如my-backend。LABELS:一种选择器,用于定义要为此后端资源使用哪些 Pod 与虚拟机之间的端点。例如app=web。PROJECT_NAME:您的项目的名称。CLUSTER_NAME:将所定义选择器的范围限制到的集群。如果未指定此字段,则会选择具有指定标签的所有端点。此字段是可选字段。ZONE:要用于此调用的可用区。如需为所有需要可用区标志的命令预设该标志,请运行:gdcloud config set core/zone ZONE。只有在多区域环境中,区域标志才可用。此字段是可选字段。
如果此 ILB 适用于 Pod 工作负载,请跳过此步骤。如果您要为虚拟机工作负载配置 ILB,请为 ILB 定义健康检查:
gdcloud compute health-checks create tcp HEALTH_CHECK_NAME \ --check-interval=CHECK_INTERVAL \ --healthy-threshold=HEALTHY_THRESHOLD \ --timeout=TIMEOUT \ --unhealthy-threshold=UNHEALTHY_THRESHOLD \ --port=PORT \ --global替换以下内容:
HEALTH_CHECK_NAME:您为健康检查资源选择的名称,例如my-health-check。CHECK_INTERVAL:从一次探测开始到下一次探测开始之间的时间量(以秒为单位)。默认值为5。此字段是可选字段。HEALTHY_THRESHOLD:在声明失败之前等待的时间。默认值为5。此字段是可选字段。TIMEOUT:在声明失败之前等待的时间量(以秒为单位)。默认值为5。此字段是可选字段。UNHEALTHY_THRESHOLD:要将端点视为运行状况不佳所必须失败的连续探测次数。默认值为2。此字段是可选字段。PORT:执行健康检查的端口。默认值为80。此字段是可选字段。
创建
BackendService资源,并将之前创建的Backend资源添加到其中:gdcloud compute backend-services create BACKEND_SERVICE_NAME \ --project=PROJECT_NAME \ --target-ports=TARGET_PORTS \ --health-check=HEALTH_CHECK_NAME \ --global替换以下内容:
BACKEND_SERVICE_NAME:相应后端服务的所选名称。TARGET_PORTS:此后端服务转换的目标端口的英文逗号分隔列表,其中每个目标端口都指定了协议、转发规则中的端口和后端实例中的端口。您可以指定多个目标端口。此字段必须采用protocol:port:targetport格式,例如TCP:80:8080。此字段是可选字段。HEALTH_CHECK_NAME:健康检查资源的名称。此字段是可选字段。仅当您为虚拟机工作负载配置 ILB 时,才添加此字段。
将
BackendService资源添加到之前创建的Backend资源:gdcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --backend-zone BACKEND_ZONE \ --backend=BACKEND_NAME \ --project=PROJECT_NAME \ --global创建内部
ForwardingRule资源,用于定义服务可用的 VIP:gdcloud compute forwarding-rules create FORWARDING_RULE_INTERNAL_NAME \ --backend-service=BACKEND_SERVICE_NAME \ --cidr=CIDR \ --ip-protocol-port=PROTOCOL_PORT \ --load-balancing-scheme=INTERNAL \ --project=PROJECT_NAME \ --global替换以下内容:
FORWARDING_RULE_INTERNAL_NAME:您为转发规则选择的名称。CIDR:与此转发规则位于同一命名空间中的Subnet资源的名称。Subnet资源表示全球子网的请求和分配信息。如需详细了解Subnet资源,请参阅自定义资源示例。如果未指定,系统会自动从全局 IP 池中预留一个IPv4/32CIDR。此字段是可选字段。PROTOCOL_PORT:要在转发规则中公开的协议和端口。此字段必须采用ip-protocol=TCP:80格式。公开的端口必须与实际应用在容器内公开的端口相同。
如需验证配置的 ILB,请确认每个已创建对象上的
Ready条件。通过向 VIP 发送curl请求来验证流量:如需获取分配的 VIP,请描述转发规则:
gdcloud compute forwarding-rules describe FORWARDING_RULE_INTERNAL_NAME --global通过向转发规则中
PROTOCOL_PORT字段指定的端口上的 VIP 发送curl请求来验证流量:curl http://FORWARDING_RULE_VIP:PORT替换以下内容:
FORWARDING_RULE_VIP:转发规则的 VIP。PORT:转发规则中PROTOCOL_PORT字段的起始端口号。
API
使用 KRM API 创建以 Pod 或虚拟机工作负载为目标的 ILB。此 ILB 会以项目中与 Backend 对象中定义的标签匹配的所有工作负载为目标。如需使用 KRM API 创建可用区级 ILB,请按以下步骤操作:
创建
Backend资源以定义 ILB 的端点。为放置工作负载的每个可用区创建Backend资源:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.gdc.goog/v1 kind: Backend metadata: namespace: PROJECT_NAME name: BACKEND_NAME spec: clusterName: CLUSTER_NAME endpointsLabels: matchLabels: app: server EOF替换以下内容:
MANAGEMENT_API_SERVER:全局管理 API 服务器的 kubeconfig 路径。如需了解详情,请参阅切换到全局上下文。PROJECT_NAME:您的项目的名称。BACKEND_NAME:Backend资源的名称。CLUSTER_NAME:此字段为可选字段。此字段用于指定所定义选择器的范围所限定到的集群。此字段不适用于虚拟机工作负载。如果Backend资源未包含clusterName字段,则指定的标签会应用于项目中的所有工作负载。
您可以为每个可用区使用相同的
Backend资源,也可以为每个可用区创建具有不同标签集的Backend资源。如果此 ILB 适用于 Pod 工作负载,请跳过此步骤。如果您要为虚拟机工作负载配置 ILB,请为 ILB 定义健康检查:
apiVersion: networking.global.gdc.goog/v1 kind: HealthCheck metadata: namespace: PROJECT_NAME name: HEALTH_CHECK_NAME spec: tcpHealthCheck: port: PORT timeoutSec: TIMEOUT checkIntervalSec: CHECK_INTERVAL healthyThreshold: HEALTHY_THRESHOLD unhealthyThreshold: UNHEALTHY_THRESHOLD替换以下内容:
HEALTH_CHECK_NAME:您为健康检查资源选择的名称,例如my-health-check。PORT:执行健康检查的端口。默认值为80。TIMEOUT:在声明失败之前等待的时间量(以秒为单位)。默认值为5。CHECK_INTERVAL:从一次探测开始到下一次探测开始之间的时间量(以秒为单位)。默认值为5。HEALTHY_THRESHOLD:要将端点视为运行状况良好必须通过的连续探测次数。默认值为2。UNHEALTHY_THRESHOLD:要将端点视为运行状况不佳所必须失败的连续探测次数。默认值为2。
由于这是全球 ILB,因此请在全局 API 中创建健康检查。
使用之前创建的
Backend资源创建一个BackendService对象。如果您要为虚拟机工作负载配置 ILB,请添加HealthCheck资源。kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: BackendService metadata: namespace: PROJECT_NAME name: BACKEND_SERVICE_NAME spec: backendRefs: - name: BACKEND_NAME zone: ZONE healthCheckName: HEALTH_CHECK_NAME targetPorts: - port: PORT protocol: PROTOCOL targetPort: TARGET_PORT EOF替换以下内容:
BACKEND_SERVICE_NAME:为BackendService资源选择的名称。HEALTH_CHECK_NAME:您之前创建的HealthCheck资源的名称。如果您要为 Pod 工作负载配置 ILB,请勿添加此字段。ZONE:创建Backend资源的可用区。您可以在backendRefs字段中指定多个后端。例如:- name: my-be zone: Zone-A - name: my-be zone: Zone-BtargetPorts字段为可选字段。此资源列出了BackendService资源转换的端口。如果您使用的是此对象,请为以下各项提供值:PORT:服务公开的端口。PROTOCOL:流量必须匹配的第 4 层协议。仅支持 TCP 和 UDP。TARGET_PORT:PORT值转换到的端口,例如8080。TARGET_PORT的值在给定对象中不能重复。targetPorts的示例可能如下所示:targetPorts: - port: 80 protocol: TCP targetPort: 8080
创建内部
ForwardingRule资源,用于定义服务可用的 VIP。kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleInternal metadata: namespace: PROJECT_NAME Name: FORWARDING_RULE_INTERNAL_NAME spec: cidrRef: CIDR ports: - port: PORT Protocol: PROTOCOL backendServiceRef: name: BACKEND_SERVICE_NAME EOF替换以下内容:
FORWARDING_RULE_INTERNAL_NAME:为ForwardingRuleInternal资源选择的名称。CIDR:与此转发规则位于同一命名空间中的Subnet资源的名称。Subnet资源表示全球子网的请求和分配信息。如需详细了解Subnet资源,请参阅自定义资源示例。如果未指定,系统会自动从全局 IP 池中预留一个IPv4/32CIDR。此字段是可选字段。PORT:使用ports字段指定一个 L4 端口数组,数据包将转发到使用此转发规则配置的后端。必须至少指定一个端口。使用port字段指定端口号。公开的端口必须与实际应用在容器内公开的端口相同。PROTOCOL:用于转发规则的协议,例如TCP。ports数组中的条目必须如下所示:ports: - port: 80 protocol: TCP
如需验证配置的 ILB,请确认每个已创建对象上的
Ready条件。通过向 VIP 发送curl请求来验证流量:如需获取 VIP,请使用
kubectl get:kubectl get forwardingruleinternal -n PROJECT_NAME输出如下所示:
NAME BACKENDSERVICE CIDR READY ilb-name BACKEND_SERVICE_NAME 10.200.32.59/32 True通过向转发规则的
PORT字段中指定的端口上的 VIP 发出curl请求来测试流量:curl http://FORWARDING_RULE_VIP:PORT将
FORWARDING_RULE_VIP替换为转发规则的 VIP。