云原生爱好者周刊:Prometheus 架构演进之路 | 2022-07-26

Kubernetes 官方文档终于新增了关于多租户的最佳实践,虽然 Kubernetes 没有最终用户或租户的概念,但提供了多种功能来实现不同的租户需求,感兴趣的小伙伴可以参考一下。

开源项目推荐

Prometheus 架构演进之路

这个 PPT 使用精美的插图展示了 Prometheus 项目的发展历程。

Pulsar

Pulsar 是基于 eBPF 的高度模块化的物联网运行期安全代理框架。这名字和 Apache Pulsar 撞衫了吧~~

Epimetheus

Prometheus 的 Fork 版本,使用 FrostDB 作为时序数据库。FrostDB 是比较新的列式数据库。

tproxy

这个工具可以用来分析 MySQL 连接池以及常规的 gRPC,当然也可以用来分析任何 TCP 连接。

pg_timetable

pg_timetable 是 PostgreSQL 的高级作业调度器,与传统的作业调度系统不同,它完全由数据库驱动,并提供了一些比较新颖的概念,支持执行 PostgreSQL 命令和系统应用的命令。例如:

-- Run public.my_func() at 00:05 every day in August:
SELECT timetable.add_job('execute-func', '5 0 * 8 *', 'SELECT public.my_func()');

-- Run VACUUM at minute 23 past every 2nd hour from 0 through 20 every day:
SELECT timetable.add_job('run-vacuum', '23 0-20/2 * * *', 'VACUUM');

-- Refresh materialized view every 2 hours:
SELECT timetable.add_job('refresh-matview', '@every 2 hours', 
  'REFRESH MATERIALIZED VIEW public.mat_view');

-- Clear log table after pg_timetable restart:
SELECT timetable.add_job('clear-log', '@reboot', 'TRUNCATE public.log');

-- Reindex at midnight on Sundays with reindexdb utility:

--  using default database under default user (no command line arguments)
SELECT timetable.add_job('reindex-job', '0 0 * * 7', 'reindexdb', job_kind := 'PROGRAM');

--  specifying target database and tables, and be verbose
SELECT timetable.add_job('reindex-job', '0 0 * * 7', 'reindexdb',
          '["--table=foo", "--dbname=postgres", "--verbose"]'::jsonb, 'PROGRAM');

--  passing password using environment variable through bash shell
SELECT timetable.add_job('reindex-job', '0 0 * * 7', 'bash',
    '["-c", "PGPASSWORD=5m3R7K4754p4m reindexdb -U postgres -h 192.168.0.221 -v'::jsonb,
    'PROGRAM');    

文章推荐

使用 Vcluster 来减少 Kubernetes 集群的分散性

相信大家都会遇到这样的苦恼,随着项目的不断增多,开发与测试环境会越来越多,Kubernetes 集群也会越来越多,而且每个集群版本都不一致,支持的开源生态的组件版本也不一致,最终会导致集群资源利用率低下,大大增加了集群的复杂性。本文尝试使用 Vcluster 来解决这个问题。

将 NestJS 的报错信息暴露为 Prometheus 的 Metrics

这篇文章对如何收集 NestJS 报错信息并将其暴露为 Prometheus 指标进行了非常深入的研究。

基于 CoreDNS 和 K8s 构建云原生场景下的企业级 DNS

CoreDNS 是一个出色的云原生开源 DNS 服务器,提供 K8s 服务发现和DNS服务器功能。KubeSphere 是一个开源的容器云管理平台,提供全生命周期的 K8s 容器应用管理。结合 KubeSphere 和 CoreDNS,可以搭建一个云原生的企业 DNS 系统,实现统一配置,监控运维、弹性伸缩。

基于云原生的私有化 PaaS 平台交付实践

本文将解读如何利用云原生解决私有化交付中的问题,进而打造一个 PaaS 平台,提升业务平台的复用性。

云原生动态

云原生 Meetup 广州站报名开启

今年下半年的第一站 Meetup,KubeSphere 社区将走进广州市,与 SOFAStack 社区联合组织。

活动时间:2022 年 8 月 6 日 14:00——18:00

活动地点:广东省广州市海珠区阅江西路 88 号阿里中心(广州)北塔 4F 万松书院

Cilium 1.12 发布

