百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

利用Amazon ECR/ECS部署容器应用

bigegpt 2024-09-03 11:05 3 浏览

众所周知现在容器的技术越来越火,很多企业已经将整个业务架构容器化,利用容器的灵活性、可移植性、轻量等优势为企业开发和运维带来很大的优势,目前整个容器编排服务中最吃香的当然是Kubernetes (简称K8S),亚马逊发现60%以上的k8s用户都跑在AWS云上,所以去年AWS推出了名为EKS (Elastic Container Service for kubernetes)的托管K8s集群服务,那当然除了K8s还有很多容器编排服务比如 Mesos、Swarm、Amazon ECS等等,今天想和大家分享的是AWS自己的容器编排服务ECS(Elastic Container Service)

Amazon ECS是一种高度可扩展的高性能编排服务,支持 容器,让您可以在 AWS 上轻松运行和扩展容器化应用程序使用 Amazon ECS,您不需要安装和操作自己的容器编排软件,不需要管理和扩展虚拟机集群,也不需要在这些虚拟机上调度容器。

通过各种简单的 API 调用,您可以启动和停止支持 Docker 的应用程序、查询应用程序的完整状态,并使用 IAM 角色、安全组、负载均衡器、Amazon CloudWatch Events、AWS CloudFormation 模板和 AWS CloudTrail 日志等多种常用功能。

而Amazon ECR (Elastic Container Registry) 是AWS 上提供的一个托管的容器镜像仓库服务,它和ECS做集成简化了我们开发运维的工作流程,也不需要我们自己去维护和管理镜像仓库,接下来我们简单来看下ECR和ECS的使用。

ECR 镜像仓库的使用:

首先我们来创建属于自己的容器镜像仓库ECR,打开我们的AWS Console,在服务列表中选择ECR服务,选择 "创建存储库"

就这么简单你就可以创建属于自己的容器镜像仓库

接着选中刚刚所创建的镜像仓库,点击查看"推送命令",你会看到相关的docker 命令,如果用过docker的童鞋肯定比较熟悉,同样的方法需要我们login一下,然后打tag指向我么刚刚创建的镜像仓库, 然后push。当然前提是你已经安装好了AWS CLI 并且登录了相关凭证,如果你还没有AWS CLI 可以参考AWS官方文档。

那么接下来我们试着向我们刚刚创建的ECR仓库推送镜像

Get-login 我们的仓库,显示"Login Succeeded"

我们可以通过AWS CLI来查看我们的仓库信息

目前仓库里没有任何镜像

接下来我们试着推送一个镜像到仓库,这里我本地已经有了一个Jenkins的容器镜像,我们试着将他推送到仓库,待会正好用它来部署我们的ECS。

回到我们ECR Console 里查看,当然也可以通过刚刚我们的CLI命令来查看

做到这里,我们已经可以向自己的镜像仓库中推送容器镜像了,接下来我们用刚刚推送的Jenkins镜像快速简单通过ECS进行部署。

ECS的简单部署:

在服务列表里选择ECS服务,首先我们要先创建我们的"集群",因为容器是基于操作系统的的虚拟化,所以它还是需要运行在我们的实例上,而ECS就是在实例上安装了相应的Agent,你也可以将现有的实例注册到集群当中来,这里我们新创建一个集群并选择一台较小的实例来演示

启动的时候你可以看到两个运行选项,这里我们选择Linux,而国外还有一个选项Fargate。Fargate是一个不需要管理服务器或群集即可运行容器的无服务器服务,有兴趣的可以看下官方关于Fargate的介绍, 国内目前还不支持,这里就先不给大家演示了。

这里需要配置我们"集群名称" 还有实例类型以及VPC等等一些信息,我们选择一个实例(t2.micro),集群数量选择"1" , 实例启动除了一个根卷以外还需要一个存储容器数据的EBS卷,。 然后配置安全组、密钥(用来登录容器实例)、VPC 等信息,然后点击"创建"

稍等几秒就可以看到集群启动成功

查看集群选择"ECS实例",你会看到已经有一个实例运行,你也可以通过EC2 服务Console看到正在运行的一台实例

这样我们的容器集群就运行起来了(虽然只有一台实例~~~),接下来我们需要部署我们的容器上去,需要我们创建一个 Task Difinition (任务定义),如果之前用过Docker 的肯定知道Dockerfile, 任务定义就相当于Dockerfile,你可以通过console创建,也可以通过JSON格式的文本来定义,

选择"任务定义" 创建新的任务定义

这里需要注意的是网络模式,默认以Bridge模式,不同的网络模式定义了你访问容器的方式,我们选择 "默认"。

接下来需要配置我们的容器信息,点击"添加容器":

这里将配置我们运行容器的一些参数(相当于通过鼠标写一个JSON文本),而容器镜像我们选择我们自己ECR仓库中推送的镜像,然后配置容器内存及端口映射,点击"添加"。

我们可以点击'JSON配置' 来看下json格式下我们刚刚配置的信息,所以你也可以通过json格式来配置

点击"创建",这样我们的任务就创建好了,接下来需要把它运行起来。

点击我们刚刚创建的任务,在"操作"中选择"运行任务",选择运行任务的集群及任务数(这里我们只有一台实例所以选择一个任务数演示),关于容器置放策略可以参考AWS官方文档。

我们可以运行成功后你就可以看到状态已经是"RUNNING",这时候我们的jenkins容器已经运行了起来,

最后我们需要创建一个"服务",用来定义容器的副本数保持副本数量以及和ELB负载均衡器访问我们的容器,包括Autoscaling 。

点击"创建",

添加ELB到集群,这里我已经提前创建好了ELB,选择添加到ELB

这里需要设置一个评估顺序,用来定义规则的优先级

最后通过ELB的DNS域名我们来访问我们的Jenkins服务。

做到这里我们已经成功的在AWS 上通过ECR/ECS服务部署了属于我们自己的Jenkins 容器服务!

Amazon ECS是AWS 自己的容器编排服务,它很好的和AWS其他服务进行了集成,而如果企业当中目前没有使用过容器编排服务,你可以尝试使用AWS 的ECS服务,相反,如果你已经使用了其他容器编排服务,例如K8s,你可以选择使用Amazon EKS,因为它是完全兼容k8s。


相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...