k8s record 20240710 监控
不是adaptor 是opetator 案例。
不是adaptor 是opetator 案例
监控有了,日志搜集呢?
一、kubelet 的小弟
kubelet — 负责维护容器的生命周期,节点和集群其他部分通信
- cAdvisor 集成在 Kubernetes 的 kubelet 中,能够自动发现和监控集群中所有的容器。
- dockershim 允许 kubelet 与 docker 守护进程通信,管理容器。k8s 1.24 版本后,Dockershim被弃,被 CRI 容器运行时接口代替,比如 containerd、CRI-O
- Garbage Collection 是 kubelet 的一个过程,用于清理不再需要的资源
- syncLoop 是一个持续的循环,定期从 API Server 获取 pod的期望状态和 节点的pod对比,发现差异,采取行动恢复与期望一致
Prometheus 部分
- ceph的metrics获取通过ceph mgr。也就是说Prometheus获取数据的地址,exporter的地址
- ceph自带 Prometheus,在Prometheus界面上的alert里面可以找到问题
TCP 和 UDP 可以同时使用相同的端口号,因为它们的协议栈在操作系统中是分离的。这意味着操作系统可以区分同一端口号上的 TCP 和 UDP 流量。
netstat -tlunp |grep alertmanager
tcp6 0 0 :::9093 :::* LISTEN 4182/alertmanager
tcp6 0 0 :::9094 :::* LISTEN 4182/alertmanager
udp6 0 0 :::9094 :::* 4182/alertmanager
端口 9094 可以用于集群通信或 HTTP/2 gRPC 服务。
集群通信:在 Alertmanager 集群中,多个 Alertmanager 实例之间需要通信来共享告警状态和信息。这种通信可以使用 TCP 或 UDP 协议。
HTTP/2 gRPC 服务:某些高级通信需求可能会使用 HTTP/2 协议,这通常基于 TCP 实现。
Alertmanager 通常使用 TCP 端口 9093 来接收来自 Prometheus 的告警。
Prometheus 发送告警到 Alertmanager 时,会通过 HTTP 请求使用 TCP 端口 9093。
在 alertmanager.yml 那里配置发送告警给谁。然后在Prometheus.yml 里配置9093 也就是alertmanager的端口和 ip
3. 自动化运维
Ansible是不需要在其他节点安装客户端,只要能连进去就行,成百上千的机器方便。它是在一台机器上起10到20个进程去批量地做。
Saltstack 其他机器需要安装 minimal 服务,从master节点拿任务执行。它就被ansible的部署方式快很多
通过这些做运维平台,通过平台管理成百上千的机器。这就是所谓的运维开发。
Puppet 由于是 R 语言编写的,用的比较少,多用于数据分析。它能够轻松管理上万台节点
4. 日志收集
- Logstash 功能虽然强大,但是它依赖 Java. 数据量大的时候消耗系统资源大,影响性能
Filebeat 基于Go 语言,无依赖,轻量级,性能好。版本7.7.1
更多推荐
所有评论(0)