搭建k8s集群的可观测体系(log和metric)(已踩完坑)
Loki是日志聚合系统,属于云原生技术,由Grafana Labs开发。它专注于轻量级和高效的日志管理,特别是适合Kubernetes环境。而Prometheus-operator则是用来管理Prometheus监控系统的,简化部署和配置,处理监控数据,尤其是指标(metrics)的收集和告警。
本片文档踩坑结束,使用loki-stack搭建log体系,使用prometheus-operator搭建metric体系。
1,安装loki-stack
参考:https://github.com/grafana/helm-charts/tree/main/charts/loki-stack
1.1, 查看集群状态
kubectl cluster-info
预期输出:显示控制平面和CoreDNS服务地址,无报错。
1.2 验证NFS服务器连通性
在Kubernetes节点上测试NFS共享目录挂载
mkdir -p /mnt/nfs-test
mount -t nfs 192.168.237.151:/shared /mnt/nfs-test
echo "test" > /mnt/nfs-test/testfile
umount /mnt/nfs-test
验证点:
- 挂载成功且文件可读写
- NFS服务器 /shared 目录下出现 testfile
1.3 安装NFS Provisioner
使用NFS Provisioner创建storage class
1.3.1 添加NFS Provisioner Helm仓库
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
helm repo update
1.3.2 安装NFS Provisioner
helm upgrade --install nfs-provisioner \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=192.168.237.151 \
--set nfs.path=/shared \
--set storageClass.name=nfs-storage-loki \
--namespace loki-stack --create-namespace
验证安装状态:
kubectl get pods -n loki-stack -l app=nfs-subdir-external-provisioner
验证StorageClass创建:
kubectl get storageclass
1.4 安装Loki-Stack
1.4.1 创建自定义Values文件(loki-nfs-values.yaml)
promtail:
enabled: true
config:
clients:
- url: http://loki:3100/loki/api/v1/push
loki:
enabled: true
persistence:
enabled: true
storageClassName: