Amazon web services AWS上的Kubernetes与kube-up.sh无日志
我正在使用kube-up.sh(v1.3.4)和AWS作为提供程序来设置集群。一切都很好,我唯一的问题是我没有看到我的日志(在Kibana和Elsaticsearch中)。如果我将docker连接到fluentd elasticsearch容器中,则我拥有: 在Amazon web services AWS上的Kubernetes与kube-up.sh无日志,amazon-web-services,logging,kubernetes,fluentd,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-3bb54515d4e0e479
/var/logs/containers
中,我看到一个符号链接,指向我节点上运行的每个POD的日志文件,例如:
elasticsearch-logging-v1-9lwly_kube-system_POD-3bb54515d4e0e479c39cb7c35aa6675fdfe2970233e095420e2116c2f633ab50.log
是指向的符号链接
/mnt/ephemeral/docker/containers/3bb54515d4e0e479c39cb7c35aa6675fdfe2970233e095420e2116c2f633ab50/3BB54515D4E0E479C37C35AA6675FDFE2970233E095420E2116C2F633AB50 json.log
但是,/mnt
在我的fluentd elasticsearch
容器中是空的。所以所有的符号链接都是错误的
我想这只是因为/mnt/ephemeral
没有绑定到fluentd elasticsearch
容器中。我在kubernetes方面还不够高级,不知道在哪里解决这个问题,而且可能是一个bug,因为我使用了标准过程来设置集群
如果我在pod上运行kubectl description
,我会得到:
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.
Name:fluentd-elasticsearch-ip-172-20-0-168.eu-west-1.compute.internal
名称空间:kube系统
节点:ip-172-20-0-168.eu-west-1.compute.internal/172.20.0.168
开始时间:2016年9月2日星期五17:15:03+0200
标签:k8s app=fluentd日志
状态:正在运行
IP:10.244.3.2
控制器:
容器:
fluentd elasticsearch:
容器ID:docker://d376a900ef770e65dfbf75bf5bc1c711c650868bb4e4ea74002818852a81aa04
图片:gcr.io/google_containers/fluentd elasticsearch:1.17
图像ID:docker://sha256:e74f564e4c316e0f6baebf838015f516e26d7501c96ead5f115523ff80c614fd
端口:
限制:
内存:200Mi
请求:
中央处理器:100米
内存:200Mi
状态:正在运行
开始时间:2016年9月2日星期五17:15:36+0200
准备好了吗
重新启动计数:0
环境变量:
条件:
类型状态
初始化为True
准备好了吗
播客预定为真
卷数:
varlog:
类型:主机路径(裸主机目录卷)
路径:/var/log
varlibdockercontainers:
类型:主机路径(裸主机目录卷)
路径:/var/lib/docker/containers
QoS层:Burstable
没有事件。
因此,显然卷是错误的(/var/lib/docker/containers
而不是/mnt/ephemeral/docker/containers
)
我在哪里/如何修复此问题?是否应将其报告为k8s repos中的错误?我正在使用群集插件进行机架空间设置,而不是aws设置。但基本上,您需要查找kubernetes部署文件。在机架空间的情况下,您需要一个守护程序集,而不是复制控制器,我打赌aws的构建方式是相同的 您需要添加到部署yaml文件:
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我正在使用群集插件进行rackspace设置,而不是aws设置。但基本上,您需要查找kubernetes部署文件。在rackspace的情况下,您需要的是守护程序集,而不是复制控制器,我打赌aws的构建方式是相同的 您需要添加到部署yaml文件:
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