深入云原生—基于KubeWharf深度剖析-以公司实际应用场景为例深度解读

各位好,这里是难忘,本人对云原生也是研究了2年多了,算是略有所得,本次就来深入云原生---基于KubeWharf深度剖析场景与解读。我们需要先了解一下 KubeWharf,可能很多人都感觉到有点陌生吧,下面我们来一起学习!

🌰一. KubeWharf详解

KubeWharf 是字节跳动基础架构团队在对 Kubernetes 进行了大规模应用和不断优化增强之后的技术结晶。这是一套以 Kubernetes 为基础构建的分布式操作系统,由一组云原生组件构成,专注于提高系统的可扩展性、功能性、稳定性、可观测性、安全性等,以支持大规模多租集群、在离线混部、存储和机器学习云原生化等场景。

KubeWharf 由以下项目组成:

  • KubeBrain 是一个高性能的 Kubernetes 元数据系统,用于存储和管理 Kubernetes 集群的元数据。
  • KubeZoo 是一个轻量级的 Kubernetes 多租户网关,用于在 Kubernetes 集群之间进行安全隔离。
  • KubeGateway 是一个 Kubernetes 网关,用于在本地和云端 Kubernetes 集群之间进行通信。
  • Godel Scheduler 是一个高性能的 Kubernetes 调度器,用于在 Kubernetes 集群中智能地调度容器。

KubeWharf是一个分布式操作系统,由字节跳动基础架构团队在应用和优化增强Kubernetes之后创建。这个系统是一套以Kubernetes为基础构建的分布式操作系统,由一组云原生组件构成,专注于提高系统的可扩展性、功能性、稳定性、可观测性、安全性等,以支持大规模多租集群、在离线混部、存储和机器学习云原生化等场景。

🌰二.一个真实的 KubeWharf应用场景

这是一个真实的应用场景哈,因为涉及业务,这里只能脱敏化的描述了。

一家大型互联网公司某某X需要构建一个可扩展、稳定、安全的 Kubernetes 集群,用于支持其在线业务和离线业务。

需求:

  • 需要支持数万个节点。
  • 需要提供丰富的功能,满足各种业务需求。
  • 需要经过大规模生产环境的验证。
  • 需要提供强大的可观测性功能。
  • 需要提供多种安全功能。

最后的解决方案是:

某某X使用了KubeWharf来构建其Kubernetes集群。

操作步骤:

  • 部署KubeBrain、KubeZoo、KubeGateway和Godel Scheduler。
  • 创建Kubernetes集群。
  • 部署业务应用。

该公司使用KubeWharf成功构建了一个可扩展、稳定、安全的Kubernetes集群。该集群支持了该公司的在线业务和离线业务,满足了该公司的所有需求。

我总结了一下KubeWharf在这个业务场景的优势:满足了该公司的所有需求。

  1. KubeWharf可以扩展到数万个节点。
  2. KubeWharf提供了丰富的功能,包括多租户、资源隔离、安全控制等。
  3. KubeWharf经过了字节跳动大规模生产环境的验证。
  4. KubeWharf提供了强大的可观测性功能,包括日志、监控、告警等。
  5. KubeWharf提供了多种安全功能,包括访问控制、数据加密等。

完全的满足了公司的业务需求!

公司业务,我着重对这部分(逻辑时钟)有很深的影响,来具体的写一下:

元数据存储系统需要监听指定逻辑时钟之后发生的所有修改事件,以保证系统整体的数据最终一致性。注册监听时,需要传入起始revision和过滤参数。过滤参数包括但不限于前缀过滤,即只接受Key包含指定前缀的变更事件。

处理监听注册请求时,首先创建事件队列,并根据过滤参数构造过滤器。然后,将事件队列注册到事件生成组件中,获取下发的新增事件。接着,从事件缓存中拉取事件的revision大于等于给定要求revision的所有事件到事件队列中。最后,将事件去重之后,按照revision从小到大的顺序使用过滤器进行过滤,并将过滤后的事件通过事件流推送到元数据存储系统外部的监听方。

这块业务比较熟悉,对(逻辑时钟)这块记忆犹新。

🐹2.1KubeBrain编译与启动学习记录

KubeBrain编译与启动这块我当时还特意的做了笔记,有所记录(比官网的介绍更加贴合我们开发者学习的角度上记录的)。

