云原生爱好者周刊:VMware Tanzu 社区版发布,无任何限制!

云原生实验室

共 8911字,需浏览 18分钟

 ·

2021-10-18 02:30

云原生一周动态要闻:

  • VMware Tanzu 推出社区版
  • Kubernetes Cluster API 1.0 版已生产就绪
  • Linkerd 2.11 发布
  • Cartografos 工作组推出云原生成熟度模型
  • OpenEBS 3.0 发布
  • 开源项目推荐
  • 文章推荐

云原生动态

VMware Tanzu 推出社区版

世界正在向基于 Kubernetes 构建的云原生基础设施发展。这就是 VMware 创建 VMware Tanzu 的原因。但是,仅有技术本身是不够的,如果没有开发人员、基础设施和平台操作员、站点可靠性工程师以及其他拥有使用技术所需知识和技能的人,即使有再好的技术也无济于事。

Tanzu 社区版包含了利用 Kubernetes 实现端到端应用交付自动化所需的所有开源技术,以及定制平台的能力。这意味着你可以从小事做起,然后随着你的需求增长,随时轻松地增加新的功能。而且,无论未来你走到哪里,你用 Tanzu 社区版开发的知识、技能和工件都可以随身携带,并且可以完全转移到 Tanzu 的商业产品中。

Tanzu 社区版是免费的开源软件,不受使用限制或功能限制的影响。

详情见[1]

Kubernetes Cluster API 1.0 版已生产就绪

Cluster API v1.0 已准备好投入生产并正式迁移到 v1beta1 API。Cluster API 是一个 Kubernetes 项目,它为 Kubernetes 启用声明式管理,使用 API 轻松创建、配置和更新集群。它是一种端到端的方法,可以简化 Kubernetes 生命周期的重复性任务,同时在统一的基础架构中保持一致性和可重复性。

Cluster API 的主要目标是使集群生命周期管理变得枯燥。API 和可扩展性模型有一个成熟的生产记录;随着时间的推移,Cluster API 的目标是进一步巩固基础,并建立抽象,以简化终端用户的体验。

详情见[2]

Linkerd 2.11 发布

Linkerd 2.11 发布,此版本标志着 Linkerd 向前迈进了一大步。Linkerd 2.11 引入了“策略”,这是一项期待已久的功能,允许用户控制允许哪些服务相互连接和发送请求。此版本还引入了许多改进和性能增强,包括 gRPC 调用的重试、容器启动顺序问题的一般修复、更小的代理、更小的控制平面等等。

  • 授权策略 Linkerd 的新服务器授权策略(server authorization policy)功能使您可以细粒度控制允许哪些服务相互通信。这些策略直接建立在 Linkerd 的自动 mTLS 功能提供的安全服务身份上。与 Linkerd 的设计原则保持一致,授权策略以可组合的 Kubernetes 原生方式表达,这种方式只需最少的配置,就可表达广泛的行为。
  • 重试带有正文的 HTTP 请求 重试失败的请求是 Linkerd 提高 Kubernetes 应用程序可靠性能力的关键部分。到目前为止,出于性能原因,Linkerd 只允许重试无正文请求,例如 HTTP GET。在 2.11 中,Linkerd 还可以重试带有 body 的失败请求,包括 gRPC 请求,最大 body 大小为 64KB。
  • 容器启动排序解决方法 Linkerd 2.11 现在默认确保 linkerd2-proxy 容器在 Pod 中的任何其他容器初始化之前准备就绪。这是 Kubernetes 对容器启动顺序缺乏控制的一种解决方法,并解决了一大类棘手的竞争条件,即应用程序容器在代理准备就绪之前尝试连接。
  • 更小、更快、更轻
    • 控制平面减少到只有 3 个部署。
    • 由于高度活跃的 Rust 网络生态系统,Linkerd 的数据平面“微代理”更小、更快。
    • SMI 功能大部分已从核心控制平面中删除,并移至扩展中。
    • Linkerd 镜像现在使用最少的“distroless”基础镜像。

详情见[3]

Cartografos 工作组推出云原生成熟度模型

Cartografos 工作组的第一个项目是创建云原生成熟度模型。这个小组的成员都围绕着云原生和 Kubernetes 的发展历程,分别撰写了成熟度模型。其目标是将这些模型结合起来,形成一个涵盖整个云原生生态系统的全方位模型。

随着成熟度模型的建立,该小组很快就发现,这个过程并不局限于技术。围绕人、流程和政策有明确的主题,因为每一个主题都在采用云原生技术方面发挥着巨大的作用。

