k8s record 20240710 监控

不是adaptor 是opetator 案例

监控有了,日志搜集呢?

一、kubelet 的小弟

kubelet --- 负责维护容器的生命周期,节点和集群其他部分通信

  1. cAdvisor 集成在 Kubernetes 的 kubelet 中,能够自动发现和监控集群中所有的容器。
  2. dockershim 允许 kubelet 与 docker 守护进程通信,管理容器。k8s 1.24 版本后,Dockershim被弃,被 CRI 容器运行时接口代替,比如 containerd、CRI-O
  3. Garbage Collection 是 kubelet 的一个过程,用于清理不再需要的资源
  4. syncLoop 是一个持续的循环,定期从 API Server 获取 pod的期望状态和 节点的pod对比,发现差异,采取行动恢复与期望一致

Prometheus 部分

  1. ceph的metrics获取通过ceph mgr。也就是说Prometheus获取数据的地址,exporter的地址
  2. ceph自带 Prometheus,在Prometheus界面上的alert里面可以找到问题

TCP 和 UDP 可以同时使用相同的端口号,因为它们的协议栈在操作系统中是分离的。这意味着操作系统可以区分同一端口号上的 TCP 和 UDP 流量。

bash 复制代码
 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. 日志收集

  1. Logstash 功能虽然强大,但是它依赖 Java. 数据量大的时候消耗系统资源大,影响性能
    Filebeat 基于Go 语言,无依赖,轻量级,性能好。版本7.7.1
相关推荐
运维开发故事3 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
SRETalk5 天前
Zabbix、Prometheus、Grafana、Nightingale,四个监控如何选型?
zabbix·grafana·prometheus·nightingale
探索云原生5 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美6 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
武子康10 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
虚无境12 天前
如何编写一个SpringBoot项目告警推送的Starter
java·prometheus·webhook