编译启动命令:

复制代码
make tikv./bin/kube-brain --key-prefix "/" --pd-addrs=127.0.0.1:2379 --port=3379 --peer-port=3380 --compatible-with-etcd=true

多个 KubeBrain 共用一个 TiKV 集群时,需要注意以下两个配置:

  • key-prefix 参数和 APIServer 对应的 APIServer 的 etcd-prefix 参数必须保持一致。 这是为了保证多个 KubeBrain 能够正确访问 TiKV 集群中的元数据。
  • compatible-with-etcd 参数必须设置为 true。 这是为了开启从节点的支持 txn 和 watch,从而实现对 etcd 功能的完全兼容。

具体配置如下:

复制代码
## key-prefix 参数`
`key-prefix = "/kubebrain"`

`## compatible-with-etcd 参数`
`compatible-with-etcd = true`
`

KubeBrain 编译与启动只是整个使用流程中的第一步,接下来还需要进行以下操作:

  • 配置 KubeBrain :需要配置 KubeBrain 的各种参数,例如元数据存储、事件生成、事件流等。
  • 创建 Kubernetes 集群 :需要创建 Kubernetes 集群,并将其加入 KubeBrain 的管理范围。
  • 部署 Kubernetes 应用 :可以使用 KubeBrain 来部署 Kubernetes 应用,包括创建 Deployment、Service、Pod 等。
  • 管理 Kubernetes 集群 :可以使用 KubeBrain 来管理 Kubernetes 集群,包括查看集群状态、修改集群配置等。

比如说:

配置 KubeBrain

配置 KubeBrain 需要修改 KubeBrain 的配置文件,该文件位于 /etc/kubebrain/config.yaml。配置文件中包含了 KubeBrain 的各种参数,例如:

  • key-prefix :元数据存储的键前缀。
  • etcd-prefix :APIServer 对应的 APIServer 的 etcd-prefix 参数。
  • compatible-with-etcd :是否开启从节点的支持 txn 和 watch。

创建 Kubernetes 集群

可以使用 Kubernetes 官方提供的工具来创建 Kubernetes 集群,例如 kubeadm、minikube 等。

部署 Kubernetes 应用

可以使用 KubeBrain 提供的 API 或 CLI 来部署 Kubernetes 应用。

管理 Kubernetes 集群

可以使用 KubeBrain 提供的 UI 或 API 来管理 Kubernetes 集群。

我们需要学习的:

配置 KubeBrain

YAML

复制代码
key-prefix: "/kubebrain"`
`etcd-prefix: "/kubebrain"`
`compatible-with-etcd: true`
`

创建 Kubernetes 集群

复制代码
kubeadm init`
`

部署 Kubernetes 应用

复制代码
kubectl create deployment nginx --image=nginx`
`

管理 Kubernetes 集群

复制代码
kubectl get nodes`
`

🌰三. KubeWharf应用场景探索

我觉得KubeWharf应用场景是非常多,因为它的优势非常明显。

KubeWharf 是一个开源分布式操作系统,基于 Kubernetes。它可以用于构建和管理各种 Kubernetes 集群,包括:

  • 大规模多租集群 :KubeWharf 可以扩展到数万个节点,满足大规模多租集群的需求。
  • 在离线混部 :KubeWharf 可以用于在本地和云端混合部署 Kubernetes 集群,满足在离线混部的需求。
  • 存储和机器学习云原生化 :KubeWharf 可以用于云原生化存储和机器学习应用,满足存储和机器学习云原生化的需求。

经过我的不断学习,KubeWharf 可以应用在以下几个场景:

  • 在线业务 :KubeWharf 可以用于部署各种在线业务应用,例如 Web 应用、后端服务等。
  • 离线业务 :KubeWharf 可以用于部署各种离线业务应用,例如数据分析、机器学习等。
  • 云原生应用 :KubeWharf 可以用于部署各种云原生应用,例如容器应用、微服务应用等。
  • 混合云 :KubeWharf 可以用于在本地和云端混合部署 Kubernetes 集群。
  • 边缘计算 :KubeWharf 可以用于部署边缘计算 Kubernetes 集群。

KubeWharf 是一个强大的工具,可用于构建和管理各种 Kubernetes 集群。它可以满足各种场景的需求,是构建可扩展、功能强大、稳定、可观测和安全的 Kubernetes 集群的理想选择。

🌰四.心得与总结

🐹4.1心得

我深入探讨了云原生领域中的一个重要工具------KubeWharf,并通过详细解读其组成部分和一个真实的应用场景,展示了它在构建可扩展、功能强大、稳定、可观测和安全的 Kubernetes 集群方面的优势。以下是我的心得:

  • KubeWharf基于Kubernetes,专注于提高系统的各项性能,包括可扩展性、功能性、稳定性、可观测性和安全性。
  • 它由多个项目组成,如KubeBrain、KubeZoo、KubeGateway和Godel Scheduler,每个项目都有特定的功能,共同构建了一个强大的分布式操作系统。

我通过一个真实的应用场景,文章展示了KubeWharf在构建大型、可扩展、稳定、安全的Kubernetes集群方面的成功经验。

强调了KubeWharf的优势,包括可扩展性、丰富的功能、经过大规模验证、强大的可观测性和多种安全功能。这个案例为读者提供了一个具体的实例,说明KubeWharf在实际业务中的应用效果。

我对KubeWharf的一个关键应用领域------元数据存储系统进行了深入剖析。特别是对逻辑时钟的影响,我详细描述了元数据存储系统如何监听逻辑时钟,以保证系统的数据最终一致性。这一部分的具体实现细节使读者更深入地理解了KubeWharf的内部机制。

我通过对KubeBrain的编译与启动以及KubeWharf的应用场景进行探索,为大家提供了进一步学习的方向。通过展示编译与启动命令以及相关配置,大家可以更好地理解如何在实际中使用KubeWharf。同时,对KubeWharf的应用场景进行了分类,涵盖了在线业务、离线业务、云原生应用、混合云和边缘计算等多个领域,强调了KubeWharf的通用性和灵活性。

🐹4.1总结

这篇文章深入剖析了云原生领域中基于KubeWharf的分布式操作系统。通过对KubeWharf的构建背景、组成部分和真实应用场景的详细介绍,读者能够深刻理解这一工具在构建强大、可扩展、稳定的Kubernetes集群方面的重要性。我通过清晰的步骤和实例演示,使得即使是对KubeWharf陌生的读者也能够快速入门🐹。

在实际应用场景中,KubeWharf在大规模多租户、离线混部、存储和机器学习云原生化等领域的优越表现。通过一家大型互联网公司的案例,读者不仅了解了KubeWharf的具体应用流程,还明白了它在多个方面的优势,包括扩展性、功能丰富性、稳定性、可观测性和安全性。这为读者提供了一个清晰的实际应用场景,帮助他们更好地理解KubeWharf的实际作用。

对于KubeWharf中一个关键领域------元数据存储系统的深入剖析,更是为读者提供了深入了解KubeWharf内部工作机制的机会。透过对逻辑时钟的具体影响和实现细节的描述,读者能够更好地理解元数据存储系统的工作原理,从而加深对KubeWharf整体架构的理解。

通过对KubeBrain编译与启动的学习记录以及对KubeWharf应用场景的探索,文章为读者提供了进一步学习和应用的指导。这些内容不仅仅是理论性的介绍,更是实际操作的具体步骤和场景应用的分类,使得读者能够更好地掌握KubeWharf的使用和适用范围。

作为一个研究云原生多年的我来说,我是非常的看好KubeWharf,我相信KubeWharf随着版本的优化迭代,会变的越来越好的!!!

相关推荐
修己xj7 小时前
Anki:让记忆更高效、更智能的开源力量
开源
Gold Steps.12 小时前
OpenEBS — 云原生 CNS 高性能存储
云原生·kubernetes·存储
大雨淅淅12 小时前
Eureka从入门到精通:开启微服务架构的钥匙
微服务·云原生·eureka·架构
AI架构全栈开发实战笔记12 小时前
Eureka 对大数据领域服务依赖关系的梳理
大数据·ai·云原生·eureka
冬奇Lab13 小时前
一天一个开源项目(第17篇):ViMax - 多智能体视频生成框架,导演、编剧、制片人全包
开源·音视频开发
一个处女座的程序猿14 小时前
AI之Agent之VibeCoding:《Vibe Coding Kills Open Source》翻译与解读
人工智能·开源·vibecoding·氛围编程
一只大侠的侠15 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL16 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠17 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠17 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos