我正在Kubernetes中为多个客户端实现一个解决方案,我想使用Prometheus监视我的集群。但是,由于这可以快速扩展,并且我想降低成本,因此我将使用Federation for Prometheus来刮擦Kubernetes的不同集群,但是我需要公开Prometheus部署。
我已经可以使用服务类型LoadBalancer来公开我的Prometheus部署,但是这种方法为我的基础结构(Digital Ocean LB)增加了额外的费用。
是否可以使用服务类型NodePort来实现此目的,将端口暴露给我的群集IP,如下所示:
XXXXXXXXXXXXXXXX.k8s.ondigitalocean.com:9090
在哪里可以使用此URL来对我的主Prometheus报废所有“从属” Prometheus实例?
我已经尝试过,但是无法到达群集端口。某种障碍。我还删除了防火墙,以确保没有任何干扰此实施,但没有任何干扰。
这是我的服务:
Name: my-nodeport-service
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"my-nodeport-service","namespace":"default"},"spec":{"ports":[{"na...
Selector: app=nginx
Type: NodePort
IP: 10.245.162.125
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 30800/TCP
Endpoints: 10.244.2.220:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Can anybody help me please?
---
This is my service:
```kubectl describe service my-nodeport-service
Name: my-nodeport-service
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"my-nodeport-service","namespace":"default"},"spec":{"ports":[{"na...
Selector: app=nginx
Type: NodePort
IP: 10.245.162.125
Port: http 80/TCP
TargetPort: 80/TCP
NodePort: http 30800/TCP
Endpoints: 10.244.2.220:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
答案 0 :(得分:0)
然后您可以将主机XXXXXXXXXXXXXXXX.k8s.ondigitalocean.com:9090设置为Nginx的负载平衡器。
尝试设置Nginx TCP负载均衡器。
注意::您将使用Nginx流,如果要使用开源Nginx而不是Nginx Plus,则可能需要使用 -with-stream < / strong>选项。
示例配置文件:
events {
worker_connections 1024;
}
stream {
upstream stream_backend {
server dhcp-180.example.com:446;
server dhcp-185.example.com:446;
server dhcp-186.example.com:446;
server dhcp-187.example.com:446;
}
server {
listen 446;
proxy_pass stream_backend;
}
运行Nginx之后,测试结果应类似于:
主机lb.example.com充当Nginx的负载平衡器。
在此示例中,Ngnix被配置为使用轮询,并且如您所见,每次新连接终止到另一个主机/容器时。
注意:容器主机名与节点主机名相同,这归因于hostNetwork。
此解决方案有一些缺点,例如:
这样,就可以将kubernetes集群设置为从/到集群外部路由的Ingress-Egress TCP连接。
有用的帖子:load-balancer-tcp。
NodePort文档:nodePort。