Tag: 亚马逊 ECS

aws ecs优化AMI中的私有dockerregistryauthentication不成功

我正在编写一个用于创buildECS自动缩放集群的terraform脚本。 我已经创build了一个集群并添加了ec2容器实例。我的任务定义文件包含一个来自私有docker repository的映像。我通过aws官方文档find一个Private Registry Authentication页面,并尝试了两种方式如那里所述。 使用dockercfg docker的方式 我把我的ecs.config文件放在S3存储桶中,在实例启动的时候我传递了用户数据 #!/bin/bash yum install -y aws-cli aws s3 cp s3://<my_bucket_name>/ecs.config /etc/ecs/ecs.config 在我的第二种方法中,我将所使用的数据作为 echo "ECS_ENGINE_AUTH_TYPE=docker" >>/etc/ecs/ecs.config echo "ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}" >>/etc/ecs/ecs.config 我在我的/etc/ecs/ecs.config中find数据login到我的容器实例时,但当我尝试手动拉图像时,我显示了一个错误,没有find图像。 然后我尝试dockerlogin命令,并手动input我的凭据,并尝试再次拉那个图像,最终它是成功的。 我不确定是否有一种方法来实现ecs优化图像中的私人dockerregistry身份validation通过用户数据或不自动或如果我做错了什么。 请帮我解决这个问题。

AWS ecs任务定义variables

是否可以在AWS ECS任务定义中dynamic设置值? 例如。 我有以下卷定义。 "volumes": [ { "host": { "sourcePath": "/tmp/logs/registrations" }, "name": "logs" } ], 我想要做一些像/tmp/logs/<container_id> 。 我想这样做,因为我有多个容器运行相同的应用程序。 我需要为每个容器日志目录安装一个sumologic收集器。 问题是,如果目录不是由容器命名空间,那么挂载将会发生冲突。

Amazon AWS ECS Docker端口未正确绑定

我正在使用ECS优化的ECS映像并使用ECS进行部署。 所以,如果我撞到容器和curl localhost我得到预期的输出(预计将在端口80),这工作正常。 然后,如果我运行docker ps我得到以下输出 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1234 orgname/imagename:release-v0.3.1 "npm start" 53 minutes ago Up 53 minutes 0.0.0.0:80->80/tcp ecs-myname-1234` 这将build议端口80正在按预期映射。 (我也看到亚马逊ECS代理,但已经发布,以上并不重要) 然后我可以运行netstat -tulpn | grep :80 netstat -tulpn | grep :80 ,我得到以下输出 (No info could be read for "-p": geteuid()=500 but you should be root.) tcp 0 0 :::80 […]

AWS ECS上的Kafka,如何在不知道实例的情况下处理advertised.host?

我试图让Kafka在AWS ECS容器上运行。 我已经使用spotify/kafka 图像在本地docker环境中正常工作 为了在本地工作,我需要确保设置了ADVERTISED_HOST环境variables 。 ADVERTISED_HOST需要被设置为容器的外部IP,否则当我尝试连接时只是给我connection refused 。 我的本地docker-compose.yaml对于kafka容器有这个: kafka: image: spotify/kafka hostname: kafka environment: – ADVERTISED_HOST=192.168.0.70 – ADVERTISED_PORT=9092 ports: – "9092:9092" – "2181:2181" restart: always 现在的问题是,我不知道IP将会是什么,因为我不知道这将运行在哪个实例。 那么如何设置这个环境variables呢?

AWS ECS代理将无法启动

当我尝试运行ECS代理时,在ecs-init.log *中出现以下错误: [INFO] Agent exited with code 5 [ERROR] agent exited with terminal exit code 而在ecs-agent.log *文件中,我得到这个: [CRITICAL] Data mismatch; saved cluster 'cluster1' does not match configured cluster 'cluster2'. Perhaps you want to delete the configured checkpoint file? 任何想法检查点文件在哪里?

在尝试连接到AWS ECS EC2实例中的容器时,在$ PATH中找不到可执行文件

我很难搞清楚如何通过ssh连接到我的EC2实例中的Docker容器。 基本上,我可以进入服务器好,并使用docker ps列出我的容器。 但是,我无法在该容器中获得一个shell来运行我需要运行的一些shell脚本。 本地,我只是使用… docker attach [cid] # or 'docker exec -it [cid] bash' to open new shell …但是,有明显的问题与运行docker attach和docker exec -it [cid] bash我越来越… rpc error: code = 2 desc = "oci runtime error: exec failed: exec: \"bash\": executable file not found in $PATH" 为了提供一些细节,我相信我已经正确地设置了ECS。 从适用的社区AMI amzn-ami-2016.03.e-amazon-ecs-optimized我已完成以下设置: 一个适用的ecsInstanceRole和ecsServiceRole 正在运行的EC2实例。 指向该实例的负载均衡器。 ECS中的标记存储库。 指向ECS存储库的ECS任务定义。 一个ECS集群,分配了一个实例插槽,并通过(我相信)启动脚本成功地与EC2相关联。 这个集群还有一个与我提到的负载平衡器相关的服务以及相关的任务定义。 […]

为什么要为Docker使用AWS ECS vs. ElasticBeanstalk?

我打算使用Docker,并将1个EC2实例与1个Microservice相关联。 为什么我要在AWS ECS vs. ElasticBeanstalk中部署Docker? 据说AWS ECS对Docker有本地支持。 是吗? 如果您能详细说明AWS ECS vs. ElasticBeanstalk上正在运行的docker的优缺点, 那就太好了 。

是否可以从Docker镜像创buildAWS AMI?

我在我的AWS ECR中有一个Docker镜像,我想将其转换为AWS AMI以创build具有该环境的实例。 尝试在Docker容器上使用AMI的原因 我不得不在一些文本文件的m4.xlarge实例中的Docker容器中运行计算密集的ML任务。 但是,在Docker中,实例的CPU利用率达到了100%,并且脚本正在被成熟地杀死。 但是,它在Docker外部的相同实例中运行良好。 所以,我想从Docker迁移到AMI,但是我也想利用Docker来创build环境,以及在本地启用的testing的速度。 那么, 是否有可能通过我testing并部署到我的ECSregistry的Docker映像创buildAMI ?

具有绑定端口和绑定主机名的Akka集群

按照Akka FAQ的规定,在application.conf中configurationbind-hostname和bind-port后,启动集群,我收到一个错误消息: [ERROR] [07/09/2015 19:54:24.132] [default-akka.remote.default-remote-dispatcher-20] [akka.tcp://default@54.175.105.30:2552/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fdefault%4054.175.105.30%3A2552-757/endpointWriter] dropping message [class akka.actor.ActorSelectionMessage] for non-local recipient[Actor[akka.tcp://default@54.175.105.30:32810/]] arriving at [akka.tcp://default@54.175.105.30:32810] inbound addresses are [akka.tcp://default@54.175.105.30:2552] 这似乎是说演员已经收到一个消息32810(外部端口),但由于内部端口(2552)不匹配而丢弃。 该文件的相关部分是: hostname = 54.175.105.30 port = 32810 bind-hostname = 172.17.0.44 bind-port = 2552 我已经在2.4-M1,2.4-M2和2.4-SNAPSHOT上试过了,所有的效果都一样。 有没有其他人遇到过这个? 有什么build议么? 编辑:这个演员系统在docker集装箱的ECS中运行。 docker容器configuration设置为从容器的专用IP上的临时范围转发到2552。 ECS正在成功将hostname:port映射到bind-hosname:bind-port。 参与者正在成功运行并绑定到本地绑定主机名和绑定端口,但正在丢弃消息并发出上述错误。

用Dockerconfigurationbitbucketstream水线连接到AWS

我正在尝试设置Bitbucketpipe道以部署到ECS,如下所示: https : //confluence.atlassian.com/bitbucket/deploy-to-amazon-ecs-892623902.html 这些指令说如何推到Docker中心,但我想把图像推到亚马逊的图像回购。 我已经在我的Bitbucket参数列表中设置了AWS_SECRET_ACCESS_KEY和AWS_ACCESS_KEY_ID,并且我可以在本地运行这些命令而没有任何问题(在〜/ .aws / credentials中定义的键)。 但是,我不断收到错误“没有基本的身份validation凭据”。 我想知道如果它不以某种方式识别variables。 这里的文档: http : //docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html说: AWS CLI使用提供程序链来查找许多不同位置的AWS凭证,包括系统或用户环境variables以及本地AWSconfiguration文件。 所以我不知道为什么它不工作。 我的bitbucketstream水线configuration是这样(我没有包括任何不必要的东西): – export IMAGE_NAME=$AWS_REPO_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/my/repo-name:$BITBUCKET_COMMIT # build the Docker image (this will use the Dockerfile in the root of the repo) – docker build -t $IMAGE_NAME . # authenticate with the AWS repo (this gets and runs the […]