云原生成熟度的 5 个阶段:

第 1 级:构建。你有一个基线的云原生实施,并处于预生产状态。

第 2 级:运营。云原生的基础已经建立,你正在转向生产。

第 3 级:规模。你的能力正在增长,你正在为规模化定义流程。

第 4 级:改进。你正在改善整个环境的安全性、政策和治理。

第 5 级:优化。你正在重新审视先前的决定,并监测应用程序和基础设施的优化。

详情见[4]

OpenEBS 3.0 发布

OpenEBS 3.0(请参阅发行说明[5])是旨在为更轻松地加入和接受社区贡献奠定基础的努力的结晶,使每个引擎运营商为未来的 Kubernetes 版本做好准备,从而轻松管理和排除各种引擎的故障。

该版本功能增强包括:

  • CStor 和 Jiva 的 CSI 驱动程序以及将卷迁移到更新的 CSI 驱动程序的工具。3.0.0 已弃用旧版供应商,用户需要尽快迁移到相应的 CSI 驱动程序。
  • 对现有 LocalPV 风格的若干增强和新类型 LocalPV 的引入。
  • Mayastor 的新控制平面正在开发中,其设计更能处理规模和弹性。
  • 还包括用于 OpenEBS 的 kubectl 插件的初始版本和用于管理 OpenEBS 存储和卷的 prometheus grafana mixin。

详情见[6]

开源项目推荐

Otomi[7]

Otomi 是一个开源的基于 Kubernetes 的平台,它提供了类似于 Linux 桌面环境的用户界面,你可以像部署 Linux 中的软件包一样部署 Kubernetes 中的应用。默认已经集成了 Istio、Knative、Prometheus、Harbor、Keycloak、Nginx ingress、External-DNS、Cert-manager、Hashicorp Vault、Gatekeeper、Drone、Gitea 等项目,开箱即用。

Damon[8]

Damon 是 Nomad 的一个终端用户界面(TUI),可以用来管理 Nomad 的 Jobs、Deployments 和 Allocations 等资源。该项目目前还在持续增加新功能中。

Kdigger[9]

kdigger 是 "Kubernetes digger" 的简称,是一个用于 Kubernetes 渗透测试的上下文发现工具。这个工具集成了多种插件,每个插件负责发现不同的上下文信息。例如:

$ kdigger dig dev
### DEVICES ###
Comment: 16 devices are available.
+-------------+-------+----------------------+-----------------+
|     MODE    | ISDIR |        MODTIME       |       NAME      |
+-------------+-------+----------------------+-----------------+
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | core            |
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | fd              |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | full            |
| dtrwxrwxrwx | true  | 2021-10-11T07:31:54Z | mqueue          |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | null            |
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | ptmx            |
| drwxr-xr-x  | true  | 2021-10-11T07:32:14Z | pts             |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | random          |
| dtrwxrwxrwx | true  | 2021-10-11T07:31:54Z | shm             |
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | stderr          |
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | stdin           |
| Lrwxrwxrwx  | false | 2021-10-11T07:32:14Z | stdout          |
| -rw-rw-rw-  | false | 2021-10-11T07:32:14Z | termination-log |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | tty             |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | urandom         |
| Dcrw-rw-rw- | false | 2021-10-11T07:32:14Z | zero            |
+-------------+-------+----------------------+-----------------+

