小视频网站源码,网站 整站 抓取,php做一个网站,用struts2框架做的网站引子
在此前的一篇文章中#xff0c;我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序#xff0c;看起来非常不错#xff0c;不是吗#xff1f;那么#xff0c;如果我们希望真正在实际的生产环境去部署和运行这个应用程序#xff0c;应该怎么做呢#xf…引子
在此前的一篇文章中我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序看起来非常不错不是吗那么如果我们希望真正在实际的生产环境去部署和运行这个应用程序应该怎么做呢
通常来说有两种方案可以选择
1. 在目标运行环境可以是本地的服务器也可以是云端申请虚拟机然后启用docker运行这些应用程序所有的细节都可以也必须由你自己控制。
2. 使用云平台的PaaS服务尤其是支持容器化的云平台的PaaS服务这里面就包括了Azure Container Service简称ACS。这种情况下你可以将一些底层的细节工作交给Azure而将你的精力专注在业务应用上面即可。 ACS简介
Azure 容器服务让创建、配置和管理预配置来运行容器化应用程序的虚拟机群集变得更简单。 它使用热门开源计划和业务流程工具的优化配置。 通过此服务用户可使用现有技能或利用不断增加的大量社区专业知识在 Microsoft Azure 上部署和管理基于容器的应用程序。请参考下面的链接了解一些细节包括快速进行动手实验
https://docs.microsoft.com/zh-cn/azure/container-service/ 发布本地的docker镜像
其实不管是你用哪种方案一个前提条件是将你本地的镜像发布到一个公共可以访问的仓库。你可以发布到hub.docker.com也可以发布到自己的仓库。
如果要发布到hub.docker.com请参考下面的步骤
1. 你需要拥有一个Docker ID。请前往https://hub.docker.com/注册。
2.在本地将镜像打上自己的tag。例如我的镜像是mvcapp我的Docker ID是chenxizhang那么要能发布到Docker Hub的话这个镜像需要打上一个Tag名称为chenxizhang/mvcapp。请通过这个命令来完成此操作docker tag mvcapp chenxizhang/mvcapp
你无需担心其实打上Tag只是一个逻辑上面的映射并不会增加本地的存储占用空间。 3.使用docker login 命令 登陆hub.docker.com
4.使用docker push chenxizhang/mvcapp 这样的命令将本地的镜像推送到hub.docker.com 这可能需要一定的时间取决于你的网络配置
如果一切顺利的话你将可以看到如下的结果 备注如果要创建自己的docker 仓库可以了解 Azure Container Registry 这个服务。https://azure.microsoft.com/zh-cn/services/container-registry/这里不做展开。 在Azure Container Service创建 Kubernetes群集 你可以完全参考这篇入门文章https://docs.microsoft.com/zh-cn/azure/container-service/container-service-kubernetes-walkthrough通过几个简单的命令创建Kubernetes群集
1. az group create
2.az acs create
3.az acs kubernetes install-cli 这一步是可选的如果是在azure cloudshell中可以省略
4.az acs kubernetes get-credentials
5.kubectl get nodes 请等待各个节点的Status值变成Ready 在k8s群集中部署ASP.NET Core应用程序 我们已经有了一个公共可以访问的镜像同时也有了一个容器的集群。下面就能看看怎么样让这个应用在k8s群集中部署和运行起来了。
实际上很简单。当然这只是入门级的演示每个命令都还有很多细节可以调整 1.通过kubectl run 命令指定要拉取的镜像并且通过设置一定的参数将其运行起来。k8s的术语将这个过程称为创建一个部署deployment
kubectl run mvcapp --image chenxizhang/mvcapp --envASPNETCORE_URLShttp://:80 2. 将这个部署通过某种方式暴露给外部可以访问
kubectl export deployments mvcapp --port80 --typeLoadBalance 3.查看服务状态直到EXTERNAL-IP有返回具体的值这就表示容器已经创建并且运行起来了。
kubectl get svc 4. 通过这个外部的IP地址就可以访问到你的应用 其他有意思的信息和控制项
如果将应用部署到ACS只是这样的功能当然没有什么可以值得称赞的实际上ACS的最大价值是提供了一个强大的容器运行平台它可以帮助开发人员完成很多细节的工作包括扩展和收缩容器规模等等。下面是一些有意思的信息和控制项
1. 通过kubectl get deploy可以查看关于每个部署的一些细节信息 2.通过kubectl get rs 可以获取到每个部署相关的复制集(replicas) 3.通过kubectl scale 命令可以指定针对某个应用要运行几个容器
kubectl scale --replicas3 rs/mvcapp-1456147153 备注实际上在kubectl run的时候就可以指定要同时运行的容器数量同时如果你愿意也可以设置为autoscale自动扩展
相关文章
老司机实战Windows Server Docker1 初体验之各种填坑老司机实战Windows Server Docker2 docker化现有iis应用的正确姿势老司机实战Windows Server Docker3 单节点Windows Docker服务器简单运维上老司机实战Windows Server Docker4 单节点Windows Docker服务器简单运维下老司机实战Windows Server Docker5 Windows Server Dockerfile葵花宝典.Net大户的选择Windows Container在携程的应用Docker4Dev #6 使用 Windows Container 运行.net应用Docker基础入门及示例LinuxNginxAsp.net Core部署Docker Machine 简介容器,Docker和Azure Container Service基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署Docker-Compose 一键部署Ningx.Net CoreRedis集群DotNetCore跨平台~Dockerfile的解释Docker~从Dockerfile到Container的过程在Docker中运行asp.net core 跨平台应用程序
原文地址http://www.cnblogs.com/chenxizhang/p/7226903.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注