在没有负载均衡器的情况下公开容器

Exposing containers without a load balancer

我打算将一个小型测试应用程序部署到 GCE。我读过的每份指南似乎都指向使用 LoadBalancer 服务将 pod 公开到互联网。不幸的是,这带来了很高的相关成本,我希望能够在不创建负载均衡器(或使用 HAProxy / nginx 来滚动我们自己的负载均衡器)的情况下公开容器。

可以吗?如果是这样,我需要采取哪些步骤以及可能的其他相关费用?

谢谢!

您可以通过选择 NodePort 作为服务类型来实现。

apiVersion: v1
kind: Service
metadata: 
  name: myapp-servoce
  labels: 
    name: myapp
    context: mycontext
spec: 
  type: NodePort
  ports:
    # the port that this service should serve on
    - port: 8080
  # label keys and values that must match in order to receive traffic for this service
  selector: 
    name: myapp
    context: mycontext

这将在集群的每个节点的端口 8080 上公开该服务。现在您的所有节点都将具有外部可访问的 IP 地址,您可以使用相同的 IP 地址进行测试

https://github.com/kubernetes/ingress/tree/master/controllers/nginx 找到的 NGINX 入口控制器应该可以满足您的成本节约要求。我不会考虑这个 "rolling your own" 因为它位于 GLBC 入口控制器旁边。

应该有足够的文档来满足您的安装要求,如果没有,请在 https://github.com/kubernetes/ingress

上提出问题