$ kdigger dig authorization
### AUTHORIZATION ###
Comment: Checking current context/token permissions in the "default" namespace.
+---------------------------------+-----------------+----------------+----------+
|            RESOURCES            | NONRESOURCEURLS | RESSOURCENAMES |   VERBS  |
+---------------------------------+-----------------+----------------+----------+
| selfsubjectaccessreviews.author | []              | []             | [create] |
| ization.k8s.io                  |                 |                |          |
| selfsubjectrulesreviews.authori | []              | []             | [create] |
| zation.k8s.io                   |                 |                |          |
|                                 | [/api/*]        | []             | [get]    |
|                                 | [/api]          | []             | [get]    |
|                                 | [/apis/*]       | []             | [get]    |
|                                 | [/apis]         | []             | [get]    |
|                                 | [/healthz]      | []             | [get]    |
|                                 | [/healthz]      | []             | [get]    |
|                                 | [/livez]        | []             | [get]    |
|                                 | [/livez]        | []             | [get]    |
|                                 | [/openapi/*]    | []             | [get]    |
|                                 | [/openapi]      | []             | [get]    |
|                                 | [/readyz]       | []             | [get]    |
|                                 | [/readyz]       | []             | [get]    |
|                                 | [/version/]     | []             | [get]    |
|                                 | [/version/]     | []             | [get]    |
|                                 | [/version]      | []             | [get]    |
|                                 | [/version]      | []             | [get]    |
| apiservices                     | []              | []             | [list]   |
| namespaces                      | []              | []             | [list]   |
| apiservices.apiregistration.k8s | []              | []             | [list]   |
| .io                             |                 |                |          |
| namespaces.apiregistration.k8s. | []              | []             | [list]   |
| io                              |                 |                |          |
+---------------------------------+-----------------+----------------+----------+

Istio 运维实战[10]

通过将微服务中原本在 SDK 中实现的应用流量管理、可见性、通信安全等服务治理能力下放到一个专门的“服务网格”基础设施中,Istio 解开了微服务的服务治理需求和业务逻辑之间的代码、编译、部署时机等的耦合,让微服务真正做到了承诺的“按需选择开发语言”,“独立部署升级”等能力,提升了微服务开发和部署的敏捷性,释放了微服务模式的生产力。

然而,“服务网格”这一基础设施的引入也给整个微服务的运维技术栈带来了新的挑战。对于运维同学来说,Istio 和 Envoy 的运维存在着较陡的学习曲线。TCM(Tencent Cloud Mesh)团队是业内最早一批接触服务网格技术的人员之一,有着大量 Istio/Envoy 故障排查和运维经验。本电子书记录了 TCM 团队从大量实际案例中总结出来的 Istio 运维经验,以及使用 Istio 的最佳实践,感兴趣的可以拜读一下。

文章推荐

粘性会话是如何破坏 K8s 中的弹性伸缩的[11]

通常我们认为,弹性伸缩和负载均衡是几乎没有关联的,但本文作者偶然发现了 AWS 应用负载平衡器(ALB)的问题,粘性会话会影响到负载均衡和弹性伸缩之间的关系。本文探讨了背后的原因及其解决方案。

使用 eBPF 破解 Linux 内核[12]

本文旨在从一个漏洞开发人员的角度对 eBPF 进行详细介绍。简单地说,eBPF 为用户模式的应用程序提供了一种在内核中运行代码的方法,无需编写内核模块。相比于内核模块,使用 eBPF 的好处是易于使用、稳定且安全。

引用链接

[1]

详情见: https://tanzu.vmware.com/content/blog/vmware-tanzu-community-edition-announcement

[2]

详情见: https://www.cncf.io/blog/2021/10/06/kubernetes-cluster-api-reaches-production-readiness-with-version-1-0/

[3]

详情见: https://linkerd.io/2021/09/30/announcing-linkerd-2.11/

[4]

详情见: https://www.cncf.io/blog/2021/10/04/cartografos-working-group-launches-cloud-native-maturity-model/

[5]

发行说明: https://github.com/openebs/openebs/releases/tag/v3.0.0

[6]

详情见: https://openebs.io/blog/openebs-30-release

[7]

Otomi: https://github.com/redkubes/otomi-core

[8]

Damon: https://github.com/hashicorp/damon

[9]

Kdigger: https://github.com/quarkslab/kdigger

[10]

Istio 运维实战: https://www.aeraki.net/istio-operation-bible/

[11]

粘性会话是如何破坏 K8s 中的弹性伸缩的: https://medium.com/@yashwanth_p/how-session-stickiness-disrupts-pod-auto-scaling-in-kubernetes-17ece8e2ea4f

[12]

使用 eBPF 破解 Linux 内核: https://www.graplsecurity.com/post/kernel-pwning-with-ebpf-a-love-story

关于 KubeSphere

KubeSphere (https://kubesphere.io)是在 Kubernetes 之上构建的开源容器混合云,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。

KubeSphere 已被 Aqara 智能家居、杭州数跑科技、本来生活、新浪、华夏银行、四川航空、国药集团、微众银行、紫金保险、中通、中国人保寿险、中国太平保险、中移金科、Radore、ZaloPay 等海内外数千家企业采用。KubeSphere 提供了开发者友好的向导式操作界面和丰富的企业级功能,包括多云与多集群管理、Kubernetes 资源管理、DevOps (CI/CD)、应用生命周期管理、微服务治理 (Service Mesh)、多租户管理、监控日志、告警通知、审计事件、存储与网络管理、GPU support 等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。

 ✨ GitHub:https://github.com/kubesphere
 💻 官网(中国站):https://kubesphere.com.cn
 👨‍💻‍ 微信群:请搜索添加群助手微信号 kubesphere

浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报