本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。至此,我们学习了如何将应用打包为容器,创建容器副本集以及使用Ingress控制器将访问负载均衡至各服务。可以使用所有这些对象(Pod、副本集和服务)来构建应用的单个实例。但这些对于常规管理应用新版本的每日或每周发布帮助甚少。Pod和副本集本来是与不发生修改的具体实例镜像相绑定的。部……继续阅读 » Alan 2年前 (2023-03-18) 1079浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。我们已经讲解了如何以Pod运行单个容器,但这些Pod基本上是一次性的单体。大部分时候我们会想要在某个时间运行一个容器的多个副本,原因有:冗余性:通过运行多实例实现容错。可伸缩性:通过运行多实例实现更高的请求处理容量。分片(Sharding):不同的副本可以并行处理运算的不同部分……继续阅读 » Alan 2年前 (2023-03-04) 942浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。一个应用很重要的部分是网络流量的来来回回。服务发现一章中提到,Kubernetes拥有一些能力可让服务暴露到集群之外。对于很多用户的简单用例,这种能力足够用了。但服务对象在OSI模型的第4层操作。也就是说它只转发TCP和UDP连接,不会深入到连接内部。因此,在集群上托管多个应用使用……继续阅读 » Alan 2年前 (2023-02-08) 1816浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。Kubernetes是一套非常动态的系统。该系统涉及到将Pod放到节点上、保障其启动运行以及在需要时重新进行调度。有根据负载自动调节Pod数量的方式(比如横向Pod自动扩展,参见副本集一章中的自动扩展副本集)。系统API驱动的属性鼓励大家创建更高级的自动化。Kubernetes的动……继续阅读 » Alan 2年前 (2023-01-04) 1112浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。Kubernetes可随着应用大小和复杂度的扩展而扩展。标签和注解是Kubernetes中的基本概念,可以让人类的想法对应用进行分组。我们可以组织、标记以及交叉索引所有表示应用中分组的资源。标签是打在Kubernetes对象比如Pod和副本集上的键值对。可以是任意名称,对于关联识别……继续阅读 » Alan 2年前 (2022-12-06) 1707浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。在之前的文章中,我们讨论过如何将应用容器化,但现实中对容器化应用的部署,常常需要将多个应用放到独立的单元、调度到同一台机器。类比示例参见下图,包含伺服web请求的容器和与远程Git仓库同步的文件系统容器。图5-1:两个容器及共享文件系统的示例Pod一开始可能会想将 web ……继续阅读 » Alan 2年前 (2022-12-01) 1179浏览 0评论0个赞
2022年即将过去,笔者也经历了诸多迷茫,上半年魔都长期的静默从某种程度上激发了人性中懒惰的一面,导致很多计划直接搁置。云原生早已不是一种选项,而成为了基础设施,所以就拿它下手吧。我没有为这个系列制定什么时间表,开始任何事情最好的时间永远是当下,再精确的时间进度如果无法执行也毫无意义。鸽了那么多次,这次的计划能完成吗?我不知道,或许本没有终点,人的常态就是……继续阅读 » Alan 2年前 (2022-11-26) 4455浏览 0评论6个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。kubectl命令行工具非常强大,在接下来的文章中,我们会使用它来创建对象并与Kubernetes API进行交互。但在此之前,我们先过一遍可用于所有Kubernetes对象的基础kubectl命令。命名空间Kubernetes使用命名空间来组织集群中的对象。可以把命名空间看成是……继续阅读 » Alan 2年前 (2022-11-26) 1195浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。上一篇中我们已成功构建了应用容器,下一步学习如何将其转化为完全可信赖、可伸缩的分布式系统。实现这一目标,需要用到Kubernetes集群。现在大部分公有云都提供云端Kubernetes服务,只需几条命令就可轻松创建一个集群。对于Kubernetes新手强烈推荐使用这种方法。即便最终你……继续阅读 » Alan 2年前 (2022-11-24) 1322浏览 0评论0个赞
本文来自正在规划的Go语言&云原生自我提升系列,欢迎关注后续文章。Kubernetes是用于创建、部署和管理分发应用的平台。这些应用大小、形态各异,但最终都由在具体机器上运行的一个或多个程序组成。这些应用会接收输入、操作数据、返回结果。在构建分布式系统之前,我们要先考虑构建包含这些应用程序的容器镜像以及组成我们分布式系统的零件。应用程序通常由编程……继续阅读 » Alan 2年前 (2022-11-09) 1276浏览 0评论0个赞