摘要:K8S自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构、容器、事件总线等,我们的实践是渐进的。当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性)。所以,我将K8S的学习放到了今年的学习列表中,并总结了一些学习笔记和实践总结的文章并汇总在这里,希望对各位园友有帮助! 阅读全文
posted @ 2019-07-31 09:14 EdisonZhou 阅读 (1462) 评论 (5) 编辑
摘要:DNC今年从原来的Team里面被抽出来加入了新的Team,开始使用做Java微服务的开发工作,接触了Spring Boot与Spring Cloud等技术,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET技术背景,想要探索一下在.NET平台下的微服务架构的可行性。幸运的是,在.NET Core首届在线峰会上,看到了很多前辈的分享,也增强了自己要摸索和实践.NET Core微服务架构的决心,因此想要写下这个系列的文章。 阅读全文
posted @ 2018-10-19 18:31 EdisonZhou 阅读 (12416) 评论 (28) 编辑
摘要:dotNet最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位园友分享。 阅读全文
posted @ 2015-09-18 23:56 EdisonZhou 阅读 (22661) 评论 (55) 编辑
摘要:平凡的世界趁着中秋节期间,在从成都回家乡以及从家乡回成都的火车途中,一口气将最近一直在看却未看完的长篇小说《平凡的世界》阅读完了,心中很是感慨,即被书中各个人物的命运所感染,又对路遥六年写作删改数次所敬佩。想到我们程序员中有很多还不知道这部茅盾文学奖作品,我想有必要写个读后感给大家介绍介绍,虽然只是我粗略阅读后的草草文字,但也希望能够表达我对此书的敬意! 阅读全文
posted @ 2019-09-16 23:43 EdisonZhou 阅读 (31) 评论 (2) 编辑
摘要:Jenkins本文介绍了我目前团队所在使用的持续集成全流程及一些重要插件的使用,虽然还很不完善,但初步解决了我所在团队在集成和发布上的一些痛点。随着后续对K8S的学习的深入,我会逐步引入K8S进行微服务的容器编排以及持续集成的K8S化改造,希望到时再进行分享。 阅读全文
posted @ 2019-09-10 23:10 EdisonZhou 阅读 (91) 评论 (0) 编辑
摘要:K8S本文探索了在K8S中如何进行配置管理,如果需要密文配置,可以使用Secret,如果是一般应用配置,可以使用ConfigMap。虽然Secret和ConfigMap都定义了好几种定义方式,但是我们一般采用YAML配置创建和Volume方式读取,因为Volume方式可以支持动态更新。最后,通过分享圣杰的一篇文章,介绍了如何在ASP.NET Core下使用Configmap的方式,希望对你有帮助! 阅读全文
posted @ 2019-09-05 20:38 EdisonZhou 阅读 (226) 评论 (1) 编辑
摘要:K8S本文探索了K8S的数据管理方案Volume,其中普通类型的Volume如emptyDir和hostPath虽然使用方便,但是可持久性不强,而外部云存储Volume Provider则提供了更好的持久化存储。PV和PVC的模式,更加适合于我们使用在实际环境中,最后还通过了一个MySQL持久化案例演示了如何应用PV和PVC实现持久化。 阅读全文
posted @ 2019-09-02 10:53 EdisonZhou 阅读 (59) 评论 (0) 编辑
摘要:K8SK8S Dashboard是官方的一个基于Web的用户界面,专门用来管理K8S集群,并可展示集群的状态、执行故障排查即管理K8S的各种资源。本文介绍了K8S Dashboard的安装和使用,基于K8S Dashboard我们可以完成日常管理的大部分工作,可以作为命令行工具kubectl的补充。当然,本文介绍的Dashboard的使用只是一些最典型的场景,还有很多的实用功能需要我们去探索和发现。 阅读全文
posted @ 2019-08-25 20:37 EdisonZhou 阅读 (299) 评论 (0) 编辑
摘要:K8S所谓Health Check,就是健康检查,即防微杜渐。K8S是一个编排引擎可以帮助我们快捷地部署容器集群,如果部署上错误的容器导致服务崩溃,通常情况下我们都会通过一些高可用机制进行故障转移。但是,前提条件是有健康检查。K8S自然帮我们考虑到了这个问题,健康检查是K8S的重要特性之一,默认有健康检查机制,此外还可以主动设置一些自定义的健康检查,比如本文介绍的Liveness探测和Readiness探测。 阅读全文
posted @ 2019-08-22 09:02 EdisonZhou 阅读 (102) 评论 (2) 编辑
摘要:K8S为了服务升级过程中提供可持续的不中断的服务,K8S提供了Rolling Update机制,它可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。滚动更新采用渐进的方式逐步替换旧版本Pod,如果更新不如预期,那么也可以通过回滚操作恢复到更新前的状态。滚动更新的最大好处在于零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。 阅读全文
posted @ 2019-08-19 09:06 EdisonZhou 阅读 (288) 评论 (3) 编辑
摘要:K8S前面几篇文章我们都是使用的ClusterIP供集群内部访问,每个Pod都有一个自己的IP地址,那么问题来了:当控制器使用新的Pod替代发生故障的Pod时又或者增加新的副本Pod时,新Pod会分配到新的IP地址,那么想要对外提供服务时,客户端如何找到并访问这个服务?没关系,别抠脑壳了,本文介绍的Service就是解决方案。本文介绍了K8S中Service的基本概念及常用类型,然后通过一个具体的例子演示了如何创建Service和使用NodePort的方式对外提供访问,最后介绍了如何通过DNS的方式访问Service从而实现服务发现的效果。 阅读全文
posted @ 2019-08-16 09:59 EdisonZhou 阅读 (396) 评论 (4) 编辑
摘要:K8S上一篇《3-1 Deployment》中介绍了Deployment,它可以满足我们大部分时候的应用部署(无状态服务类容器),但是针对一些特殊的场景应用例如守护进程或者离线业务,就可以用到今天介绍的DaemonSet和Job。 阅读全文
posted @ 2019-08-14 08:59 EdisonZhou 阅读 (371) 评论 (0) 编辑
摘要:Docker在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-11 23:31 EdisonZhou 阅读 (188) 评论 (0) 编辑
摘要:Docker本文探索了Docker的数据卷及挂载数据到容器的两种主要方式Volumes和Bind Mounts,并介绍基本的使用方式和步骤,通过数据卷我们可以实现Docker的数据持久化,在实际应用中比较广泛。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-09 22:34 EdisonZhou 阅读 (195) 评论 (0) 编辑
摘要:人人都是产品经理由于目前团队没有配备产品经理,所以我和测试、UI设计组成了临时的产品小组,负责和业务部门的用户沟通需求,为了提高自己的产品思维,我在喜马拉雅上听了几遍《人人都是产品经理》的解读,现将笔记整理出来分享与各位园友。另外,在阅读《企业IT架构转型之道》时了解到,在企业数字化转型浪潮中,中台架构被推上舞台,共享服务中心的理念被广泛应用,而传统IT信息部门的架构师也在朝着业务架构师转变。因此,懂业务会成为IT工程师们的下一步必修课,这需要一个思维的转变也将是一个漫长的过程。 阅读全文
posted @ 2019-08-08 22:34 EdisonZhou 阅读 (166) 评论 (0) 编辑
摘要:K8S上一篇《部署过程解析与安装Dashboard》中我们了解K8S的部署过程,这一篇我们来了解一下K8S为我们提供的几种应用运行方式:Deployment、DaemonSet与Job,它们是Kubernetes最重要的核心功能提供者。考虑到篇幅和更新速度,我将其分为两篇文章,本篇会主要介绍Deployment,主要参考自CloudMan《每天5分钟玩转Kubernetes》,也推荐大家购买阅读。 阅读全文
posted @ 2019-08-06 23:19 EdisonZhou 阅读 (434) 评论 (1) 编辑
摘要:K8S上一篇《K8S集群部署》中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完成可视化管理。本篇已加入了《.NET Core on K8S学习实践系列文章索引》,更多内容请到索引中查看。后续会探索各种应用的运行方式和更多的内容,当然笔者也是初学,有很多不足之处,请多包涵。 阅读全文
posted @ 2019-08-01 08:58 EdisonZhou 阅读 (614) 评论 (2) 编辑
摘要:K8S自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构、容器、事件总线等,我们的实践是渐进的。当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性)。所以,我将K8S的学习放到了今年的学习列表中,并总结了一些学习笔记和实践总结的文章并汇总在这里,希望对各位园友有帮助! 阅读全文
posted @ 2019-07-31 09:14 EdisonZhou 阅读 (1462) 评论 (5) 编辑
摘要:K8S在上一个小系列文章《ASP.NET Core on K8S学习初探》中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NET Core WebAPI项目部署到了K8S,把玩了一下快速部署和实例伸缩。这个系列开始,会继续学习K8S以及在Linux上搭建集群来深入把玩。本篇会回顾一下K8S的基本概念以及架构组成,然后会通过Kubeadm快速地搭建一个K8S集群供后续学习把玩之用。 阅读全文
posted @ 2019-07-31 08:56 EdisonZhou 阅读 (1726) 评论 (12) 编辑
摘要:Docker默认情况下,容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源。Docker提供了一种控制分配多少量的内存、CPU或阻塞I/O给一个容器的方式,即通过在docker run或docker create命令时设置运行时配置的标志。本文探索了Docker的资源限制相关知识,在日常开发中应该给容器设置一个合理的资源限制值,以防出现OOME的情况导致Linux杀掉错误的进程。 阅读全文
posted @ 2019-07-24 09:17 EdisonZhou 阅读 (253) 评论 (0) 编辑
摘要:唐诗50讲学习笔记所谓隐逸,这是传统知识分子都有可能要面对的一个决策,是“出”还是“处”,出就是做官,处就是隐逸,这个选择往往是深思熟虑且慎之又慎。熊逸老师在这一篇里选择了三首诗,涵盖了真正隐式的生活描述、事先张扬的逃离抒情以及大隐小隐之间的平衡境界。 阅读全文
posted @ 2019-07-22 22:43 EdisonZhou 阅读 (111) 评论 (0) 编辑
摘要:workflow-coreWorkflow-Core是一个适合.NET Core的优秀的轻量级工作流引擎,对于小型工作流和责任链类型的需求开发很适合,可以节约大量时间避免重复造轮子,将时间主要花在业务逻辑上面。当然,这里演示的示例只是众多功能特性中的一小部分,我只是选取了我用到的部分而已,大家有兴趣的话可以去GitHub上先给个star再仔细研究其wiki文档,应用到自己的项目中去。 阅读全文
posted @ 2019-07-16 12:42 EdisonZhou 阅读 (1093) 评论 (4) 编辑
摘要:Registry近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库(DockerHub、Registry及Harbor)的搭建进行介绍,我们可以根据需要选择合适自己的就好。 阅读全文
posted @ 2019-07-14 17:53 EdisonZhou 阅读 (1798) 评论 (4) 编辑