由于健康检查失败,我无法进入GKE工作。我已经尝试了我能想到的所有调试步骤,包括:
Health z
检查正在传递Stackdrigs日志...我很乐意获得有关如何调试或修复的任何建议。详情如下!
我在GKE上设置了一个类型为LoadBalancer
的服务。通过外部IP效果很好:
apiVersion: v1
kind: Service
metadata:
name: echoserver
namespace: es
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
type: LoadBalancer
selector:
app: echoserver
然后,我尝试在同一服务上设置入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echoserver-ingress
namespace: es
annotations:
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: "echoserver-global-ip"
spec:
backend:
serviceName: echoserver
servicePort: 80
入口已创建,但它认为后端节点不健康:
$ kubectl --namespace es describe ingress echoserver-ingress | grep backends
backends: {"k8s-be-31102--<snipped>":"UNHEALTHY"}
在GKE web控制台中检查入口后端的状态,我看到了同样的情况:
运行状况检查详细信息按预期显示:
... 我可以在群集中的pod内成功调用该服务:
# curl -vvv echoserver 2>&1 | grep "< HTTP"
< HTTP/1.0 200 OK
# curl -vvv echoserver/healthz 2>&1 | grep "< HTTP"
< HTTP/1.0 200 OK
我可以通过NodePort对服务进行寻址:
# curl -vvv 10.0.1.1:31102 2>&1 | grep "< HTTP"
< HTTP/1.0 200 OK
(这是不言而喻的,因为我在步骤1中设置的负载平衡器服务生成了一个工作正常的网站。)
我还看到Health z
检查在StackDrive日志中传递:
关于配额,我检查发现我只使用了30个后端服务中的3个:
$ gcloud compute project-info describe | grep -A 1 -B 1 BACKEND_SERVICES
- limit: 30.0
metric: BACKEND_SERVICES
usage: 3.0
我有这个问题,最终遇到了https://stackoverflow.com/a/50645953/9276,这让我查看了防火墙设置。果不其然,我添加的最后几个节点端口服务没有在防火墙规则中启用,因此来自指向它们的入口的健康检查都失败了。手动将新主机端口添加到防火墙规则为我解决了此问题。
但是,与链接的答案不同,我没有正在使用的无效证书。我猜还有其他错误或奇怪的状态会导致这种行为,但我还没有找到规则停止自动管理的原因。
可能无关,我在我们的qa环境中没有这个问题,只是生产,所以可能有GCP项目级别的设置在起作用。
您已将超时值配置为1秒。也许将其增加到5秒会解决问题。
几周前也有类似的问题。对我来说,修复它的方法是在服务描述中添加一个NodePort,以便Google Cloud Loadbalancer可以探测这个NodePort。对我有用的配置:
apiVersion: v1
kind: Service
metadata:
name: some-service
spec:
selector:
name: some-app
type: NodePort
ports:
- port: 80
targetPort: 8080
nodePort: 32000
protocol: TCP
入口可能需要一段时间才能发现这一点。您可以重新创建入口以加快速度。
我目前正在试验java awt机器人,现在我想尝试在我的游戏窗口中按下一些东西。 为了蒸汽。exe时,我设置了以下属性:“与Windows 7的兼容性”、“始终以管理员身份运行”。 然后,我用这个启动了游戏“反击:全球进攻”。bat文件: 游戏启动了,现在我想用下面的代码点击游戏中的一些东西: 鼠标会转到正确的位置,但当它应该点击某个东西时,游戏不会做出反应或识别它。 然而,如果我不把蒸汽。exe
在我开始之前,我想提一下,我正在使用GKE的免费试用版。我有一个在GKE集群中运行的简单服务器。我有一个用于公开服务器的服务。我正在尝试配置入口控制器并将其连接到此服务。 如果我的服务是LoadBalancer、NodePort类型,那么一切都会完美工作。但是,如果我的服务是ClusterIP类型,则会出现以下错误 然后,GKE停止尝试为入口配置IP。为什么我不能配置集群IP类型的服务,是否有解决
我了解kubernetes服务,因为LoadBalancer服务是NodePort和ClusterIP的扩展,后者已经是POD的负载平衡器层。当我们使用NodePort或CluserIP和ingress时,我们已经能够使用负载平衡器(内部)在服务中通过域访问应用程序。那么,为什么我们还有另一个选择是LoadBalancer服务(外部云提供商)?
库伯内特斯同时拥有入口(在服务前面)和类型为: LoadBalancer的服务。它们似乎做着相同的事情:允许公共流量进入与服务选择器匹配的pod。两者的优点和缺点是什么?在什么情况下我会选择一个而不是另一个?
笔记: 必须安装Java。获取JRE(http://www.java.com)或者JDK 从环境变量JAVA_HOME(C:\Program Files\Java\jdk1.8.0_251)...13:07:44.382[main]ERRORegistry.java:35ServiceDiscoveryIorg.kie.api.KieService: 131-加载失败,因为已经存在一个服务ervi
我尝试为一个简单的spring引导控制器创建第一个测试,但得到的是。在浏览器中,代码是工作的,但测试失败。我的应用程序使用spring-安全。请帮助我解决问题,并理解我的错误。谢谢你。 这是控制器: 这是个考验。 这是结果日志: mockHttpServletRequest:HTTP方法=GET请求URI=/get_all_items参数={}Headers={accept=[text/html]