Kubernetes/Docker的HTTP(S)负载均衡

3
我正在Google Cloud Kubernetes基础设施中通过NGINX运行一个自签名证书的RESTful服务。Kubernetes服务加载器公开了443端口并将流量路由到这些容器。除了要求内部客户端忽略自签名证书警告之外,一切都按预期正常工作!现在是时候转向CA证书了,因此我所看到的唯一选择是使用https加载器,但我无法弄清楚如何将流量重新路由到服务加载器或直接到pod作为服务加载器(http加载器)。任何帮助都将不胜感激。
2个回答

3
  1. Update Firewall Rules for:

    IP: 130.211.0.0/22
    tcp:30000-32767
    
  2. Create NodePort type service:

    apiVersion: v1
    kind: Service
    metadata:
      name: yourservicenodeport
      labels:
        name: your-service-node-port
    spec:
      type: NodePort
      ports:
        - port: 80
          nodePort: 30001
      selector:
        name: yourpods
    
  3. Create health check.

    For the nodeport which is in this case: 30001

  4. Create an ingress service:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: youTheking-ingress-service
    spec:
      backend:
        serviceName: yourservice
        servicePort: 80
    
  5. Wait for few minutes, be patient.

  6. Change the health check on http load balancer.

    a. Go to the Load Balancing on Networking Tab.

    b. Click Advance menu.

    c. Go Backend Services and Edit.

    d. Update health check option and use the one created for nodeport service.

  7. Repeat step 5 for instance group to be recognized health.

  8. SSL is needed, go back to the load balancer, edit, click Frontend Configuration, then add https with cert.

  9. You are ready to roll.


防火墙规则和默认健康检查已由GCP创建到nodePort(在此情况下为30001),路径/,无需进行操作。 - Michal Foksa
你的负载均衡器有这个问题吗?https://dev59.com/45zha4cB1Zd3GeqPJ8Ah - Michal Foksa

0

我不确定我完全理解你的问题,但我会尝试回答它。

使用由受信任的CA签名的证书公开您的服务有两个选项:

  1. 继续使用真实证书进行当前操作。您可能需要将证书放入一个密钥中,并将nginx配置指向该密钥以加载证书。

  2. 使用Google L7负载均衡器替换nginx。您可以将证书上传到Google,配置L7负载均衡器以终止HTTPS并将流量转发到后端。


我尝试了使用L7负载均衡器的第二个选项。我无法弄清楚的是,在后端服务中,我可以将机器包含在容器集群中,但我无法指定应该在该集群上接收流量的Pod。我们可以通过Kubernetes配置负载均衡器服务,我可以指定Pod名称的标签,以便这些容器获得流量。 - East2West
要将L7负载均衡器与Kubernetes服务连接,您应该将服务公开为“NodePort”服务,然后配置L7服务以在分配给服务的端口上跨越集群中的所有机器传播流量。 - Robert Bailey
有没有关于如何使用NodePort设置L7的文档/示例? - East2West
请查看以下链接:https://dev59.com/45Dea4cB1Zd3GeqPivKz 和 https://groups.google.com/d/msg/google-containers/RyFnp3GGMmQ/z6mdHpLgCwAJ。 - Robert Bailey
1
看起来步骤已经过时了,或者我做错了什么:( 我很难理解为什么我们在Google云端容器中没有清晰的指导来设置诸如http(s)负载均衡器这样常见的东西。 - East2West

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接