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

开源项目推荐

​Prometheus 架构演进之路​

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

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

​Pulsar​

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

​Epimetheus​

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

​tproxy​

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

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

​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 平台,提升业务平台的复用性。

云原生动态

​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 集群进行管理员控制。