作者 李泽辉_cef1 关注

2017.04.22 16:18* 字数 2734 

一.概念

jexus:一款国产的运行在linux下的基于mono的高性能web服务器。国内有诸多中大型网站使用jexus作为web服务程序部署在linux平台上,jexus不开源,完全免费,可以随意使用。官网:https://www.jexus.org  成功案例:https://www.jexus.org/Examples.htm  jexus作者:宇内流云

阿里云容器服务:阿里将自己的负载均衡,云服务器,nas文件存储,docker,网络安全,云监控等一览子产品做了深度整合。实现了高性能、可伸缩的容器应用管理服务,可以把一组云服务器做成群集,通过 Docker 容器来进行应用生命周期管理。阿里云容器服务极大简化了对网站发布,资源伸缩的工作量。

二.jexus网站在云容器服务部署的步骤

1.注册阿里云账号,开通阿里云容器服务 https://cs.console.aliyun.com

2.开通阿里云的文件存储服务 https://nas.console.aliyun.com 创建一个文件系统

添加挂载点,在管理界面里面取得 文件系统ID 和 挂载地址,供群集统一挂载

3.选择集群节点,创建集群,服务器节点,负载均衡。

创建集群的同时,会提示创建负载均衡和节点。  其中节点可以是实时创建一个或者多个,也可以把现有的ecs服务器加入节点。不过一定要注意,现有ecs云服务器加入群集,原ecs服务器系统盘会被替换掉,也就是说整个被干掉。新创建的节点只能是按量收费的,加入现有ecs服务器,可以是包月包年的,根据情况决定如何处理。

负载均衡可以自动创建,也可以之后在绑定到群集。 负载均衡负责任务的调度,按指定算法把工作量分摊到不同节点的容器中服务。容器中的应用创建后,会自动把涉及到的节点添加到负载均衡的后台服务器清单中去。负载均衡还可以绑定证书,在负载均衡中实现网站的ssl单向或者双向加密认证。

在群集左边菜单的“”数据卷“”中,点击右边的创建,创建一个供群集内所有节点使用的数据卷,容器是无状态的,不适宜在容器内保存任何数据,一旦容器重启,所有数据都会丢失。这个数据卷用以存放网站的程序,资源,配置。一个数据卷同时被所有节点使用,这样,更新网站的程序和内容,只需要做一次。数据卷名随意填写,文件系统ID和挂载点域名在上一步骤获得。

完成操作后,telnet到集群的任意服务器节点下可以看到nas文件系统挂载到了节点主机的/mnt路径下.启动容器时,我们就把nas的文件卷从宿主操作系统映射到容器中去。

4.在群集的任意一个节点中,拉取基础的jexus镜像,对镜像内的配置做定制,commit镜像,push到自己的镜像仓库

2017年4月,jexus作者制作了一个镜像,我把这个镜像上传到了阿里云的镜像仓库。镜像地址 :registry.cn-shenzhen.aliyuncs.com/ddtimer/jexusv1:latest  该映像基于ubuntu系统

包括: 1,Jexus 5.8.2.11独立版 2,vim curl wget命令 3,ssh服务 4,asp.net System.Drawing 所需要的图形库 不支持ssh,web端口80,ssh端口22 默认网站有url安全检查和jexus的文件日志

我对这个镜像做了修改后 commit后提交到了镜像仓库,地址 registry.cn-shenzhen.aliyuncs.com/ddtimer/jexusv1:ddjexus

主要做了如下修改

1.网站默认端口改成8080    2.cpu数量改成auto     3网站配置改为不处理url安全监测(如果使用负载均衡,需要关掉这个选项,不然有可能会被误认为病毒攻击) 4.jexus的日志功能关闭(后台用log4net记录更好) 4.默认网站的文件路径改为 /var/ddhomework(默认路径是虚拟的,实际不存在,在运行容器时将绑定到宿主节点映射的nas卷)

熟悉dockr的同学可以下载latest版本的镜像,自己做配置修改,然后commit在push到自己的容器仓库(切记这个版本的jexus使用的是80端口,我的修改版使用的是8080端口)

如果不熟悉docker的同学,可以直接用ddjexus版本的镜像,把网站文件丢去nas文件系统,在容器应用页面设置好nas对应,就可以直接部署好.net网站到容器上了。 后面的容器应用和服务的创建都是根据这个镜像版本来描述。

