Serverless 入门课
蒲松洋(秦粤)
前百度国际化前端组组长
16754 人已学习
新⼈⾸单¥29
Serverless 入门课
15
15
1.0x
00:00/00:00
登录|注册

09 | 搭建私有Serverless(二):基于K8s的Serverless

你好,我是秦粤。上节课我向你介绍了云原生基金会 CNCF 的重要成员 K8s,它是用于自动部署、扩展和管理容器化应用程序的开源系统。通过实践,我们在本地搭建 K8s,并将“待办任务”Web 服务案例部署到了本地 K8s 上。K8s 这门技术,我推荐你一定要学习下,不管是前端还是后端,因为从目前的发展趋势来看,这门技术必定会越来越重要。
今天这节课我们就继续学习如何搭建私有的 Serverless 环境。具体来说,我们会在上节课部署本地 K8s 的基础上,搭建 Serverless 底座,然后继续安装组件,扩展 K8s 的集群能力,最终让本地 K8s 集群支持 Serverless。

搭建 Serverless 的前提

在开始之前,我们先得清楚一个问题,之前在基础篇讲 Serverless Computing,也就是 FaaS 的时候,也有同学提问到,“微服务、Service Mesh 和 Serverless 到底是什么关系?”
这些概念确实很高频地出现在我们的视野,不过你不要有压力,我在学习 Serverless 的时候也被这些概念所困扰。我们可以先回顾下微服务,我们在用微服务做 BaaS 化时,相信你也发现了微服务中有很多概念和 Serverless 的概念很接近。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了如何在基于K8s的基础上搭建私有的Serverless环境。作者首先回顾了微服务、Service Mesh和Serverless的关系,强调了它们之间的联系。接着详细介绍了Serverless底座的搭建,重点讲解了Service Mesh的应用原理和作用。作者指出,Service Mesh通过无侵入的方式接管网络流量,将微服务中的网络通信逻辑抽离出来,从而减少对微服务SDK的依赖,实现了轻量化的微服务通讯。文章通过图示和具体案例,清晰地展示了Service Mesh的数据面板和控制面板的运作原理,以及其在Serverless网络通讯中的重要作用。整体而言,本文深入浅出地介绍了基于K8s的Serverless搭建过程,为读者提供了清晰的技术指导和实践思路。文章还介绍了如何在Service Mesh的底座上,通过Knative实现Serverless的完整实现,强调了Knative在Istio的基础上加强了流量管控、灰度发布能力、路由控制等功能,为Serverless应用提供了更全面的支持。文章内容丰富,涵盖了Service Mesh、Istio和Knative等关键技术,为读者提供了搭建私有Serverless环境的全面指南。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Serverless 入门课》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 我来也
    折腾了一番,在老师的帮助下终于调通了. 在此给有需要的小伙伴一个参考: 1. 需要新建一个OTS表user 主键:id 主键类型:INTEGER 顺带,需要插入一条记录,比如: 主键id: 1 属性列名称: users 属性列类型:字符串 属性值: "" 2. 文中的'然后修改项目 k8s-myapp 目录中的 YAML 文件,改成你自己仓库中的 URI。' 可能是`knative-myapp` 代码仓库中后来重命名为了 knative-myapp ---------------------------- 之前在阿里云k8s上看到了"应用目录""服务网格"选项,后来也逐步的尝试了helm,istio. 虽然之前也看到了"Knative(公测)"选项,但一直未尝试. 直到看了老师这篇文章,才知道原来是做这个的.正好这次把它用起来. 话说使用了这个后,k8s的节点负载就开始报警. 原来istio/knative自身就有些系统的pod需要创建,额外每个服务还会多2个sidecar. 导致以下集群中就多了很多pod. 看来老师文中提到的4CPU8G内存还是有必要的. 目前来看,感觉Knative安装还是没有istio方便. 我是跟着另外一个专栏,在集群中安装的Istio 1.5.2版本. 想着阿里云上的Knative才0.11.0版本,而官方已经到了1.14.0版本. 本打算自己按着官方文档安装一番,结果很多镜像拉取不了.最后还是放弃了. 后来在安装阿里云自带的Knative时走了些弯路,花了不少时间. 主要是卸载Knative不干净,导致重装时怎么也装不成功,需要手动删除k8s上的一些资源才行.

    作者回复: 每次看到你认真的执行课后作业,我都想给你点赞~! Serverless和K8s,都是要多实践体验,才能有更好的掌握。

    2020-05-07
    5
  • 程序员二师兄
    了解到云原生,三驾马车:K8s、Service Mesh、Serverless。还有其他的知识点:lstio、docker、Knative

    作者回复: docker容器其实是基础。Istio就是ServiceMesh的一种实现。Knative是Serverless的一种实现。

    2020-05-06
    2
    4
  • 小黑小小黑
    阿里的函数计算是基于knative来实现的吗?

    作者回复: 据我所知不是基于Knatvie实现的,阿里巴巴早年的中间件沉淀很深厚,不过没有开源而已。另外,其实不同的语言的FaaS实现方案是不同的。

    2020-06-28
    1
  • 邵萍
    kiali控制台的用户名和密码是什么?登不进去呀

    作者回复: 默认的应该是admin/admin

    2020-12-25
  • 小谢同学
    请问下作者生产环节当中的serverless架构有哪些实践可以优化faas的这个请求联路,因为经过虚拟化、容器、overlay好多层之后网络性能有很多损耗,现在有些企业尝试cilium+istio的方式来尽量减少过多的用户与内核态切换

    作者回复: 目前底层的这些性能损耗云服务使用者不用担心,FaaS还没有到如此极致性能压榨阶段,目前Google做的最好,物理机的CPU利用率也只是在50%。 我们只看FaaS的响应时间能否满足业务场景,如果对延迟敏感的应用,还是建议采用CaaS方案。 istio也不是减少用户与内核态切换,istio是给Pod里面加辅助容器接管网络通讯,让应用本身的容器轻量化,单一化。

    2020-07-04
  • 小谢同学
    请问下为何不用istio和k8s hpa的原生功能来做服务发现、负载均衡、版本管理等实现呢?感觉knative有些多余啊

    作者回复: Knative的底层是建立的istio上的,当然也可以不建立。Knative主要是自动化维护应用生命周期:文稿中拓扑图红色的模块,不仅仅是微服务。

    2020-07-01
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部