From bbcabc16973cbee5dfc899c0c0629061ec720fdb Mon Sep 17 00:00:00 2001 From: faweizhao26 Date: Mon, 20 Jun 2022 18:49:41 +0800 Subject: [PATCH] update the page of live Signed-off-by: faweizhao26 --- content/zh/live/_index.md | 23 +++-- content/zh/live/gpu0623-live.md | 35 ++++++++ content/zh/live/headingdata0616-live.md | 24 +++++- .../zh/live/pulsar-kubesphere-meetup0625.md | 80 ++++++++++++++++++ .../images/live/cloudnative-live-banner.png | Bin 307578 -> 335744 bytes 5 files changed, 154 insertions(+), 8 deletions(-) create mode 100644 content/zh/live/gpu0623-live.md create mode 100644 content/zh/live/pulsar-kubesphere-meetup0625.md diff --git a/content/zh/live/_index.md b/content/zh/live/_index.md index 8447035f8..2bd9f2159 100644 --- a/content/zh/live/_index.md +++ b/content/zh/live/_index.md @@ -10,22 +10,31 @@ section1: section2: image: /images/live/cloudnative-live-banner.png - url: ./pulsar0609-live/ + url: ./headingdata0616-live/ notice: - title: 云原生数据工厂——中海庭数字化转型之路 + title: 浅析 Kubernetes 对 GPU 虚拟化、池化技术的集成 tag: 预告 - time: 2022 年 06 月 16 日晚 8 点 + time: 2022 年 06 月 23 日晚 8 点 base: 线上 - url: ./headingdata0616-live/ + url: ./gpu0623-live/ over: - title: 基于 KubeSphere 和 Thanos 构建可持久化存储的多集群监控系统 - url: ./jinaai0602-live/ - tag: 结束 + title: Apache Pulsar x KubeSphere 在线 Meetup + tag: 预告 + time: 2022 年 06 月 25 日晚 8 点 + base: 线上 + url: ./pulsar-kubesphere-meetup0625/ section3: videos: + - title: 云原生数据工厂——中海庭数字化转型之路 + link: ./headingdata0616-live/ + snapshot: https://pek3b.qingstor.com/kubesphere-community/images/headingdata0616-live-cover.png + type: iframe + createTime: 2022.06.09 + group: 直播回放 + - title: 初探 KubeSphere x Apache Pulsar —— 打造云原生分布式消息流平台 link: ./pulsar0609-live/ snapshot: https://pek3b.qingstor.com/kubesphere-community/images/pulsar0609-live-cover.png diff --git a/content/zh/live/gpu0623-live.md b/content/zh/live/gpu0623-live.md new file mode 100644 index 000000000..74d40234c --- /dev/null +++ b/content/zh/live/gpu0623-live.md @@ -0,0 +1,35 @@ +--- +title: 浅析 Kubernetes 对 GPU 虚拟化、池化技术的集成 +description: 对比 NVIDIA 对 Kubernetes 中 GPU 支持的官方实现,结合 GPU 虚拟化、池化等技术特点,分析利用 kube-scheduler 拓展技术,进行 GPU 调度增强的实现方式,及其在 KubeSphere 中的集成与使用。 +keywords: KubeSphere, Kubernetes, GPU, GPU 虚拟化, kube-scheduler +css: scss/live-detail.scss + +section1: + snapshot: + videoUrl: + type: iframe + time: 2022-06-23 20:00-21:00 + timeIcon: /images/live/clock.svg + base: 线上 + baseIcon: /images/live/base.svg +--- +## 分享内容简介 + +对比 NVIDIA 对 Kubernetes 中 GPU 支持的官方实现,结合 GPU 虚拟化、池化等技术特点,分析利用 kube-scheduler 拓展技术,进行 GPU 调度增强的实现方式,及其在 KubeSphere 中的集成与使用。 + +## 讲师简介 + +韦伟,趋动科技研发工程师,五年云原生相关经验,开源贡献者。 + +## 分享大纲 + +![](https://pek3b.qingstor.com/kubesphere-community/images/gpu0623-live.png) + +## 直播时间 + +2022 年 06 月 23 日 20:00-21:00 + +## 直播地址 + +B 站 http://live.bilibili.com/22580654 + diff --git a/content/zh/live/headingdata0616-live.md b/content/zh/live/headingdata0616-live.md index 72223fe7f..0ccc127c2 100644 --- a/content/zh/live/headingdata0616-live.md +++ b/content/zh/live/headingdata0616-live.md @@ -6,7 +6,7 @@ css: scss/live-detail.scss section1: snapshot: - videoUrl: + videoUrl: //player.bilibili.com/player.html?aid=342603831&bvid=BV1f94y127E1&cid=748763288&page=1&high_quality=1 type: iframe time: 2022-06-16 20:00-21:00 timeIcon: /images/live/clock.svg @@ -35,3 +35,25 @@ section1: B 站 http://live.bilibili.com/22580654 +## PPT 下载 + +可扫描官网底部二维码,关注 「KubeSphere云原生」公众号,后台回复 `20220616` 即可下载 PPT。 + +## Q & A + +### Q1:大数据调度系统选型有哪些?比如 DolphinScheduler/Airflow,Oozie,Kettle 之类的。他们各自优势有哪些?我想做一个能够支持实时数据、离线数据依赖调度、数据血缘关系、数据映射同步、在线开发编辑等集大成的系统。对应这些功能点应该选择哪些开源系统? + +A:简单的做个对比。 + + +| 工作流引擎 | 优势 | 不足 | +| -------- | -------- | -------- | +| airflow | 老牌任务管理、调度、监控 | 语言强绑定,Python 依赖 | +|K8s native workflow|简单直接|灵活度不够| +|Apache Dolphin Scheduler|界面友好,任务定制简单| API 不太友好,模板编排不太灵活| +|Argo Workflow|容器编排灵活、模板编排支持模块化、与云原生结合紧密|目前还在快速迭代中,用于生产有一定的风险,中文资料不足| + +### Q2:Argo 最佳实战的 simple 地址麻烦老师给一下 +A:这个是官方的例子集合涵盖了绝大部份的应用场景: https://github.com/argoproj/argo-workflows/tree/master/examples。 + +这个是我个人的 Argo 工作流使用例子集合,目前包括了 dag 流程,暂停/恢复流程,并行流程,串行流程,循环流程,递归循环嵌套流程: https://github.com/xwm111/argodemo。 \ No newline at end of file diff --git a/content/zh/live/pulsar-kubesphere-meetup0625.md b/content/zh/live/pulsar-kubesphere-meetup0625.md new file mode 100644 index 000000000..063ccfc36 --- /dev/null +++ b/content/zh/live/pulsar-kubesphere-meetup0625.md @@ -0,0 +1,80 @@ +--- +title: Apache Pulsar x KubeSphere 在线 Meetup +description: 6 月 25 日(周六)StreamNative & KubeSphere 组织发起 Apache Pulsar x KubeSphere Meetup,并邀请来自 StreamNative、青云科技、中海庭等团队开发者为大家分享 Apache Pulsar 与 KubeSphere 社区的发展动态、开发与落地实践等话题。 +keywords: KubeSphere, Kubernetes, Apache Pulsar +css: scss/live-detail.scss + +section1: + snapshot: + videoUrl: + type: iframe + time: 2022-06-25 14:00-17:00 + timeIcon: /images/live/clock.svg + base: 线上 + baseIcon: /images/live/base.svg +--- + +6 月 25 日(周六)StreamNative & KubeSphere 组织发起 Apache Pulsar x KubeSphere Meetup,并邀请来自 StreamNative、青云科技、中海庭等团队开发者为大家分享 Apache Pulsar 与 KubeSphere 社区的发展动态、开发与落地实践等话题。参与本次 Meetup,你将有机会了解: +- Apache Pulsar 实现原理及架构剖析 +- 深入浅出 CoreDNS x KubeSphere 搭建云原生 DNS 系统 +- -KubeSphere x Apache Pulsar 的碰撞有什么火花? +- 分享诸多云原生实践案例 + +## 活动日程 + +![](https://pek3b.qingstor.com/kubesphere-community/images/ApachePulsar-KubeSphere-meetup-poster.png) + +## 议题详情 + +### 议题一:Apache Pulsar 云原生消息队列架构解析 + +分享嘉宾:刘德志,Apache Pulsar Committer,StreamNative 解决方案专家,前腾讯计费平台技术专家。 + +分享概要: +1. Apache Pulsar 历史介绍; +2. Apache Pulsar 存储分离架构详细介绍; +3. Apache Pulsar 如何扩缩容和自动故障转移; +4. Apache Pulsar 社区案例介绍。 + +### 议题二:使用 KubeSphere & CoreDNS 搭建云原生 DNS + +分享嘉宾:马伟,青云科技,容器技术顾问。 + +分享概要:CoreDNS 是一个出色的云原生开源 DNS 服务器,提供 Kubernetes 服务发现和 DNS 服务器功能。KubeSphere 是一个开源的容器混合云,提供全生命周期的 Kubernetes 容器应用管理。本次演讲将分享如何结合 KubeSphere 和 CoreDNS 搭建一个云原生的 DNS 系统,实现统一配置,监控运维。 + +### 议题三::KubeSphere x Apache Pulsar 实战部署 + +分享嘉宾:徐文涛,StreamNative 内容策略师。 + +分享概要: +1. KubeSphere 与 KubeSphere 应用商店、应用模板功能介绍; +2. Apache Pulsar 介绍; +3. Apache Pulsar 在 KubeSphere 上的安装流程; +4. Apache Pulsar 在 KubeSphere 上的基本使用操作。 + +### 议题四:云原生数据工厂- 中海庭数字化转型之路 + +分享嘉宾: +- 郭杨斌,中海庭云端平台科室经理,原东风畅行斑马快跑架构负责人; +- 刘亮,中海庭云端平台架构师,原青云 KubeSphere 解决方案架构师; +- 许维明,中海庭云端平台架构师,原 IBM DevOps 架构师。 + +分享概要: +1. 测绘行业与数字化转型; +2. 云原生引入; +3. 云原生实践; +4. 总结与展望。 + +## 活动详情 + +**主办方:StreamNative、KubeSphere** + +战略合作社区:CSDN、SegmentFault 思否 + +活动时间: **2022 年 6 月 25 日(周六) 14:00-17:00** + +活动形式: 线上直播 + +报名链接:https://meeting.tencent.com/dw/9iliuLGaXxDm + +报名方式:扫描海报中的二维码 \ No newline at end of file diff --git a/static/images/live/cloudnative-live-banner.png b/static/images/live/cloudnative-live-banner.png index dca1a843bda9acb408ea2cfe07fc5c190458d09a..2ddee47833a91ce0f1582ec59045359590d2500a 100644 GIT binary patch literal 335744 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