5.容器应用和服务的创建

我的理解,阿里云容器的应用当于根据镜像创建了一个包含容器各种配置信息的蓝本,容器服务就是群集属性的,根据蓝本部署调度到各个ecs服务器节点上。

创建应用会弹出一个应用基本消息,随意填,然后选择使用镜像创建

下一步,按选择镜像,弹出个镜像搜索窗口

,输入筛选条件,jexusv1,选择jexusv1的镜像

版本选择处选择我修改过的ddjexus版本,最后结果如下图 。

容器数量个节点数目有关,1个节点选择一个容器即可。如果有多个节点,只选择一个容器,那么容器只会部署在其中一台服务器节点。

EntryPoint 输入  /usr/bin/bootstrap.sh  这个镜像中包括的初始化脚本,容器创建是会执行,启动jexus和ssh服务器之类

端口映射处,把ecs节点的端口映射到容器的端口 主要就是ssh服务器和jexus服务的端口映射(如果是使用jexus作业发布的镜像,那么容器端口应该使用80而不是8080)

负载均衡和数据卷的设置

负载均衡路由配置的容器端口,填写容器jexus的端口,右边填写负载均衡名字和前段的端口号  我这里写的例子是 容器jexus服务器使用8080端口,负载均衡前段使用80端口访问,转发到负载均衡名字为 SLB_name的后端服务器。 其中负载均衡需要提前设置好80端口的监听并记录下负载均衡的名字或者id,在这里填入替换掉 SLB_name

数据卷,主机路径和数据卷名填写第三步操作取得的信息,将nas文件系统挂载到节点的路径填上,容器路径如果使用我的定制镜像,必须输入/var/ddhomework . 这个路径和镜像中jexus的site目录对应。这样只要通过一台宿主机更新nas文件,所有部署的jexus容器都能访问到。

阿里云的负载均衡在创建群集是会自动创建。也可以在群集管理里面对应到现有的负载均衡,负载均衡设置中可以设置ssl证书,这样可以在容器内使用常规http访问,在负载均衡层使用https对外,减少服务的加密认证的压力。

其他选项设置,可以设置容器的伸缩过着。如果是一个容器对应一个ecs服务器,那么应该在集群管理的节点伸缩中,按相同标准设置。

平滑升级选线,需要开启负载均衡的健康检查,经过几次测试,jexus服务器在阿里的负载均衡开启健康检查后,会导致服务器卡死不响应的问题。据宇内流云说是jexus有病毒防护机制,健康检查会导致误杀。关闭url安全检查可以解决,不过经过我测试,没有效果,如果要开启负载均衡的健康检查还需要作者做一些针对性的改动才行。在这里@下宇内流云大神

所有设置完成后,按创建,将会创建一个应用信息,并且根据应用定义的容器数量和容器节点的数量在各个ecs节点启动服务。 启动了服务的节点,会被自动加入到负载均衡的后端服务器列表。

如果在nas卷中已经上传了网站文件,那么就可以尝试通过负载均衡的地址访问网页了。

由于所有的容器都是访问同一个nas文件卷,当我们更新网站内容是,只需要通过任意一个节点,上传更新文件即可。当后台有几十台服务器是,一台一台去更新和通过nas一次性发布,工作量完全不在一个层次了。

5.容器集群的缩容和扩容

1.可以手动扩张,在集群管理里面手动增加节点数量

手动读节点扩容后,需要在服务中修改容器数量,如果容器和节点是一对一关系,容器数量要修改为和几点一致的数量。

2.设置自动的缩容扩容策略,在cpu或者内存到达一定使用率时,触发执行。

在群集-管理-节点伸缩中处理,如下图

以上就是这段时间对后台服务器实行容器集群改造的一些经验总结,这些经验是否正确,是否是最佳时间,还需要实践来检测。也期待更熟悉的同行交流经验,斧正谬错。

希望这篇总结文章能对希望在阿里云容器运行jexus服务器的朋友提供一些帮助。

转载于:https://www.cnblogs.com/blazings/p/6748319.html

