在Kubernetes(K8S)中,管理容器的日志是非常重要的,可以帮助我们追踪应用程序的运行状态以及排查问题。本文将介绍如何在K8S中对容器日志进行管理,包括收集、查看和存储。

### 整体流程
首先,我们需要理清楚整个流程,可以用下表展示:

| 步骤 | 操作 |
| ----- | ----- |
| 步骤一 | 在K8S集群中创建一个DaemonSet,用于收集容器日志 |
| 步骤二 | 在K8S中查看容器的日志 |
| 步骤三 | 将日志存储到集中存储中 |

### 步骤一:创建一个DaemonSet

在K8S集群中创建一个DaemonSet,用于收集容器日志。

首先,创建一个名为`fluentd-daemonset.yml`的YAML文件,并在其中定义DaemonSet的配置:

```yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd
namespace: kube-system
spec:
selector:
matchLabels:
app: fluentd
template:
metadata:
labels:
app: fluentd
spec:
containers:
- name: fluentd
image: fluent/fluentd
volumeMounts:
- name: varlog
mountPath: /var/log
volumes:
- name: varlog
hostPath:
path: /var/log
```

接着,使用kubectl命令将该DaemonSet配置部署到K8S集群中:

```bash
kubectl apply -f fluentd-daemonset.yml
```

### 步骤二:查看容器日志

在K8S中查看容器的日志。

使用下面的命令可以查看DaemonSet的日志:

```bash
kubectl logs -l app=fluentd
```

### 步骤三:存储日志

将日志存储到集中存储中,这里我们以Elasticsearch为例。

首先,创建一个名为`fluentd-elasticsearch.yml`的YAML文件,配置Fluentd将日志发送至Elasticsearch:

```yaml

@type elasticsearch
hosts elasticsearch-logging:9200
logstash_format true
logstash_prefix kubernetes
include_tag_key true
tag_key @log_name
flush_interval 5s

```

然后,使用kubectl命令将该配置文件应用到K8S集群中:

```bash
kubectl apply -f fluentd-elasticsearch.yml
```

这样,就可以将容器的日志存储到Elasticsearch中了。

### 总结

通过以上步骤,我们实现了在K8S中管理容器日志的方法,包括创建DaemonSet收集日志、查看容器日志以及将日志存储到集中存储中。希望这篇文章对你理解“日志k8s使用方法”有所帮助!