不是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 流量。

 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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