日前,Cilium 1.12 正式发布。该版本主要变化如下:

  • 具有可选 Sidecar 的 Kubernetes 原生服务网格
  • 完全兼容的入口控制器
  • ClusterMesh 增强功能包括服务亲和性
  • Egress Gateway 和对外部工作负载的额外支持
  • Cilium Tetragon 发布
  • 其他增强功能——额外的网络可见性控制、将 Cilium 作为非特权容器运行的能力、 pod CIDR 的动态分配、IPv4/IPv6 NAT、AWS ENI 前缀委托等等。

Kubernetes Cluster API 集成了持续模糊测试

在过去的几个月里,Ada Logics的团队一直致力于将持续模糊测试集成到Kubernetes 集群 API项目中。这是一项专注于改善 Cluster API 的安全状况并确保 Cluster API 用户持续获得良好体验的努力。模糊测试集成涉及在 OSS-Fuzz 项目中注册 Cluster API 并开发一组模糊器,将代码覆盖率提升到成熟水平。

API 平台 Kreya 将 REST 支持添加到以 gRPC 为中心的解决方案中

API 平台 Kreya 现在支持 REST,并在 7 月 11 日推出的最新 1.8 版本中提供了新的专业和企业产品。该工具最初是为支持 gRPC 而开发的。

REST 操作包括目录设置、环境和模板,以及对身份验证的支持。

除了推出对 REST 的支持外,Kreya 团队还推出了它的第一个付费功能:脚本和测试。

OSTIF 对 Argo 的审核已完成

开源技术改进基金很高兴报告又一次安全审计的结果,这次是 Argo 项目。Argo 项目是一组使用 Kubernetes 完成工作的工具。经审核的 Argo 的主要组成部分是:

  • Argo Workflows – 容器原生工作流引擎
  • Argo CD – 声明式 GitOps 持续交付
  • Argo Events – 基于事件的依赖管理器

研究结果导致了 26 个安全问题,包括 1 个严重错误和 4 个高度严重错误已得到修复。最重要的发现是 ArgoCD 中的 XSS 注入允许攻击者在 UI 中执行 javascript 代码,可能允许攻击者对 Kubernetes 集群进行管理员控制。

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个用于部署Prometheus监控系统的YAML文件,下面对其各部分进行解释: ``` apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: labels: prometheus: k8s name: k8s namespace: monitoring spec: alerting: alertmanagers: - name: alertmanager-main namespace: monitoring port: web image: quay.io/prometheus/prometheus:v2.20.0 nodeSelector: kubernetes.io/os: linux podMonitorNamespaceSelector: {} podMonitorSelector: {} replicas: 2 resources: requests: memory: 400Mi ruleSelector: matchLabels: prometheus: k8s role: alert-rules securityContext: fsGroup: 2000 runAsNonRoot: true runAsUser: 1000 serviceAccountName: prometheus-k8s serviceMonitorNamespaceSelector: {} serviceMonitorSelector: {} version: v2.20.0 ``` - `apiVersion`: 定义该对象所使用的Kubernetes API版本,这里使用的是monitoring.coreos.com/v1。 - `kind`: 定义该对象的类型,这里是Prometheus类型。 - `metadata`: 定义该对象的元数据,包括名称、标签和命名空间等信息。 - `spec`: 定义该对象的具体配置信息,包括如何部署和配置Prometheus监控系统。 - `alerting`: 定义如何设置警报。这里设置了警报管理器,使用名称为`alertmanager-main`的警报管理器,并指定其所在的命名空间和Web端口。 - `image`: 定义Prometheus监控系统的镜像,这里使用了`quay.io/prometheus/prometheus:v2.20.0`。 - `nodeSelector`: 定义用于选择部署Prometheus监控系统的节点的标签。这里选择了标签为`kubernetes.io/os: linux`的节点。 - `podMonitorNamespaceSelector` 和 `podMonitorSelector`: 定义选择哪些Pod进行监控。这里未指定任何选择条件,表示将监控所有Pod。 - `replicas`: 定义Prometheus实例的副本数量,这里设置为2。 - `resources`: 定义Prometheus实例使用的资源请求量,这里设置了内存请求为400Mi。 - `ruleSelector`: 定义如何选择要应用的告警规则。这里选择了标签为`prometheus: k8s`和`role: alert-rules`的规则。 - `securityContext`: 定义Prometheus容器的安全上下文,包括运行容器的用户和组等。 - `serviceAccountName`: 指定Prometheus容器所使用的服务账户。 - `serviceMonitorNamespaceSelector` 和 `serviceMonitorSelector`: 定义选择哪些Service进行监控。这里未指定任何选择条件,表示将监控所有Service。 - `version`: 指定Prometheus的版本,这
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值