要在 Tanzu Kubernetes 集群中置备外部负载均衡器,可以创建 LoadBalancer 类型的服务。负载均衡器服务公开公用 IP 地址。来自外部负载均衡器的流量可以定向到集群 pod。

可以为作为服务提供的 Kubernetes pod 置备外部负载均衡器。例如,可以部署 Nginx 容器,并将其作为 LoadBalancer 类型的 Kubernetes 服务提供。

前提条件

过程

  1. 创建默认特权 PSP 的适当角色绑定。请参见Pod 安全策略的角色绑定示例
  2. 创建以下 nginx-lbsvc.yaml YAML 文件。
    此 YAML 文件定义了 LoadBalancer 类型的 Kubernetes 服务,并将 Nginx 容器部署为该服务的外部负载均衡器。
    kind: Service
    apiVersion: v1
    metadata:
      name: srvclb-ngnx
    spec:
      selector:
        app: hello
        tier: frontend
      ports:
      - protocol: "TCP"
        port: 80
        targetPort: 80
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: loadbalancer
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
            tier: frontend
        spec:
          containers:
          - name: nginx
            image: "nginxdemos/hello"
    
  3. 应用 YAML。
    kubectl apply -f nginx-lbsvc.yaml
  4. 验证 Nginx 服务的部署。
    kubectl get services
    srvclb-ngnx 已启动,并且具有外部 IP 地址和内部 IP 地址。
    NAME          TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    srvclb-ngnx   LoadBalancer   10.11.12.19      10.19.15.89     80:30818/TCP   18m
    
  5. 使用浏览器,输入 Nginx LoadBalancer 服务的外部 IP 地址。
    将显示消息 NGINX 横幅和负载均衡器的详细信息。