在没有负载平衡器的情况下暴露容器

时间:2017-08-03 16:15:35

标签: docker kubernetes google-kubernetes-engine

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以选择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地址,您可以使用相同的方法进行测试

答案 1 :(得分:1)

https://github.com/kubernetes/ingress/tree/master/controllers/nginx找到的NGINX入口控制器应满足您的成本节约要求。我不会考虑这个"滚动自己的"因为它住在GLBC入口控制器旁边。

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