一步一步使用阿里云容器服务部署基于.NET的JEXUS网站 (转)相关推荐

  1. 在阿里云容器服务上基于Istio实现出口Egress流量管理

    概述 在前面的文章中,介绍了在阿里云容器服务上基于Istio如何实现东西向流量管理. 回顾下引用的示例: 该样例应用由四个单独的微服务构成,用来演示多种 Istio 特性.该应用模仿某银行金融产品的一 ...

  2. 在阿里云容器服务上,轻松搭建Concourse CI

    Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD.阿里云也推出了CI工具CodePipeline,开箱即用,推荐试用. C ...

  3. 如何使用阿里云容器服务保障容器的内存资源质量

    作者:韩柔刚(申信) 背景 云原生场景中,应用程序通常以容器的形式部署和分配物理资源.以 Kubernetes 集群为例,应用工作负载以 Pod 声明了资源的 Request/Limit,Kubern ...

  4. 连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开

    连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开 https://www.toutiao.com/i6950935574450684423/?tt_from=weixin&am ...

  5. 使用阿里云容器服务Jenkins 2.0实现持续集成之the tag you want篇(updated on 2017.09.06)...

    最近收到很多有关于持续集成场景中image tag的反馈,例如,每次image build的时候希望"Jenkins"能够给image标上不一样的tag,部署应用到阿里云容器服务希 ...

  6. 阿里云容器服务差异化 SLO 混部技术实践

    背景介绍 阿里巴巴在"差异化 SLO 混合部署"上已经有了多年的实践经验,目前已达到业界领先水平.所谓"差异化 SLO",就是将不同类型的工作负载混合运行在同一 ...

  7. 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署

    作者:淮右.王飞.瑜佳 记者: 阿里云原生的读者朋友们大家好,今天应广大感兴趣朋友们的强烈要求,我们邀请来了「阿里云容器服务 ACK 发行版」做客我们的栏目,为大家讲述它的身世之谜,以及它是如何和伙伴 ...

  8. 阿里云容器服务多项重磅发布:高效智能、安全无界的新一代平台

    在云原生带来的云计算未来趋势下,容器已经成为用户使用云的新界面. 阿里云容器产品发布近 7 年以来,已成长发展为企业的云原生操作系统,技术和服务能力日趋成熟,但创新从未止步.日前,阿里云研究员 &am ...

  9. OneAPM CI与阿里云容器服务集成

    应用监控是在生产环境使用Docker的重要条件.阿里云容器服务不但提供了核心的容器和宿主机监控能力,而且支持客户集成自己的监控解决方案,这样可以让容器服务平台融合到自己企业的IT管控之下.今天我们会以 ...

最新文章

  1. vim中执行shell命令小结
  2. 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
  3. MongoDB安装步骤
  4. win7下反汇编程序程序基址改变问题
  5. JAVA程序设计----IO流基础(上)
  6. java jar 目录_将Java类路径中的所有jar包括在一个目录中
  7. 湖南工程学院+c语言程序设计人事档案管理系统,程序设计人事档案管理系统.doc...
  8. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库02 ——使用ambari-server安装HDP...
  9. Java程序编程题作业-练习-Java编程题_一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第 10 次落地时
  10. 模版之家全站静态模板免费下载
  11. 电机与拖动基础--第二章第一节
  12. Flash:形变动画的制作
  13. join and list删除 and set集合 and 深浅拷贝
  14. b2b2c电商平台系统
  15. 厄米高斯模式与拉盖尔高斯模式
  16. linux 拼图游戏,2020经典宝石拼图
  17. Linux用户标识符UID与GID和用户账号
  18. “三天打鱼,两天晒网”问题
  19. 老师,你确定Java注释不会被执行吗?
  20. 什么是回滚事务rollback?

热门文章

  1. 如何在自己开发的日程管理页面插入提醒功能_给大家推荐一款高颜值的日程管理类APP...
  2. 怎样查找共享文件_计算机操作系统学习笔记(五):文件管理
  3. electron sqlite3_Electron+React+Antd工程搭建
  4. 怎么将html中纵向拉开,css 实现常用的6种垂直剧中方式
  5. OpenCV-Python实战(18)——深度学习简介与入门示例
  6. php指定编码创建,MYSQL创建数据库时指定编码
  7. mint 安装chrome_在Linux Mint上安装Chrome –简单的分步指南
  8. java关键字static_Java中的static关键字
  9. readline_Swift readLine(),Swift print()
  10. 常用PDF编辑工具 Adobe Acrobat、PDF-XChange Editor 、福昕PDF编辑器、PDFelement