运维训练营第 18 周作业
20230312 作业:
1.在 k8S 环境基于 daemonset 部署日志收集组件实现 pod 日志收集
2.在 k8S 环境对 pod 添加 sidecar 容器实现业务日志收集
3.在 k8S 环境容器中启动日志收集进程实现业务日志收集
4.通过 prometheus 对 CoreDNS 进行监控并在 grafana 显示监控图形
5.对 K8S 集群进行 master 节点扩容、node 节点扩容
6.对 K8S 集群进行小版本升级
7.基于 ceph rbd 及 cephfs 持久化 k8S 中 pod 的业务数据
基于 daemonset 的 pod 日志收集
本次搭建用了 kafka 和 ELK。
部署 kafka
root@server:/apps/harbor# mkdir -pv /apps/kafka
root@server:/apps/kafka# vi docker-compose.yml
root@server:/apps/kafka# docker compose pull
root@server:/apps/kafka# docker compose up -d
root@server:/apps/kafka# docker compose ps
offset explorer 连接 zk:

Advanced 里也配置 IP 和端口。

connect 后显示绿色就是连上了。

这样后续就可以看日志了。

key 和 value 都配置为 string,再点 update。
部署业务后,就可以看到日志了。

部署 es
root@server:/apps/kafka# mkdir -pv /apps/elasticsearch
root@server:/apps/elasticsearch# vi docker-compose.yml
root@server:/apps/elasticsearch# mkdir data
root@server:/apps/elasticsearch# chown jianywu. data/
root@server:/apps/elasticsearch# docker compose pull
root@server:/apps/elasticsearch# docker compose up -d
[+] Running 3/3
⠿ Network elastic Created 0.4s
⠿ Container elasticsearch-elasticsearch-1 Started 1.8s
⠿ Container elasticsearch-kibana-1 Started

部署好后,可以通过 IP:5601 来访问 ES。
部署业务
root@k8s-master01:/home/jianywu/k8s_test/ELK cases/1.daemonset-logstash/1.logstash-image-Dockerfile# bash build-commond.sh
修改 2.DaemonSet-logstash.yaml 里配置的 KAFKA IP 地址。
root@k8s-master01:/home/jianywu/k8s_test/ELK cases/1.daemonset-logstash# kubectl apply -f 2.DaemonSet-logstash.yaml
root@k8s-master01:/home/jianywu/k8s_test/ELK cases/1.daemonset-logstash# ks get po -o wide -l name=logstash-elasticsearch -A
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system logstash-elasticsearch-bvjvg 1/1 Running 0 81s 10.244.1.2 k8s-node01
基于 sidecar 的业务日志收集
基于启动日志收集进程实现业务日志收集
prometheus 对 coreDNS 监控在 grafana 显示图形
对 k8s 的 master 节点扩容,node 节点扩容
对 k8s 小版本升级
基于 ceph rbd 和 cephfs 持久化 k8s 的 pod 中的业务数据
可以用 rook ceph 来实现。
参考资料
Operation-Class001/week18 at main · yangguangchao/Operation-Class001 (github.com)
评论