热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么GoogleCloud在使用ClusterIP时会出现错误

如何解决《为什么GoogleCloud在使用ClusterIP时会出现错误》经验,为你挑选了1个好方法。

在我的gcloud控制台中,它显示了我定义的入口的以下错误:

同步时出错:评估入口规范时出错:服务"monitoring/kube-prometheus"是"ClusterIP"类型,预期"NodePort"或"LoadBalancer"

我使用traefik作为反向代理(而不是nginx),因此我使用ClusterIP定义入口.据我所知,该过程所有流量都通过traefik服务代理(其中定义了Loadbalancer入口),因此我的所有其他入口应该实际上有一个ClusterIP而不是NodePort或Loadbalancer?

题:

那么为什么Google Cloud警告我它期望NodePort或LoadBalancer?

在此输入图像描述



1> aayore..:

我不知道为什么会发生此错误,因为(在我看来)这是一个有效的配置。但是要清除错误,您可以将服务切换到命名的NodePort。然后将您的入口切换为使用端口名而不是端口号。例如:

服务:

apiVersion: v1
kind: Service
metadata:
  name: testapp
spec:
  ports:
  - name: testapp-http # ADD THIS
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: testapp
  type: NodePort

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: testapp
spec:
  rules:
  - host: hostname.goes.here
    http:
      paths:
      - backend:
          serviceName: testapp
          # USE THE PORT NAME FROM THE SERVICE INSTEAD OF THE PORT NUMBER
          servicePort: testapp-http
        path: /

更新:

这是我从Google收到的说明。

由于默认情况下服务是ClusterIP [1],因此可以从群集内部访问这种类型的服务。使用kube-proxy时,可以从外部访问它,而不意味着直接通过ingress访问。

作为建议,我个人认为本文[2]有助于理解这些类型的服务之间的区别。

[1] https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

[2] https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0


旁注:我正在使用nginx入口控制器。我遇到了一个问题,那就是它正在运行GCP入口控制器,并且东西突然消失了。您可以为GKE禁用HttpLoadBalancing插件,或确保指定`kubernetes.io / ingress.class`批注。https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/#important
实际上,公众不应直接访问此服务。它只能通过代理使用(在使用ClusterIP时就是这样)。使用NodePort,可以从不需要的公众那里直接访问它。我有误会吗?
推荐阅读
author-avatar
瑶2012瑶_881
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有