[设为首页] [加入收藏]
王中王开奖记录,香港马会开奖结果直播,338822开奖结果,www.4044222.com,www.858448i.com
网站首页 王中王开奖记录 香港马会开奖结果直播 338822开奖结果 www.4044222.com www.858448i.com
您的当前位置:主页 > www.4044222.com >  
Core应用程序容器化、持续集成与Kubernetes集群部署(三
2019-08-15 18:27    来源: 未知      点击:

  原标题:ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三

  强烈建议在阅读本文前,先对上两篇文章做一个大致的了解,然后阅读tasklist源码库,因为tasklist源码库展示的是一个完整的案例。

  好吧,既然介绍Kubernetes部署,就离不开这两个概念:Kubernetes与Azure Kubernetes Service。Kubernetes(k8s)是Google开源的容器编排集群系统,可以让一个或一组容器运行在集群环境,从而使基于容器的应用程序获得可伸缩与高可用的特性。Kubernetes使用Go语言实现,它有一个实验性的版本,叫Minikube。Minikube是一个只包含一个节点的Kubernetes集群,可以在Windows、Linux等多平台中部署Minikube,部署过程也相对简单,因此,如果是用于学习或者一些简单的实验,可以选择Minikube。在Kubernetes集群运行起来后,就可以使用Kubectl命令行客户端对集群进行管理。

  如果是自己部署生产级别的Kubernetes集群的话,配置过程会相对比较复杂,此外,由于Kubernetes是Google的项目,有很多配置部署的脚本以及二进制文件都是使用Google的CDN进行分发,国内是无法访问这些资源的,所以,我还是建议大家使用托管的Kubernetes服务,比如Azure的Azure Kubernetes Service(AKS),这样可以省去繁杂的配置过程,而且还可以根据自己的需要来决定Kubernetes集群的体量,非常方便。

  据我所知,目前Azure中国区版没有官方的AKS服务,网上也有一些资料,帮助读者在Azure中国区版中部署Kubernetes集群,但是过程也相对比较繁杂。在这里,我会使用Azure国际版进行介绍。

  在这个页面中还可以选择针对认证、网络、监控等方面的高级设置,我就不一一介绍了,官方网站的文档中都有详细说明。现在直接点击Review + create按钮,在Azure完成了对配置信息的校验之后,就可以点击Create按钮创建集群了。

  创建成功后,就可以在Azure的站点中找到刚刚创建好的Kubernetes集群了。在集群的管理页面上,点击View Kubernetes dashboard链接,此时会打开一个边窗,列出连接Kubernetes集群的操作步骤。接下来,按照步骤一步步地安装kubectl命令行,并通过Azure的命令行打开Kubernetes的仪表盘。

  目前除了kubernetes服务之外,没有部署任何其它的组件。除了使用Dashboard,我们也可以使用kubectl命令行工具,比如,通过以下命令查看已经部署的服务:

  接下来,让我们一起看看如何将由Azure DevOps构建好的tasklist应用程序容器部署到这个Kubernetes集群中。

  在Kubernetes上部署容器应用,需要使用YAML格式的配置文件,然后使用kubectl apply命令实现部署。通过阅读官方网站的文档,你会发现其实编写这些YAML文件还是有一定工作量的。对于tasklist案例,我使用Google官方的Kompose命令行工具,它可以很方便地将Docker Compose文件转为Kubernetes的部署文件。官方的解释就是:Kubernetes + Compose = Kompose。不过可惜的是,Kompose的网站在国内是打不开的,不过可以通过Kompose的代码库来了解这个工具。tasklist所使用的k8s.deployment.yml文件,正是通过Kompose生成的,不过我也基于自己的需要进行了一些简单的定制。

  回到All pipelines的配置界面,首先为我们的部署任务起个名字,然后,点击Add an artifact选项,将之前持续集成的输出结果文件,也就是用于k8s部署的YAML文件作为Release Pipeline的输入,添加到Artifacts中。在Add an artifact界面中,我们选择Build类型,表示要使用构建的输出结果,然后,Source选择Build Pipeline的名称,也就是tasklist-demo,其它选项可以默认。当然,你也可以根据自己项目的需求对这些默认的设置进行更改,不过,在此也就不多介绍了。一切设置好之后,点击Add按钮,将Artifact加入Release Pipeline。

  在Create a new release页面中,指定所需部署的编译版本,然后填入一些描述信息后,点击Create按钮,即可手工触发部署。

  点击Logs按钮,可以查看详细的部署信息。事实上,通过编辑K8S Deployment stage的设置,还可以选择部署执行的触发条件,比如,是仅通过手工触发,还是在每次release之后触发,还可以设置触发时间以及通过Pull Request创建触发等,限于文章篇幅,这里就不多介绍了。对这部分有需求的读者请根据自己的实际情况自行设置。

  现在回到命令行,通过kubectl get po命令,可以看到,我们的容器已经正常运行:

  在上面的服务列表中可以看到,tasklist-web服务的类型是LoadBalancer,也就是这个服务会有一个公网可访问的IP地址。这个IP地址就是104.211.50.78。现在打开浏览器,直接访问这个IP地址,可以看到,我们的tasklist已经成功运行在Azure Kubernetes集群中:

  还可以使用下面的命令对tasklist的Core应用程序(也就是后端)进行伸缩:

  本文是有关Core应用程序容器化以及Azure DevOps持续集成、持续部署和Azure Kubernetes Service部署相关内容介绍的最后一篇文章。在这个系列中,我们首先介绍了ASP.NET Core应用程序容器化所需注意的要点,然后介绍了基于容器开发与部署的CI/CD流程,之后包含了有关在Azure DevOps中创建持续集成和持续部署任务的内容,然后是在Azure Kubernetes集群中部署我们的应用程序。相关内容还是比较多的,因此,也无法在这个系列文章中一一介绍完。对于这方面技术感兴趣的读者,我仍然推荐阅读tasklist的源代码库,因为它是一个完整的案例,它涵盖了一个ASP.NET Core应用程序容器化之路的各个方面。在今后的文章中,我还会对DevOps以及代码库分支策略等内容进行介绍,欢迎广大读者阅读讨论。

 推荐新闻
 酷图热图
Core中实现单体程序的事件发布订阅 - LamondLu - 博客园
Core中实现单体程序的
asp网页打开直接被下载
asp网页打开直接被下
如何下载到网站的asp文件
如何下载到网站的asp
网上下载了asp源码怎么样才能运行
网上下载了asp源码怎
 热点文章
Copyright © 2002-2011 DEDECMS. 织梦科技 版权所有 Power by DedeCms