云原生爱好者周刊:服务网格的困境与破局
云原生一周动态要闻:
KEDA 从 CNCF 沙箱项目迁移到孵化项目 Harbor Operator 1.1.0 发布 Litmus 2.0.0 发布 Grafana 8.1.2 发布 OpenSSH 8.7 发布 开源项目推荐 文章推荐
云原生动态
KEDA 从 CNCF 沙箱项目迁移到孵化项目
CNCF 技术监督委员会(TOC)已经投票决定接受 KEDA 成为 CNCF 的孵化项目。
Kubernetes Event-Driven Autoscaling(KEDA)是一个用于 Kubernetes 的单一用途的事件驱动自动调节器,可以很轻松地添加到 Kubernetes 集群中来扩展应用。它的目的是简化应用程序的自动缩放,并通过支持扩展到零来优化成本。
KEDA 创建于 2019 年 5 月,是微软和红帽的合作项目,并于 2020 年 3 月加入 CNCF 沙盒。自加入沙盒以来,该项目的终端用户有了很大的增长,包括阿里巴巴、CastAI、KPMG、Meltwater、微软等。该项目团队由来自微软、红帽和 Codit 三个组织的 4 名维护者组成。
详情见[1]
Harbor Operator 1.1.0 发布
Harbor Operator 1.1.0 已经发布。值得注意的功能包括:
支持部署 Harbor v2.3 支持 Kubernetes 1.21 版本 将入口版本升级为 v1 完善 CRD 定义,提供一致的数据库、存储和缓存配置规范(引入新的 CRD 版本 v1beta1) 支持用基于 CRD 的声明方式应用 day2 配置 支持用负载均衡器公开 Harbor 服务 为 S3 存储提供额外的配置选项 以一致的格式进行日志记录 扩展底层运算符(PostgreSQL、Redis 和 Minio)的支持版本
了解更多细节,请查看 v1.1.0 发布页面[2]。
Litmus 2.0.0 发布
Litmus 2.0.0 为 LitmusChaos 平台带来了更新的功能,使混沌工程的实践更加高效。以下是新版本的显要特征:
混沌中心 一个混沌控制平面或门户,提供对跨数据中心/云的多个集群的混沌操作的集中管理。控制平面通过安装在注册集群上的代理进行实验。 包括记录在案的 API,可用于以编程方式调用混沌。 围绕混沌执行提供可视化能力和分析。 支持项目-团队-用户的结构,以便在团队内协作进行混沌操作。 Litmus 工作流 引入混沌工作流--(a)自动设置依赖关系(b)帮助创建有多个故障的复杂混沌场景(c)支持定义负载/验证工作和混沌注入。 提供了以不同方式创建/运行工作流的灵活性--通过模板,从集成中心,以及自定义上传。 多租户 支持设置(控制平面和代理)和执行混沌实验:集群范围和命名空间范围模式,以帮助在共享集群中以自助服务模式进行操作 可观测性和稳态假设的验证 提供更多带有额外过滤器的 Prometheus 指标集--可用于应用仪表盘的仪表,以观察混沌影响。 提供多样化的探针集,自动验证稳态假设--从而提高运行自动混沌实验的效率 用于混沌状态的 GitOps 与基于 Git 的 SCM 集成,为混沌工件(工作流)提供一个单一的真实来源,这样的变化在 Git 源和混沌中心之间是双向同步的,从而拉出最新的工件来执行。 提供一个事件追踪的微服务,在 GitOps 工具(如 ArgoCD、Flux)升级时自动启动 "订阅的 "混沌工作流。 非 Kubernetes 混沌 增加了在基础设施(云)资源上注入混沌的实验,如 VMs/instances 和磁盘(AWS、GCP、Azure、VMWare)--无论它们是否承载 Kubernetes 集群。
详情见[3]
Grafana 8.1.2 发布
Grafana 8.1.2 现已发布。Grafana 是一个功能丰富的指标标准仪表板和图形编辑器,用于分析和监控 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。
功能和增强:
AzureMonitor:添加对 PostgreSQL 和 MySQL 灵活服务器的支持。 Datasource:将 datasource health check 失败的 HTTP 状态代码更改为 400。 Explore:将 span duration 添加到 trace viewer 的左侧面板。 Plugins:在提供插件资产时使用文件扩展名 allowlist,而不是检查 UNIX 可执行文件。 Profiling:支持将 pprof 服务器绑定到自定义网络接口。 Search:使搜索图标键盘可导航。 Template variables:键盘导航改进。 Tooltip:在分钟时间范围内显示毫秒 (ms)。
详情见[4]
OpenSSH 8.7 发布,实验性 SFTP 支持 SCP
OpenSSH 8.7 发布了,作为这个广泛使用的 SSH 服务器/客户端软件的最新功能版本。
在 OpenSSH 8.7 中,突出的变化主要围绕 SCP 工作和为未来的变化做准备。OpenSSH 8.7 的亮点包括:
准备在下一个 OpenSSH 版本中默认停用 ssh-rsa 签名方案。我们鼓励用户现在就转移到更好、更安全的替代方案。 用于远程到远程拷贝的 SCP 现在默认通过本地主机传输,以避免在源跳上暴露凭证和其他改进。 SCP 增加了对使用 SFTP 协议传输的实验性支持,作为 SCP/RCP 协议的最终替代。SFTP 的使用导致了更可预测的文件名处理和其他改进。scp -s 标志将启用 SFTP 的使用,并计划在不久的将来成为默认使用。 SSH 和 SSHD 现在采用了一个更严格的配置文件解析器。 许多错误修复和其他小的改进。
更多关于 OpenSSH 8.7 所有变化的细节和源代码下载请访问 OpenSSH.com[5]。
开源项目推荐
Kubescape[6]
还记得前段时间美国国家安全局 (NSA) 发布了 《Kubernetes 安全加固指南》吗?现在连检查 K8s 集群安全配置是否符合 NSA 安全指南的项目都出来了。
Havener[7]
Havener 是一个用于 与 Kubernetes 交互的高级 CLI 工具,它的目的是提供更丰富的表现形式,并避免使用 kubectl 时使用参数很长的场景。下面是它的几个常用参数:
havener events[8] - 展示 Kubernetes 集群的 Events 信息 havener logs[9] - 检索所有 Pod 的日志文件 havener node-exec[10] - 在 Kubernetes 节点上执行命令 havener pod-exec[11] - 在 Pod 中执行命令 havener top[12] - 显示 CPU 和内存信息 havener watch[13] - 观察所有命名空间中的所有 Pod 的状态
Kubestriker[14]
Kubestriker 是一个平台无关的工具,旨在解决 Kubernetes 集群由于配置错误而产生的安全问题,并将有助于加强任何组织的整体 IT 基础设施。它可以对不同服务和多个平台上的开放端口进行大量详细检查,包括自我托管的 Kubernetes 集群、Amazon EKS、Azure AKS 和 Google GKE。
此外,它还可以分析 Kubernetes 基础设施相关组件,并提供可视化的攻击路径,展示黑客可能的攻击路线。
Metacontroller[15]
Metacontroller 是一个 Kubernetes 插件,它可以通过简单的脚本来编写和部署自定义控制器。
文章推荐
服务网格的困境与破局[16]
这篇文章值得一读,文中花了大量的篇幅来探讨容器网络的细节,简而言之,容器使用 TCP 来进行通信时会有大量的开销,而 kube-proxy 又额外增加了更多的开销。如果能直接使用 UDS(UNIX Domain Sockets) 来通信,就可以免去很多不必要的开销,容器通信不需要 TCP,也不需要 IP,成千上万的容器都有自己的 UDS,例如 /path/mysocket.sock
,每个 UDS 都有唯一的 Inode,而不用担心 IP 地址或端口冲突。
如何构建比 nginx:alpine 体积还小的镜像[17]
本文介绍了如何构建体积最小的 Nginx 镜像,甚至比 nginx:alpine 体积还小。
如何加固 Kubernetes 控制平面组件[18]
控制平面作为 Kubernetes 集群的神经中枢,管理着集群的状态和配置数据,极易被攻击者滥用,因此需要对其进行加固。
引用链接
详情见: https://www.cncf.io/blog/2021/08/18/keda-moves-from-the-cncf-sandbox-to-become-an-incubating-project/
[2]发布页面: https://github.com/goharbor/harbor-operator/releases/tag/v1.1.0
[3]详情见: https://github.com/litmuschaos/litmus/releases/tag/2.0.0
[4]详情见: https://github.com/grafana/grafana/releases/tag/v8.1.2
[5]OpenSSH.com: https://www.openssh.com/txt/release-8.7
[6]Kubescape: https://github.com/armosec/kubescape
[7]Havener: https://github.com/homeport/havener
[8]havener events: https://github.com/homeport/havener/blob/main/.docs/commands/havener_events.md
[9]havener logs: https://github.com/homeport/havener/blob/main/.docs/commands/havener_logs.md
[10]havener node-exec: https://github.com/homeport/havener/blob/main/.docs/commands/havener_node-exec.md
[11]havener pod-exec: https://github.com/homeport/havener/blob/main/.docs/commands/havener_pod-exec.md
[12]havener top: https://github.com/homeport/havener/blob/main/.docs/commands/havener_top.md
[13]havener watch: https://github.com/homeport/havener/blob/main/.docs/commands/havener_watch.md
[14]Kubestriker: https://github.com/vchinnipilli/kubestriker
[15]Metacontroller: https://github.com/metacontroller/metacontroller
[16]服务网格的困境与破局: https://medium.com/hashicorp-engineering/the-trouble-with-service-mesh-6b0336964323
[17]如何构建比 nginx:alpine 体积还小的镜像: https://medium.com/@rockmetoo/smallest-distroless-nginx-container-alpine-c08c3a9cac93
[18]如何加固 Kubernetes 控制平面组件: https://www.cncf.io/blog/2021/08/20/how-to-secure-your-kubernetes-control-plane-and-node-components/
关于 KubeSphere
KubeSphere (https://kubesphere.io)是在 Kubernetes 之上构建的开源容器混合云,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。
KubeSphere 已被 Aqara 智能家居、杭州数跑科技、本来生活、新浪、华夏银行、四川航空、国药集团、微众银行、紫金保险、中通、中国人保寿险、中国太平保险、中移金科、Radore、ZaloPay 等海内外数千家企业采用。KubeSphere 提供了开发者友好的向导式操作界面和丰富的企业级功能,包括多云与多集群管理、Kubernetes 资源管理、DevOps (CI/CD)、应用生命周期管理、微服务治理 (Service Mesh)、多租户管理、监控日志、告警通知、审计事件、存储与网络管理、GPU support 等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。