My Github

随笔分类 -  【005】云原生

CI、CD、流水线、Docker与K8s技术学习
摘要:Docker本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。本篇会介绍几个目前比较常用且流行的容器监控工具,首先我们来看看Docker自带的几个监控子命令:ps、top以及stats,然后是一个功能更强的开源监控工具Weave Scope。后面第二篇我们会学习Prometheus,它是一个更加强大和优秀的开源容器监控方案。 阅读全文
posted @ 2019-10-23 21:45 EdisonZhou 阅读(3650) 评论(0) 推荐(7) 编辑
摘要:Jenkins本文介绍了我目前团队所在使用的持续集成全流程及一些重要插件的使用,虽然还很不完善,但初步解决了我所在团队在集成和发布上的一些痛点。随着后续对K8S的学习的深入,我会逐步引入K8S进行微服务的容器编排以及持续集成的K8S化改造,希望到时再进行分享。 阅读全文
posted @ 2019-09-10 23:10 EdisonZhou 阅读(4054) 评论(2) 推荐(5) 编辑
摘要:K8S本文探索了在K8S中如何进行配置管理,如果需要密文配置,可以使用Secret,如果是一般应用配置,可以使用ConfigMap。虽然Secret和ConfigMap都定义了好几种定义方式,但是我们一般采用YAML配置创建和Volume方式读取,因为Volume方式可以支持动态更新。最后,通过分享圣杰的一篇文章,介绍了如何在ASP.NET Core下使用Configmap的方式,希望对你有帮助! 阅读全文
posted @ 2019-09-05 20:38 EdisonZhou 阅读(1861) 评论(2) 推荐(6) 编辑
摘要:K8S本文探索了K8S的数据管理方案Volume,其中普通类型的Volume如emptyDir和hostPath虽然使用方便,但是可持久性不强,而外部云存储Volume Provider则提供了更好的持久化存储。PV和PVC的模式,更加适合于我们使用在实际环境中,最后还通过了一个MySQL持久化案例演示了如何应用PV和PVC实现持久化。 阅读全文
posted @ 2019-09-02 10:53 EdisonZhou 阅读(1339) 评论(1) 推荐(2) 编辑
摘要:K8SK8S Dashboard是官方的一个基于Web的用户界面,专门用来管理K8S集群,并可展示集群的状态、执行故障排查即管理K8S的各种资源。本文介绍了K8S Dashboard的安装和使用,基于K8S Dashboard我们可以完成日常管理的大部分工作,可以作为命令行工具kubectl的补充。当然,本文介绍的Dashboard的使用只是一些最典型的场景,还有很多的实用功能需要我们去探索和发现。 阅读全文
posted @ 2019-08-25 20:37 EdisonZhou 阅读(1445) 评论(2) 推荐(3) 编辑
摘要:K8S所谓Health Check,就是健康检查,即防微杜渐。K8S是一个编排引擎可以帮助我们快捷地部署容器集群,如果部署上错误的容器导致服务崩溃,通常情况下我们都会通过一些高可用机制进行故障转移。但是,前提条件是有健康检查。K8S自然帮我们考虑到了这个问题,健康检查是K8S的重要特性之一,默认有健康检查机制,此外还可以主动设置一些自定义的健康检查,比如本文介绍的Liveness探测和Readiness探测。 阅读全文
posted @ 2019-08-22 09:02 EdisonZhou 阅读(1487) 评论(4) 推荐(4) 编辑
摘要:K8S为了服务升级过程中提供可持续的不中断的服务,K8S提供了Rolling Update机制,它可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。滚动更新采用渐进的方式逐步替换旧版本Pod,如果更新不如预期,那么也可以通过回滚操作恢复到更新前的状态。滚动更新的最大好处在于零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。 阅读全文
posted @ 2019-08-19 09:06 EdisonZhou 阅读(1554) 评论(5) 推荐(6) 编辑
摘要:K8S前面几篇文章我们都是使用的ClusterIP供集群内部访问,每个Pod都有一个自己的IP地址,那么问题来了:当控制器使用新的Pod替代发生故障的Pod时又或者增加新的副本Pod时,新Pod会分配到新的IP地址,那么想要对外提供服务时,客户端如何找到并访问这个服务?没关系,别抠脑壳了,本文介绍的Service就是解决方案。本文介绍了K8S中Service的基本概念及常用类型,然后通过一个具体的例子演示了如何创建Service和使用NodePort的方式对外提供访问,最后介绍了如何通过DNS的方式访问Service从而实现服务发现的效果。 阅读全文
posted @ 2019-08-16 09:59 EdisonZhou 阅读(2145) 评论(7) 推荐(7) 编辑
摘要:K8S上一篇《3-1 Deployment》中介绍了Deployment,它可以满足我们大部分时候的应用部署(无状态服务类容器),但是针对一些特殊的场景应用例如守护进程或者离线业务,就可以用到今天介绍的DaemonSet和Job。 阅读全文
posted @ 2019-08-14 08:59 EdisonZhou 阅读(2023) 评论(0) 推荐(4) 编辑
摘要:Docker在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-11 23:31 EdisonZhou 阅读(76701) 评论(6) 推荐(41) 编辑
摘要:Docker本文探索了Docker的数据卷及挂载数据到容器的两种主要方式Volumes和Bind Mounts,并介绍基本的使用方式和步骤,通过数据卷我们可以实现Docker的数据持久化,在实际应用中比较广泛。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-09 22:34 EdisonZhou 阅读(86017) 评论(8) 推荐(29) 编辑
摘要:K8S上一篇《部署过程解析与安装Dashboard》中我们了解K8S的部署过程,这一篇我们来了解一下K8S为我们提供的几种应用运行方式:Deployment、DaemonSet与Job,它们是Kubernetes最重要的核心功能提供者。考虑到篇幅和更新速度,我将其分为两篇文章,本篇会主要介绍Deployment,主要参考自CloudMan《每天5分钟玩转Kubernetes》,也推荐大家购买阅读。 阅读全文
posted @ 2019-08-06 23:19 EdisonZhou 阅读(2764) 评论(4) 推荐(7) 编辑
摘要:K8S上一篇《K8S集群部署》中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完成可视化管理。本篇已加入了《.NET Core on K8S学习实践系列文章索引》,更多内容请到索引中查看。后续会探索各种应用的运行方式和更多的内容,当然笔者也是初学,有很多不足之处,请多包涵。 阅读全文
posted @ 2019-08-01 08:58 EdisonZhou 阅读(3830) 评论(5) 推荐(9) 编辑
摘要:K8S自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构、容器、事件总线等,我们的实践是渐进的。当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性)。所以,我将K8S的学习放到了今年的学习列表中,并总结了一些学习笔记和实践总结的文章并汇总在这里,希望对各位园友有帮助! 阅读全文
posted @ 2019-07-31 09:14 EdisonZhou 阅读(18818) 评论(21) 推荐(61) 编辑
摘要: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 阅读(12289) 评论(26) 推荐(50) 编辑
摘要:Docker默认情况下,容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源。Docker提供了一种控制分配多少量的内存、CPU或阻塞I/O给一个容器的方式,即通过在docker run或docker create命令时设置运行时配置的标志。本文探索了Docker的资源限制相关知识,在日常开发中应该给容器设置一个合理的资源限制值,以防出现OOME的情况导致Linux杀掉错误的进程。 阅读全文
posted @ 2019-07-24 09:17 EdisonZhou 阅读(11705) 评论(0) 推荐(3) 编辑
摘要:Registry近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库(DockerHub、Registry及Harbor)的搭建进行介绍,我们可以根据需要选择合适自己的就好。 阅读全文
posted @ 2019-07-14 17:53 EdisonZhou 阅读(60494) 评论(6) 推荐(36) 编辑
摘要:K8SK8S在线实验室提供了一个交互实验环境,现将这部分文章精简并翻译为中文,希望对那些不了解K8S的童鞋有帮助,能够快速玩起来有个感性认识... 阅读全文
posted @ 2019-07-10 11:17 EdisonZhou 阅读(2105) 评论(0) 推荐(3) 编辑
摘要:K8S本文简单的介绍了一下在Docker for Windows环境下,通过kubectl部署一个ASP.NET Core WebAPI到K8S中,并初步使用了K8S的伸缩特性对Deployment进行实例的伸缩,体验了一下所谓的容器的编排。当然,笔者也是初玩,有很多还没学习,这也只是K8S的冰山一角,后续我会学习在Linux下部署K8S的生产级集群环境,深入学习K8S的各种概念并实践,最后会学习阿里云ACK服务(容器服务Kubernetes版)或腾讯云TKE服务(基于Kubernetes的容器服务)去部署和实践公司的生产环境,相信到时也会有很多的分享的! 阅读全文
posted @ 2019-07-04 23:57 EdisonZhou 阅读(5848) 评论(0) 推荐(11) 编辑
摘要:K8S在上一篇《单节点环境搭建》中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S了。但是,在部署之前,我还是把基本的一些概念快速地简单地不求甚解地过一下,目的是为下一篇部署ASP.NET Core API到K8S有一个必要的认知。 阅读全文
posted @ 2019-06-25 23:55 EdisonZhou 阅读(3530) 评论(0) 推荐(5) 编辑