开发者社区 > 云原生 > 容器服务 > 正文

容器服务ACK的k8s的日志是存储在容器中吗?

容器服务ACK的k8s的日志是存储在容器中吗?我的集群中一个pod出现了大量的Evicted状态,好像是资源不够了。这两个日志哪样比较占用资源啊?存储在容器中的是组件的日志吧?

展开
收起
三分钟热度的鱼 2023-07-19 21:12:33 76 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在容器服务 ACK 中,Kubernetes 的日志通常是存储在容器运行时的标准输出和标准错误输出中。Kubernetes 使用容器运行时的日志记录机制来捕获容器的日志,并将其发送到 Kubernetes API 服务器。您可以使用 kubectl logs 命令从容器运行时中获取容器的日志。

    对于 Evicted 状态的 Pod,这通常是由于 Pod 被 Kubernetes 节点驱逐(Eviction)导致的。Kubernetes 节点可能会驱逐 Pod,因为 Pod 请求的资源超过了节点的可用资源,或者因为节点本身出现了故障或维护。在这种情况下,Kubernetes 会将 Pod 的状态设置为 Evicted,并尝试在其他节点上重新调度该 Pod。您可以使用 kubectl describe pod 命令来查看 Pod 的详细信息,并查看 Pod 的事件历史记录,以确定导致 Pod 被驱逐的原因。

    2023-07-29 09:03:33
    赞同 展开评论 打赏
  • 在容器服务 ACK 中,Kubernetes(k8s)的日志通常是存储在容器中。每个运行的容器都会生成自己的日志,并将其存储在容器的文件系统中。这些日志可以通过访问容器的标准输出(stdout)和标准错误(stderr)来获取。

    当一个 Pod 出现大量 Evicted 状态时,这通常意味着该 Pod 请求的资源超过了节点的可用资源限制。节点上的资源包括 CPU、内存以及其他可能的资源类型。当节点无法满足 Pod 请求的资源需求时,Kubernetes 会将该 Pod 标记为 Evicted 状态并终止它,以确保其他 Pod 能够正常运行。

    关于占用资源的比较:

    1. 存储在容器中的应用程序日志:这些日志一般由您的应用程序生成,并通过标准输出和标准错误输出到容器的文件系统。大小和资源占用情况取决于您的应用程序和日志输出频率。通常可以通过适当的日志轮转策略来控制日志文件的大小,以防止过度占用存储空间。

    2. 组件日志:Kubernetes 组件(如 kube-apiserver、kube-controller-manager、kube-scheduler 等)也会生成日志,并存储在容器中。这些组件的日志记录了集群管理和控制的相关信息。通常情况下,这些组件日志的大小和资源占用相对较小,因为它们只记录了集群管理工作的关键事件。

    如果您遇到大量 Evicted 状态的问题,建议您检查 Pod 的资源请求和限制配置。确保 Pod 的资源需求与节点的可用资源保持匹配。您可以通过调整 Pod 的资源请求和限制,或者增加节点的资源来缓解该问题。

    2023-07-28 11:57:45
    赞同 展开评论 打赏
  • 容器中应该是你程序的日志。此回答整理自钉群“服务器迁移中心用户群”

    2023-07-19 21:21:45
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
    何种数据存储才能助力容器计算 立即下载
    《容器网络文件系统CNFS》 立即下载

    相关镜像