在我的gcloud控制台中,我定义的入口显示以下错误:
同步期间出错:评估入口规范时出错:服务“monitoring/kube prometheus”类型为“ClusterIP”,应为“NodePort”或“LoadBalancer”
我使用traefik作为反向代理(而不是nginx),因此我使用集群IP定义入口。据我所知,所有流量都是通过traefik服务(定义了负载均衡器入口)代理的,因此我的所有其他入口实际上应该有一个集群IP而不是NodePort或负载均衡器?
问题:
那么,为什么谷歌云警告我它需要一个节点端口或负载平衡器呢?
对于我们来说,解决方案是设置注释<代码>云。谷歌。com/neg:{“入口”:true}对要公开的服务。
通常,这会在以下条件下自动设置为所有服务:
当我们开始引入网络策略时,我们暴露的服务停止工作。
因此,上面的示例也应该适用于ClusterIP:
apiVersion: v1
kind: Service
metadata:
name: testapp
annotations:
cloud.google.com/neg: '{"ingress": true}'
spec:
ports: ...
type: ClusterIP
谢谢@aayore。就我而言,我必须显式指定一个入口类,这样Google Cloud就不会干扰。Nginx入口似乎对ClusterIp
服务很满意。
metadata:
name: foo
annotations:
kubernetes.io/ingress.class: "nginx"
服务:
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: /
更新:
这就是我从谷歌得到的解释。
因为默认情况下服务是ClusterIP[1],这种类型的服务意味着可以从集群内部访问。当使用库贝代理时,它可以从外部访问,而不是通过入口直接访问。
作为建议,我个人认为这篇文章有助于理解这些类型服务之间的差异。
[1] https://kubernetes.io/docs/concepts/services-networking/service/#publishing-服务服务类型
[2]https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0
我正在用PHP编写一个应用程序,它将连接到我的域名的Google教室。但是,当我尝试使用Google教室API执行任何操作时,会出现以下错误: 到目前为止我的代码: 我已经在谷歌管理控制台的应用编程接口设置中为服务号启用了作用域,并在开发人员控制台中启用了应用编程接口。我哪里做错了?
我尝试过将deendpoint与云SQL和Hibernate集成。但是,每次都有错误。跟随我的测试: 1 -源文件夹中的persistence . XML:http://imgur.com/hKjf8Cs给我错误:http://imgur.com/QJe8rvq 2-资源文件夹中的persistence.xml给我错误: ServletInitializationParameters.java:5
我正在使用cloud函数部署python函数(版本=3.7,内存=1go,超时=1s)。 到目前为止,它非常有效。 但是,我注意到,默认情况下,云函数将其区域设置为。我需要我的函数在中,所以我使用
介绍如何在谷歌云平台获取在云联壹云平台需要使用的配置参数。 如何获取谷歌云服务帐号密钥信息? 纳管指定项目 打开“GCP Console中的IAM和管理-IAM页面”页面并登录。 单击顶部“选择项目”,选择需要授权的项目。 在左侧导航栏中选择“服务账号”,进入指定项目的服务账号页面。 单击 “创建服务账号” 按钮,进入创建服务账号页面。 配置服务账号名称、服务账号ID、服务账号说明等,单击 “创建
我一直在尝试在我的Android应用程序中实现GCM。但是,在遵循教程之后http://developer.android.com/google/gcm/client.html 我正在使用额外的“unregistered”进行意向类型注册,尽管我需要一些数据。在应用程序开始时,我注册没有问题,并收到发送到我的服务器的注册id。我也使用亚马逊sns。 BroadcastRecector和Intent
上面写着“Google Cloud Messaging(GCM)是一个免费服务”,但是为了使它能够运行,我需要在Google Cloud平台中创建一个项目,这需要花钱…那怎么免费呢?还是我错过了什么?