Kubernetes + Minikube - 如何查看所有标准输出?

use*_*od2 5 ruby kubernetes minikube

我正在使用 Minikube 在 Kubernetes 上运行 Ruby 应用程序。

但是,每当我查看日志时,我都看不到在本地运行应用程序时会在终端中看到的输出。

我想是因为它只显示 stderr?

如何查看所有类型的控制台日志(例如 fromputsraise)?

环顾四周,这是否与它处于分离模式有关 - 请参阅 Python 相关问题:未显示 Kubernetes Pod 中的日志

谢谢。

=

根据要求 - 这是 deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: sample
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: sample
    spec:
      containers:
        - name: sample
          image: someregistry
          imagePullPolicy: Always
          command: ["/bin/sh","-c"]
          args: ["bundle exec rake sample:default --trace"]
          envFrom:
          - configMapRef:
              name: sample
          - secretRef:
              name: sample
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: regsecret
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 5

如本文所示,kubectl logs pod apod应该向您展示部署在 minikube 中的 pod 的 stdout 和 stderr。

默认情况下,在 Kubernetes 中,Docker 被配置为将容器的 stdout 和 stderr 写入主机系统上 /var/log/containers 下的文件

Kubernetes 补充说

有两种类型的系统组件:在容器中运行的组件和不在容器中运行的组件。
例如:

  • Kubernetes 调度程序和 kube-proxy 在容器中运行。
  • kubelet 和容器运行时(例如 Docker)不在容器中运行。

和:

  • 在带有 systemd 的机器上,kubelet 和容器运行时会写入 journald。
  • 如果 systemd 不存在,它们会写入.log目录中的/var/log文件。

与容器日志类似,/var/log 目录中的系统组件日志应该轮换。
在由 kube-up.sh 脚本启动的 Kubernetes 集群中,这些日志被配置为每天或在大小超过 100MB 时由 logrotate 工具轮换。

https://d33wubrfki0l68.cloudfront.net/59b1aae2adcfe4f06270b99a2789012ed64bec1f/4d0ad/images/docs/user-guide/logging/logging-node-level.png