使用kube-up.sh的AWS上的Kubernetes没有日志

时间:2016-09-04 10:09:51

标签: amazon-web-services logging kubernetes fluentd

我正在使用kube-up.sh(v1.3.4)以AWS作为提供者来设置群集。一切都很好,我唯一的问题是我没有看到我的日志(在Kibana和Elsaticsearch)。如果我将docker附加到fluentd-elasticsearch容器中,这就是我所拥有的:

/var/logs/containers中的

我看到节点上运行的每个pod的日志文件的符号链接,例如:

elasticsearch-logging-v1-9lwly_kube-system_POD-3bb54515d4e0e479c39cb7c35aa6675fdfe2970233e095420e2116c2f633ab50.log

的符号链接

/mnt/ephemeral/docker/containers/3bb54515d4e0e479c39cb7c35aa6675fdfe2970233e095420e2116c2f633ab50/3bb54515d4e0e479c39cb7c35aa6675fdfe2970233e095420e2116c2f633ab50-json.log

但是,/mnt容器中fluentd-elasticsearch为空。所以所有符号链接都是错误的。

我想这只是/mnt/ephemeral未绑定挂载在fluentd-elasticsearch容器中。我在kubernetes中不够先进,无法知道在哪里修复它,并且可能是一个错误,因为我使用标准程序来设置我的集群。

如果我在pod上运行kubectl describe,我会得到:

Name:       fluentd-elasticsearch-ip-172-20-0-168.eu-west-1.compute.internal
Namespace:  kube-system
Node:       ip-172-20-0-168.eu-west-1.compute.internal/172.20.0.168
Start Time: Fri, 02 Sep 2016 17:15:03 +0200
Labels:     k8s-app=fluentd-logging
Status:     Running
IP:     10.244.3.2
Controllers:    <none>
Containers:
  fluentd-elasticsearch:
    Container ID:   docker://d376a900ef770e65dfbf75bf5bc1c711c650868bb4e4ea74002818852a81aa04
    Image:      gcr.io/google_containers/fluentd-elasticsearch:1.17
    Image ID:       docker://sha256:e74f564e4c316e0f6baebf838015f516e26d7501c96ead5f115523ff80c614fd
    Port:       
    Limits:
      memory:   200Mi
    Requests:
      cpu:          100m
      memory:           200Mi
    State:          Running
      Started:          Fri, 02 Sep 2016 17:15:36 +0200
    Ready:          True
    Restart Count:      0
    Environment Variables:  <none>
Conditions:
  Type      Status
  Initialized   True 
  Ready     True 
  PodScheduled  True 
Volumes:
  varlog:
    Type:   HostPath (bare host directory volume)
    Path:   /var/log
  varlibdockercontainers:
    Type:   HostPath (bare host directory volume)
    Path:   /var/lib/docker/containers
QoS Tier:   Burstable
No events.

所以很明显卷是错误的(/var/lib/docker/containers而不是/mnt/ephemeral/docker/containers

我在哪里/如何解决这个问题?这应该报告为k8s repos中的错误吗?

1 个答案:

答案 0 :(得分:0)

我正在使用群集插件进行机架设置,而不是aws。但是,您需要查找kubernetes部署文件。在rackspace的情况下你需要一个守护进程集,而不是复制控制器,我敢打赌AWS的东西是以相同的方式构建的。

您需要添加到部署yaml文件:

<link rel="stylesheet" href='index-02.css'
      media="screen and (min-width: 481px) and (max-width:959px)">

为什么呢?在pod中流畅地读取路径/ var / log / containers / *这是一个指向&#34; deak end&#34;的符号链接。在容器内,因为/ mnt / ephemeral / docker / containers没有安装在那里。它只存在于主机上。因此,安装它将使流畅的人能够读取文件。

注意:您可能还需要使kubernetes元数据插件正常工作。

RGDS, Ĵ