首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes on AWS with kube-up.sh no logs

Kubernetes on AWS with kube-up.sh no logs
EN

Stack Overflow用户
提问于 2016-09-04 18:09:51
回答 1查看 171关注 0票数 1

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

/var/logs/containers中,我看到一个指向节点上运行的每个pods的日志文件的符号链接,例如:

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

是指向的符号链接

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

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

我猜这只是因为fluentd-elasticsearch容器中没有绑定挂载/mnt/ephemeral。我在kubernetes中还不够高级,不知道在哪里修复它,而且可能是一个bug,因为我使用标准过程来设置我的集群。

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

代码语言:javascript
复制
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中的错误?

EN

回答 1

Stack Overflow用户

发布于 2016-09-10 16:46:13

我使用集群插件来安装rackspace,而不是aws。但基本上,您需要查找kubernetes部署文件。在rackspace的情况下,你需要一个守护进程集,而不是一个复制控制器,我打赌AWS的东西也是以同样的方式构建的。

您需要在部署yaml文件中添加:

代码语言:javascript
复制
containers:
        ...
        volumeMounts:
        - name: mntephemeraldockercontainers
          mountPath: /mnt/ephemeral/docker/containers
          readOnly: true
        ...
        volumes:
        - name: mntephemeraldockercontainers
          hostPath:
              path: /mnt/ephemeral/docker/containers

为什么?pod内的Fluentd读取路径/var/log/containers/*,这是一个符号链接,指向容器内的"deak end“,因为/mnt/ephemeral/docker/containers没有挂载在那里。它只存在于主机上。因此,挂载它将使fluentd能够读取该文件。

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

rgds,j

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39315798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档