在前一篇博文中我们了解了阿里云容器服务的路由机制:

请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> Web站点容器的80端口

在这篇博文中,我们用nginx镜像创建一个容器实际体验一下。

使用容器服务首先要创建一个集群(Cluster),比如这里我们创建一个名叫websites的集群(使用的是swarm mode):

创建好集群后,点击“管理”,进入集群管理页面 -> “负载均衡” -> “域名设置”,修改为自己的域名(默认域名是alicontainer.com),这样可以通过自己的域名访问容器中的站点。

注:此处有坑,被坑了一个周末的下午,而阿里云帮助文档中只字未提。修改域名设置后一定要在应用列表中“重新部署”acsrouting系统应用:

不然,访问时总是出现下面的错误:

503 Service Unavailable

No server is available to handle this request.

接下来,进入容器服务管理控制台的“镜像与方案” -> “编排模板”(Orchestration Templates)页面,点击“创建”进入“创建编排”页面,填写自己的编排。比如,我们想通过 nginx.cnblogs.com 这个域名访问容器中的站点,我们是这样编排的:

(注:上图中不需要添加aliyun.lb.port_80设置)

编排说明:

  1. 我们的集群用的是swarm mode,所以这里用v3版本模板( version: "3" )。
  2. 镜像用的是nginx
  3. aliyun.routing.port_80 设置的是路由至该容器的域名,比如我们要针对 nginx.cnblogs.com 域名进行路由,只需要写二级域名 nginx ,后缀已经在之前的“负载均衡 -> 域名设置”中设置了。
  4. aliyun.lb.port_80 设置的是所绑定的负载均衡,格式是 tcp://{负载均衡ID}:{负载均衡前端端口} ,这里对应的负载均衡是创建集群时自动创建的负载均衡(如果不是自动创建的,需要在“集群 -> 管理 -> 负载均衡”中绑定负载均衡 )。 aa(后来知道这里不需要添加aliyun.lb.port_80设置,这个设置会自动配置负载均衡,带来的后果是删除应用时,对应的负载均衡配置也会被删除)

创建好编排之后,以此编排创建应用:

应用创建成功后,就可以在应用的“路由列表”中看到应用所绑定的域名:

最后,添加一下域名的dns解析或者hosts解析,就可以通过浏览器访问运行在容器中的nginx站点:

终于搞定!先苦后甜的一次品尝,使用阿里云容器服务进行自动化部署的重要一步。

品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制的更多相关文章

  1. 阿里云ECS服务安装 nginx+php+MariaDB完整版

    安装 Nginx想在 CentOS 系统上安装 Nginx ,你得先去添加一个资源库,像这样: vim /etc/yum.repos.d/nginx.repo使用 vim 命令去打开 /etc/yum ...

  2. 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署

    部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享 ...

  3. 【New Feature】阿里云快照服务技术解析

    一.背景   目前上云已经成为行业发展趋势,越来越多的企业级客户将业务系统和数据库迁移到云上.而传统的备份一体机/备份软件方式,并不适合云上ECS.RDS等产品的备份与容灾服务.阿里云块存储服务提供云 ...

  4. ACK容器服务虚拟节点使用阿里云日志服务来收集业务容器日志

    按照这篇博文的介绍,可以在ACK集群上通过Helm的方式部署虚拟节点,提升集群的弹性能力.现在,通过虚拟节点部署的ECI弹性容器实例也支持将stdout输出.日志文件同步到阿里云日志服务(SLS)进行 ...

  5. 阿里云Kubernetes服务上使用Tekton完成应用发布初体验

    Tekton 是一个功能强大且灵活的 Kubernetes 原生开源框架,用于创建持续集成和交付(CI/CD)系统.通过抽象底层实现细节,用户可以跨多云平台和本地系统进行构建.测试和部署. 本文是基于 ...

  6. 杂项-分布式-EDAS:深度解析阿里云EDAS服务

    ylbtech-杂项-分布式-EDAS:深度解析阿里云EDAS服务 1.返回顶部 1. 深度解析阿里云EDAS服务 弹性伸缩 摘要: 第一种只适用于业务较少的情况,而在新业务不断增加的情况下,增加新应 ...

  7. 阿里云Kubernetes服务 - Service Broker快速入门指南

    4月底阿里云容器服务上线了基于Kubernetes集群的服务目录功能.阿里云的容器的服务目录遵循Open Service Broker API标准,提供了一系列的服务代理组件,实现了对主流开源服务如M ...

  8. 用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题

    阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Re ...

  9. 阿里云 Redis 服务遇到的问题

    ERR unknown command eval 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: St ...

随机推荐

  1. 数据库连接池优化配置(druid,dbcp,c3p0)

    主要描述了数据库连接池参数配置的准则,针对常用的数据库连接池(c3p0,dbcp,druid)给出推荐的配置. 考虑因素 1:当前连接DB的规模   2:并发情况 3:执行db的响应时间 配置考虑 1 ...

  2. Emacs 设置C++代码风格

    ;; C++代码风格设置 (defconst cobbcpp '("linux" ; this is inheritance from the linux style (c-bas ...

  3. 【Windows】创建任务计划

    任务计划,可以将任何脚本.程序或文档安排在某个时间运行. 可以按照如下的方式来启动:附件 -> 系统工具 -> 任务计划程序. 也可以在Win+R后,输入:taskschd.msc 命令来 ...

  4. elasticsearch 忽略大小写模糊搜索实现(转)

    在es查询时不区分大小写,可以让查询更方便,具体设置如下: { "settings": { "analysis": { "analyzer" ...

  5. 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息

    实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ HAL_SD_TransferStateTypedef State; /* USER CODE ...

  6. Java知多少(16)StringBuffer与StringBuider

    String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是Strin ...

  7. windows 同时启动多个Tomcat 控制台日志(startup.bat)输出到指定文件中

    1 .修改startup.bat第42行 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%&q ...

  8. SpringBatch的初步了解

    一.SpringBatch是一个批处理的框架,作为一个Spring组件,提供了通过使用Spring的依赖注入来处理批处理的条件. 什么是批处理呢? 在现代企业应用当中,面对复杂的业务以及海量的数据,除 ...

  9. python 守护进程,监控进程

    守护进程代码: import time, os import subprocess def run(): while True: taskList = os.popen('tasklist').rea ...

  10. Python 中的map、reduce函数用法

    #-*- coding:UTF-8 -*- #map()函数接受两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回 def f(x): retu ...