所以我正在使用Kubernetes进行辅助项目,这很棒.对于像我所参与的项目这样的小型项目,运行成本较低(3-5个实例的小型集群基本上可以满足我每月在GCP上花费约30美元所需要的一切).
我苦苦挣扎的唯一领域是尝试使用kubernetes Ingress资源映射到集群并扇出到我的微服务(它们是小型的Go或Node后端).我有用于入口的配置设置,可以映射到不同的服务,那里没有问题.
我了解您在创建入口资源时确实可以很轻松地让GCP启动LoadBalancer.很好,但也代表着每月20美元的价格,这增加了该项目的成本.一旦/如果这件事引起了一定的关注,可以忽略不计,但是现在并且为了更好地了解Kubernetes,我想执行以下操作:
>从GCP获取静态IP,
>与入口资源一起使用
>将负载均衡器托管在同一集群中(使用nginx负载均衡器)
>避免为外部负载均衡器付费
有没有办法甚至可以使用Kubernetes和入口资源来完成呢?
谢谢!
---
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来进行代理传递,但变得困难.这就是为什么建议与您的云提供商一起使用负载平衡器的原因:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。