测试环境为了跟线上环境保持一致以及更好的配合CD以及bug定位所以k8s pods 的日志持久化就很有必要了.接下来是傻瓜式教程跟着输入命令就能实现minikube pods 的日志收集功能.
要注意的是,你的应用日志需要输出到 stdout 中.
1.安装 Helm (Helm 是Kubernetes 的首选应用程序包管理器)
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh # 安装成功后提示 helm installed into /usr/local/bin/helm
2.(默认配置)安装 loki (Loki 是Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 添加 repo 并更新
helm repo add loki https://grafana.github.io/loki/charts
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# 注意这里后面是 -stack 的是默认打包好在一起的,没stack的是默认只有 loki 的,自定义安装请参考官网给出的命令
helm upgrade --install loki --namespace=<YOUR-NAMESPACE> grafana/loki-stack
# 安装 grafana
helm install loki-grafana --namespace=<YOUR-NAMESPACE> grafana/grafana
# 查看 grafana 的密码
kubectl get secret --namespace <YOUR-NAMESPACE> loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
# 临时暴露 端口 进行访问测试
kubectl port-forward --namespace <YOUR-NAMESPACE> service/loki-grafana 3000:80
3.(自定义配置)安装 loki
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 添加 repo 并更新
helm repo add loki https://grafana.github.io/loki/charts
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# 拉取 chart
helm fetch loki/loki-stack --untar --untardir .
cd loki-stack
# 将 values.yaml 中的 grafana.enable 改成 true, 以及 所有 image tag 为 latest
vim values.yaml
# 生成 k8s 配置
helm template loki . > loki.yaml
# 部署 (如果需要安装到指定 namespace中需要 修改 loki.yaml 中的 namespace: default 配置)
kubectl apply -f loki.yaml
# 查看 grafana 的密码
kubectl get secret --namespace <YOUR-NAMESPACE> loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
# 临时暴露 端口 进行访问测试
kubectl port-forward --namespace <YOUR-NAMESPACE> service/loki-grafana 3000:80
4.配置日志数据源
kubectl port-forward --namespace <YOUR-NAMESPACE> service/loki-grafana 3000:80
暴露了服务端口后我们要访问服务器的ip:3000 才能进入grafana的页面, 但是注意了这个时候其实是暴露了服务器的端口出来,但是因为我目前远程办公,公司的服务器在内网里面(而我使用了 vscode 的 remote-ssh 插件连接的服务器) 所以需要使用 vscode 再次转发端口到我本人使用的电脑,如下图
进入了grafana的页面后如果你使用默认配置没有自动配置数据源,下图显示的是使用默认配置的时候数据源的配置写法 如果你是使用了自定义配置的话那么数据源会自动配置,配置结果和下图是一样的 配置数据源的URL的时候可以自定义域名,只需要grafana的pod能够解析到能访问就可以了
5.查询日志
点击 explore 然后选择 namespace 和 pod 就可与查看到日志了