当前位置: 首页 > 知识库问答 >
问题:

返回空响应的Kubernetes LoadBalancer服务

黄正浩
2023-03-14
  1. 绑定到端口8080的Node.js express服务器
server.listen(8080, () => {
  logger.log({
    level: 'info',
    message: 'Listening on port ' + port
  })
})
FROM node:10-alpine

...

# Expose port
EXPOSE 8080
apiVersion: apps/v1

kind: Deployment

metadata:
  name: deployment

spec:
  selector:
    matchLabels:
      app: deployment

  replicas: 2

  template:
    metadata:
      labels:
        app: deployment

    spec:
      containers:
      - name: job-id-20
        image: redacted/redacted
        command: ["node", "backend/services.js"]

        ports:
        - name: http-port
          containerPort: 8080

      imagePullSecrets:
      - name: docker-hub-credentials

      dnsConfig:
        options:
          - name: ndots
            value: "0"
apiVersion: v1

kind: Service

metadata:
  name: service

spec:
  ports:
    - protocol: TCP
      targetPort: 8080
      port: 8080

  selector:
    app: deployment

  type: LoadBalancer
$ kubectl --kubeconfig="k8s-1-13-4-do-0-nyc1-1552761372568-kubeconfig.yaml" get service/service
NAME      TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)          AGE
service   LoadBalancer   10.245.239.60   1x4.2x9.1x8.x2   8080:30626/TCP   113s
$ curl --verbose http://1x4.2x9.1x8.x2:8080/
*   Trying 1x4.2x9.1x8.x2...
* TCP_NODELAY set
* Connected to 1x4.2x9.1x8.x2 (1x4.2x9.1x8.x2) port 8080 (#0)
> GET / HTTP/1.1
> Host: 1x4.2x9.1x8.x2:8080
> User-Agent: curl/7.54.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host 1x4.2x9.1x8.x2 left intact
curl: (52) Empty reply from server

我希望通信量通过路由到服务到部署中的一个pods/副本。我做错了什么?

共有1个答案

卢枫涟
2023-03-14

这里有一些潜在的错误来源。

第一个潜在的问题是Docker映像不能按预期工作。您可以尝试这样做:使用nginx:lates作为您的图像,并尝试这样做是否有效。如果这是工作的,Kubernetes部分工作正常,您可以做进一步的调查您的Docker图像。

您的代码段不包含任何输出某些数据的代码,就我所见。

您可以使用Docker run命令对图像进行实验,如上面的注释所示。

如果它仍然不能与Nginx图像工作,那么你必须进一步调查Kubernetes一侧。

尽管LoadBalancer是一种标准的Kubernetes服务类型,但它的实现对于不同的云提供商和内部安装是不同的。

要进行更多的调试,可以使用Kubectl port-forward命令创建到其中一个pod或服务的隧道,并在已建立的隧道上尝试curl命令。

此外,还可以使用Kubectl logs命令查看吊舱的任何日志输出。

 类似资料:
  • 我想使用GooglePlaceAPI和自动完成视图。我有开发者控制台上的android和浏览器密钥。但当我尝试这些键API时,它返回空响应。 Logcat: D/Volley:[2651]a.a:请求的HTTP响应= 我的代码: 在onpostexecute日志中: 我是新来的google地方api,请帮我找到什么是错误的。

  • 我正在尝试调用FlickR API,但由于response.body()返回null而遇到困难。 我不确定它是否与我的JSON/POJO映射相关,但我无法弄清楚当我调用Flickr时如何访问来自改版的响应。我知道我的调用已经成功完成,因为我实际上能够通过日志拦截器查看JSON。 型号: 活动 }

  • 但邮差回信说: 知道为什么或如何进一步调试它吗?Spring data-elasticsearch在做我不明白的事情吗? 我应该期待这样的事情:

  • 我得到错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密建立到SQL服务器的安全连接。错误:“SQL服务器没有返回响应。连接已关闭。” Hibernate配置: application.properties: pom.xml: SQLServerException: openssl客户端连接服务器:1

  • 我正在尝试对远程服务器进行api调用,最初,我遇到以下错误:

  • 我想在spring boot中,当响应对象对于每个响应自动为null时返回404。 我需要建议。 我不想检查控制器中的对象是否为null。