node.js-在没有GCP负载均衡器的情况下创建kubernetes nginx入口

前端之家收集整理的这篇文章主要介绍了node.js-在没有GCP负载均衡器的情况下创建kubernetes nginx入口 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以我正在使用Kubernetes进行辅助项目,这很棒.对于像我所参与的项目这样的小型项目,运行成本较低(3-5个实例的小型集群基本上可以满足我每月在GCP上花费约30美元所需要的一切).

我苦苦挣扎的唯一领域是尝试使用kubernetes Ingress资源映射到集群并扇出到我的微服务(它们是小型的Go或Node后端).我有用于入口的配置设置,可以映射到不同的服务,那里没有问题.

我了解您在创建入口资源时确实可以很轻松地让GCP启动LoadBalancer.很好,但也代表着每月20美元的价格,这增加了该项目的成本.一旦/如果这件事引起了一定的关注,可以忽略不计,但是现在并且为了更好地了解Kubernetes,我想执行以下操作:

>从GCP获取静态IP,
>与入口资源一起使用
>将负载均衡器托管在同一集群中(使用Nginx负载均衡器)
>避免为外部负载均衡器付费

有没有办法甚至可以使用Kubernetes和入口资源来完成呢?

谢谢!

最佳答案
是的,这是可能的.部署您的入口控制器,并使用NodePort服务进行部署.例:

---
apiVersion: v1
kind: Service
Metadata:
  name: Nginx-ingress-controller
  namespace: kube-system
  labels:
    k8s-app: Nginx-ingress-controller
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 32080
    protocol: TCP
    name: http
  - port: 443
    targetPort: 443
    nodePort: 32443
    protocol: TCP
    name: https
  selector:
    k8s-app: Nginx-ingress-controller

现在,使用DNS条目创建一个入口:

apiVersion: extensions/v1beta1
kind: Ingress
Metadata:
  name: my-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: my-app-service #obvIoUsly point this to a valid service + port
          servicePort: 80

现在,假设您的静态IP已附加到任何运行kube-proxy的kubernetes节点,请更新DNS以指向该静态IP,您应该可以访问myapp.example.com:32080,并且入口会将您映射回您的应用程式.

其他一些事项:

如果要使用低于32080的端口,请记住如果使用的是CNI网络,则为you’ll have trouble with hostport.建议让负载均衡器监听端口80,我想您可能已经设置了Nginx来进行代理传递,但变得困难.这就是为什么建议与您的云提供商一起使用负载平衡器的原因:)

原文链接:https://www.f2er.com/nginx/532333.html

猜你在找的Nginx相关文章