我对kubernetes非常陌生,它是如何工作的,但我知道它的定义。 我想看看它是如何工作的。 我对docker工具和它的function很安静。我有这个任务,我想很快完成。 你能不能指导我一步一步地走下去。 创build一个运行Tomact的Docker镜像。 它应该运行的端口是5000. tomcat应用程序应该使用kubernetes在Docker容器中以集群模式运行centos。 您可以在解决scheme中使用任何开源负载平衡器(如HAproxy)。 需要build立监控,确保系统资源得到正确利用。 您可以select您自己的监测解决scheme,如Promethues,Sensu,Nagios,Zabbix等。您也可以附加仪表板。 Docker容器应该将日志文件永久存储在Docker守护进程正在运行的基本机器中。 您可以自由使用任何configurationpipe理工具,如SaltStack,Ansible,Puppet,Chef等。 我已经完成了在这两台机器上启动2 aws ec2 ubuntu实例并安装docker。 接下来我应该做什么?
我已经成功地从一个主要到二级postgres泊坞窗容器安装复制stream,每个容器在单独的ec2实例上作为任务运行。 不过,我通过将主服务器上的复制用户作为信任保留在其pg_hba.conf中来实现此目的: host replication replication 0.0.0.0/0 trust 然后,当我切换到MD5,我想我可以简单地设置复制用户的辅助密码,一切都会好起来的。 不。 在我的辅助初始化脚本中,当我调用pg_basebackup -h #{primary_ip} -p 5432 -D $PGDATA -U #{repl_user} -v -P -w –xlog-method=stream我最初得到密码提示。 然后我加了-w 。 这会给我的错误: pg_basebackup: could not connect to server: fe_sendauth: no password supplied 然后我发现在通用的postgres 9.6映像上没有postgres主目录,所以我添加了一个$ PG_PASSFILEvariables。 这不起作用(权限很好,我甚至把它放在/ tmp中,并通过pg_basebackup行上的PG_PASSFILE = …,正如在这个问题中: .pgpass在Dockerized环境中用于PostgreSQL复制 (参见Raphael的评论) ) 不pipe我做什么,pg_basebackup都会忽略.pg_pass文件。 然后,我尝试将卷挂载为/ home / postgres,但是使用AWS,我似乎无法在创build的入口点init脚本中创build根目录。 一切都是作为postgres用户。 有人克服这个吗? 我正在运行我的辅助初始化代码作为入口点脚本。 就像我说的,作为信任工作正常,但添encryption码正在杀死我。
我正在编写一个Web应用程序,它将在aws中的ec2实例中运行。 它由两个docker集装箱组成,一个后端和前端集装箱。 后端用作api,写在nodejs中,前端用reactjs写成。 我无法弄清楚如何让集装箱以不仅与aws兼容的方式进行通讯,而且还可以与弹性装载机平衡机一起工作。 具体而言,如果后端严重征税,我希望更多的后端实例在处理来自客户端的请求时被抛弃。 前端将通过http向后端发出请求,后端将响应客户端显示的一些数据(通过reactjs)。 前端泊坞窗容器暴露端口3000,后端容器暴露其各自的泊坞窗文件中的端口3001。 在本地我鼓励像这样的节点通信: // package.json … "proxy": "http://localhost:3001/", … // front-end code requestServerToProcessParameters(parameters) { return new Promise(function(resolve, reject) { request .post('/ProcessCase/DataPoints') .send(parameters) .end(function(err, res) { if (err) { console.log(err); reject(err) } else { resolve(res); } }); }); } 正如你可以看到前端代理请求到后端,但是,这是硬编码,并在一个真正的宁静api前端或后端都不应该彼此了解。 所以我想我的问题是,这些docker集装箱互相沟通的最佳方式是什么? 我真的不希望他们生活在同一个docker-network因为这两个集装箱再也不需要彼此了解。 elastic load balancer能否将我的请求从前端路由到后端?
我目前的做法是logging到每个容器的标准输出,然后得到docker将其发送到系统日志,或者如果容器不能执行标准输出到syslog到远程系统日志,并设置logstash是该系统日志接收器。 AWS是否提供了我应该考虑的日志function?
我有一个在Amazon EC2的Docker容器中运行的野蛮群集应用程序。 这是我的Docker ps: 913171ca1a34 xxxxxxxxxxx/myrepository:osapp2.0 "java -jar /app/Or…" 55 minutes ago Up 55 minutes 8080/tcp, 0.0.0.0:4000->80/tcp elastic_yonath netstat -ano | grep 4000 gives following output tcp 0 0 :::4000 :::* LISTEN off (0.00/0/0) netstat -ano | grep 80 udp 0 0 fe80::841:a6ff:fe76:c70c:546 :::* off (0.00/0/0) udp 0 0 :::53880 :::* off (0.00/0/0) unix 3 […]
docker-compose容器无法连接到互联网的问题。 通过docker cli或kubelet手动创build的容器工作得很好。 这是在使用带有Calico覆盖的Kops创build的AWS EC2节点上(我认为这可能与其无关)。 这是docker组成: version: '2.1' services: app: container_name: app image: "debian:jessie" command: ["sleep", "99999999"] app2: container_name: app2 image: "debian:jessie" command: ["sleep", "99999999"] 这失败了: # docker exec -it app ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes docker-compose container < – >容器工作(按预期): # docker exec -it app ping app2 PING app2 (172.19.0.2): 56 […]
我有一个web项目,我想用docker-compose和nginx来部署。 我在本地, docker-compose build docker-compose push 如果我是docker-compose up ,我可以访问localhost/并redirect到我的index.html 。 现在在我的EC2实例(我安装了docker和docker-compose的一个常规ec2实例)中, docker-compose pull ,然后是docker-up。 所有的容器都可以正常启动,我可以exec sh到我的nginx容器中,看到有一个/facebook/index.html文件。 如果我去[instance_ip]/index.html ,一切都按预期工作。 如果我去[instance_ip]/ ,我得到一个404响应。 nginx收到请求(我在访问日志中看到它),但不会redirect到index.html 。 为什么index指令不能redirect到我的index.html文件? 我尝试过了: 通过删除所有本地图像并从我的registry中提取本地重现。 杀死我的EC2实例,并启动一个新的。 但是我得到了同样的结果。 我使用docker-compose 1.11.1和docker 17.05.0。 在ec2实例上,它是docker 17.03.1,我试了两个docker-compose 1.11.1和1.14.1(注意我有点绝望;))。 来自我的docker-compose文件的摘录: nginx: image: [image from registry] build: context: ./ dockerfile: deploy/nginx.dockerfile ports: – "80:80" depends_on: – web 我的nginx镜像从alpine开始,安装nginx,添加index.html文件,并将我的conf文件复制到/etc/nginx/nginx.conf 。 这是我的nginxconfiguration。 我检查它在运行的容器上(包括本地和ec2上)。 # […]
我正在尝试将开源地理编码服务器部署到连接到AWS EC2的Docker云上。 容器在当地完美工作。 但是,当我在云上执行start.sh命令。 它总是给我错误: * Starting PostgreSQL 9.3 database server …done. httpd (pid 44) already running 然后在启动失败。 任何想法如何解决它或出了什么问题?
我正在尝试使用AWS ECS启动我的Docker容器。 当我运行任务,我看到状态为待定,然后立即我看到我的任务状态是在停止。 但是,当我尝试通过SSH手动运行相同的docker容器到该框中,我能够启动容器。 我无法使用ECS代理获取我的docker集装箱。 我也尝试SSH到那个盒子里,看着所有的ECS日志,这是没有帮助的跟踪这个问题。 这是我一步一步做的 在本地创build我的docker集装箱和testing相同。 按照ECS的AWS入门文档,将正在运行的docker容器映像上传到AWS ECR。 为我的docker集装箱创build任务定义。 创build了一个集群configuration来运行我的任务 我运行了任务并select了任务应该运行的集群 我看到任务状态处于挂起状态,立即将状态更改为停止状态。 我不知道如何解决这个问题。 同样从AWS UI,我看到docker集装箱退出0退出。 这是我创build的任务定义 任务定义JSON { "requiresAttributes": [ { "value": null, "name": "com.amazonaws.ecs.capability.ecr-auth", "targetId": null, "targetType": null }, { "value": null, "name": "com.amazonaws.ecs.capability.task-iam-role", "targetId": null, "targetType": null } ], "taskDefinitionArn": "arn:aws:ecs:us-east-2:####################:taskdefinition/app1:3", "networkMode": "bridge", "status": "ACTIVE", "revision": 3, "taskRoleArn": "arn:aws:iam::##################################:role/EC2ContainerServiceFullAccess", "containerDefinitions": [ […]
我正在使用docker和amazon EC2实例(本地机器是mac)在dotnet核心项目上工作。 一切都很好,直到今天。 在我的最后一个docker版本上,命令dotnet恢复开始安装新的和必要的软件包。 它应该只安装65个包,现在我得到了一百多个。 此外,docker生成的图像没有任何原因,从500Mo增长到850Mo。 你有什么线索可能来自哪里。 我的完整安装: Mac OS El Capitan 可视代码1.17.2 .net核心1.1 docker Amazon EC2实例 ——编辑:更多信息——— 我的csproj文件 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="AWSSDK.CognitoIdentity" Version="3.3.2.6" /> <PackageReference Include="AWSSDK.Core" Version="3.3.13.1" /> <PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.3.0.3" /> <PackageReference Include="AWSSDK.S3" Version="3.3.5.14" /> <PackageReference Include="SSH.Net" Version="2016.0.0" /> <PackageReference Include="ImageSharp" Version="1.0.0-alpha9-00089" /> <PackageReference […]