运行kubectl日志可以看到一个Kubernetes容器的stderr/stdout。
我如何获得一组pod的聚合stderr/stdout,最好是由某个复制控制器创建的那些?
运行kubectl日志可以看到一个Kubernetes容器的stderr/stdout。
我如何获得一组pod的聚合stderr/stdout,最好是由某个复制控制器创建的那些?
当前回答
不确定这是否是一个新事物,但随着部署,可以这样做:
kubectl logs deployment/app1
其他回答
在本例中,当Pod中定义了多个container时,可以替换<namespace>和<app-name>来获取日志。
kubectl -n <namespace> logs -f deployment/<app-name> \
--all-containers=true --since=10m
对我有用:
Kubectl logs -n namespace -l app=label -c container
不确定这是否是一个新事物,但随着部署,可以这样做:
kubectl logs deployment/app1
@johan的回答让我想到了一句话:
for i in $(kubectl get pods -n default |cut -d" " -f1); do kubectl logs $i -n default; done
一种选择是通过Fluentd/ElasticSearch设置集群日志记录,如https://kubernetes.io/docs/user-guide/logging/elasticsearch/所述。一旦日志在ES中,就很容易在Kibana中应用过滤器来查看特定容器中的日志。