GKE Ingress 无法连接到健康服务

GKE Ingress 无法连接到健康服务

我一直在关注这里的教程:https://medium.com/@nithinmallya4/deploying-a-rails-application-to-google-container-engine-with-kubernetes-b08b2de353fc

使用其代码库:https://github.com/nmallya/gkedemoapp

您可以在此处的“首次部署”注释之间看到此部署是如何组合在一起的: https://github.com/nmallya/gkedemoapp/blob/master/gcloud_deployment.sh

我已经创建了 SSL 证书,Web 服务已启动且运行正常,但我无法按说明创建入口。入口的状态为“所有后端服务均处于不健康状态”。

入口的 YAML 如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gke-ingress 
  annotations:
    kubernetes.io/ingress.class: "gce"
    # kubernetes.io/ingress.allow-http: "false"
    # ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
  # This assumes tls-secret exists.
  - secretName: gkecert
  backend:
    serviceName: web
    servicePort: 443

我想我需要提供更多信息,但我不确定下一步该在哪里进行故障排除。

答案1

事实证明我的服务状态不佳。“READY”并不意味着它们在根路径 (/) 上响应 200。我曾经kubectl get pods列出我的 pod,然后检查日志。

NAME                            READY     STATUS    RESTARTS   AGE
cable-76bfb45bb-rkz8f           2/2       Running   0          24m
rails-67d569746d-54hs8          2/2       Running   0          24m
elasticsearch-0                 1/1       Running   0          16m
redis-master-945b795f6-ldg5x    1/1       Running   0          14h
sidekiq-597c876bc4-zg24k        2/2       Running   0          24m

kubectl logs rails-67d569746d-54hs8 rails然后我可以使用第二个rails是 pod 内容器的名称来检查特定日志。您应该在那里看到健康检查的日志,它应该会指出哪里出了问题。

如果您只看到服务器启动而没有健康检查日志,则很可能是您的 pod 无法访问。请检查您的服务及其上的端口。只要它们可访问且在根路径上响应 200(而不是重定向),健康检查就应该通过,并且入口应该允许连接。

相关内容