【问题标题】:Logs in Kubernetes Pod not showing upKubernetes Pod 中的日志未显示
【发布时间】:2017-05-14 23:28:15
【问题描述】:

我已经在 pod 中设置并运行了一个 grpc 服务。我成功地访问了服务上的一个端点,其中有一个 print() 语句,但我在日志文件中看不到任何日志。我之前在 Kubernetes 中运行(cron)作业时已经看到了这一点,并且日志仅在作业完成后出现(而不是在作业运行时出现)。有没有办法让 kubernetes 立即写入日志文件?我可以设置任何设置(集群级别或仅用于 pod)?提前感谢您的帮助!

【问题讨论】:

  • 这与您的其他问题有关吗?这听起来更像是我们的 grpc 服务没有发送到标准输出

标签: logging kubernetes


【解决方案1】:

找到根本原因。具体来说,在 Python app does not print anything when running detached in docker 找到它。解决方案是设置以下环境变量: PYTHONUNBUFFERED=0 。不是没有显示打印语句,而是正在缓冲打印语句。执行上述操作即可解决问题。

【讨论】:

  • 非常感谢!我的 C 程序也发生了同样的事情(通过 fflush(stdout); 解决,感谢 stackoverflow.com/questions/1716296/…
  • 作为旁注,您还可以使用'-u'标志启动python以获得无缓冲输出。例如。 /bin/python3 -u /path/to/script.py
  • 虽然解决方案有效,但我更喜欢1 的值,因为任何非空字符串都将启用PYTHONUNBUFFERED 选项。使用值 0 看起来您想要关闭该选项。
【解决方案2】:

这是 K8S 部署 yaml 的示例,因此您可以从上述答案中复制粘贴解决方案:

root@k8s:~/python_docker$ cat deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hpa
spec:
  selector:
    matchLabels:
      app: hpa
  template:
    metadata:
      labels:
        app: hpa
    spec:
      containers:
      - name: hpa
        image: my-hpa/py
        env:
        - name: PYTHONUNBUFFERED
          value: "0"
        resources:
          requests:
            cpu: 100m
            memory: 200Mi

【讨论】:

    【解决方案3】:

    一种可能性是容器缺乏 CPU。我们在 minikube 上本地运行时遇到了这个问题,并且在我们更大的集群中实施了资源限制。尝试提高 pod 上的 CPU 资源限制。下面是一个示例 yaml。

    如果您的 CPU 限制在 20-40m 左右,那么这可能太低而无法运行完整的烧瓶/python 应用程序。您可以尝试将其撞到接近 100m。它不会破坏你的本地机器。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: python-app
    spec:
      selector:
        matchLabels:
          app: python-app
      template:
        metadata:
          labels:
            app: python-app
        spec:
          containers:
          - name: python-app
            image: python-app
            imagePullPolicy: Never
            resources:
              requests:
                cpu: 40m
                memory: 40Mi
              limits:
                cpu: 20m
                memory: 20Mi
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2017-12-24
      • 2020-08-13
      相关资源
      最近更新 更多