Tag:

在一个docker群中的芹菜工人或牧场牛

我有一个devise问题。 我在几个主机上使用docker化的芹菜工人。 我只在每个主机上运行芹菜容器的一个实例,但使用默认的celery默认工人设置,默认为该主机上的核心数量。 我没有设置docker集装箱的限制。 我使用牧场主来部署到使用牛环境的主机,但是我想我的问题同样适用于像swarm这样的任何docker集群。 由于芹菜的工作方式,我没有使用多个容器来使用扩展function – 一个容器已经能够通过拥有多个工人来利用核心。 问题是:主机上有更多的工人容器对我有好处吗? 如果是这样的话,我是否需要限制每个芹菜工人在每个容器中只有一个,让这个集群能够扩展多个容器? 我可以想象的唯一好处是从高可用性的angular度来看,如果芹菜工人死在主机上就不见了,但是如果我有更多的容器可以接pipe工作,但是我认为芹菜可以通过重新生产来做同样的事情也是工人。 我错过了什么吗?

如何清除docker容器内的caching内存

我在EC2中有一个docker swarm CE设置。 我有两个节点。 1名经理和1名工人。 主机实例types是Alpine Linux。 在Manager主机中,内存使用情况是: ~ $ free -m total used free shared buffers cached Mem: 7972 4996 2975 715 178 2857 -/+ buffers/cache: 1960 6011 Swap: 0 0 0 〜$ 现在当我login容器时, ~ $ docker exec -it c7cc255aca1f /bin/bash [root@c7cc255aca1f /]# And see the memory utilization: [root@c7cc255aca1f /]# free -m total used […]

JGroups在跨多个节点的Docker中运行时并不形成集群

我在Docker容器中运行jgroups应用程序。 容器运行在两个节点(A和B)之间,它们都使用docker群模式覆盖networking连接。 我提到https://docs.docker.com/engine/swarm/networking/ 这是我所做的和观察到的。 Jgroup绑定地址被设置为容器的覆盖networkingIP 在同一节点内运行的容器正在形成一个集群。 我使用nslookup来确保运行在节点A中的容器的覆盖networkingIP可以通过在节点B中运行的容器到达 docker node ls正确显示节点并能够成功调度容器实例。 Docker版本:Docker版本17.03.1-ce,build c6d412e 操作系统:Ubuntu 16.04.2 Cloud:AWS(端口7946 TCP / UDP和4789 UDP已打开) JGroups:3.6.6 Jgroups XML: <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:org:jgroups" xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups.xsd"> <TCP bind_port="7600" recv_buf_size="${tcp.recv_buf_size:5M}" send_buf_size="${tcp.send_buf_size:5M}" max_bundle_size="64K" max_bundle_timeout="30" use_send_queues="true" sock_conn_timeout="300" timer_type="new3" timer.min_threads="4" timer.max_threads="10" timer.keep_alive_time="3000" timer.queue_max_size="500" thread_pool.enabled="true" thread_pool.min_threads="2" thread_pool.max_threads="8" thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="true" thread_pool.queue_max_size="10000" thread_pool.rejection_policy="discard" oob_thread_pool.enabled="true" oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000" oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="discard"/> <JDBC_PING […]

如何在swarm上下文中使用docker python SDK?

为了使用像这样的命令: client.nodes 我们需要在一个群体中的经理机器上运行python代码。 但我想如何启动python程序? 在Docker机器上没有安装python的东西,我不认为这是一个好主意,试着继续下去。 如果你在一个容器中启动python,你不在swarm上下文中。 我发现的唯一方法是在Docker的Docker Quickstart Terminal中启动python程序,并在Swarm中创build“默认”机器pipe理器。 但是现在我需要在Ubuntu上这样做,所以我不能使用这个解决scheme。 (如果有一个相当于Docker Quickstart Terminal的话,我很感兴趣)

运行Hazelcast集群的Docker群集模式

我使用docker群运行Hazelcast群集。 即使节点build立连接 Members [1] { Member [10.0.0.3]:5701 – b5fae3e3-0727-4bfd-8eb1-82706256ba2d this } May 27, 2017 2:38:12 PM com.hazelcast.internal.management.ManagementCenterService INFO: [10.0.0.3]:5701 [kpts-cluster] [3.8] Hazelcast will connect to Hazelcast Management Center on address: http://10.0.0.3:8080/mancenter May 27, 2017 2:38:12 PM com.hazelcast.internal.management.ManagementCenterService INFO: [10.0.0.3]:5701 [kpts-cluster] [3.8] Failed to pull tasks from management center May 27, 2017 2:38:12 PM com.hazelcast.internal.management.ManagementCenterService INFO: […]

jenkins使用Ansible部署到docker群

在我的环境中,我们使用Ansible从Jenkins部署到Docker群,通过覆盖networking扩展它,使用Consul和Zookeeper等发现服务, 我的问题是我们如何扩大节点,领事如何知道关键值,如何定义docker群的框架工作

Docker群集故障转移行为似乎有点令人沮丧

我目前正在尝试使用Docker Swarm在三节点集群上以高度可用的方式设置我们的应用程序(包括无状态服务和有状态服务)。 “高可用”的意思是“能够解决三个节点之一的故障”。 我们一直在做这样的安装(使用其他方式,而不是Docker,更不用说Docker Swarm了),并取得了很好的成功,包括可接受的故障转移行为,所以我们的应用程序本身(构成它的服务)已经certificate在这样的三节点设置中,它们可以高度可用。 使用Swarm,我成功启动并运行了应用程序(所有三个节点均已启动),并且保证每个服务都有冗余configuration,即每个服务都存在多个实例,它们已针对HA进行了正确configuration,并非所有服务的实例都位于同一个Swarm节点上。 当然,我也注意到所有的Swarm节点都join了Swarm作为pipe理者节点,这样如果原来的Leader节点失败,他们中的任何一个都可以成为Swarm的领导者。 在这个“良好”状态下,由于Swarm的Ingressnetworking,我可以在任何节点的暴露端口上获得服务。 很酷。 在生产环境中,我们现在可以将高度可用的负载均衡器放在群集工作者节点的前面,这样客户端就可以拥有一个IP地址来连接,而且如果其中一个节点发生故障,您甚至不会注意到。 所以,现在是testing故障转移行为的时候了……我预计杀死一个Swarm节点(即,VM的硬closures)将使我的应用程序运行,尽pipe处于“降级”模式。 唉,在closures之后,我无法通过他们暴露的(通过Ingress)端口在相当长的时间内到达我的任何服务。 有些可以再次达到,并且确实已经恢复成功(例如,三节点Elasticsearch集群可以再次访问,当然现在缺less一个节点,但是回到“绿色”状态)。 但其他人(唉,这包括我们内部的LB …)通过他们发布的端口仍然无法访问。 “docker node ls”显示一个节点不可达 $ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS kma44tewzpya80a58boxn9k4s * manager1 Ready Active Reachable uhz0y2xkd7fkztfuofq3uqufp manager2 Ready Active Leader x4bggf8cu371qhi0fva5ucpxo manager3 Down Active Unreachable 如预期。 我的Swarm设置导致这些影响,我可能会做错吗? 我只是在这里期待太多?

如何在Docker群集模式负载平衡器中托pipeAsp.net应用程序

现在我的应用程序正在VM主机iis下运行。 我打算使用docker群进行部署。 但是我正面临机器问题。 我怎么可以运行这个应用程序使用docker群模式。 我们将dynamic扩展和扩展。 机器的钥匙总是接触同一台机器。 如果我们在集群模式下托pipe应用程序,则必须在web.config文件中添加macinekey。 有没有解决scheme。

在我的群组中通过映像重新部署所有泊坞窗服务

我的工作stream程是: 用git推码 在CI服务器上构builddocker镜像( drone.io ) 将图像推送到我的私人registry 在这里我需要使用这个来自registry的新映像版本更新所有堆栈中的所有服务 有没有人知道如何以适当的方式做到这一点? 我在Docker文档中看到了一个滚动更新的官方教程。 docker service update –image <image>:<tag> service_name 但有一个问题,我不知道服务和堆栈名称。

Docker 17.06中的服务无法在群集模式下随机工作

运行服务命令: docker service create -d \ -p 8080:8080 \ –mount type=bind,source=/etc/localtime,target=/etc/localtime \ –mount type=bind,source=/etc/timezone,target=/etc/timezone \ –mount type=bind,source=/home/test/docker/manager,target=/root \ –network test-network \ –workdir /root \ –name test-manager \ –replicas 2 \ –limit-cpu 2 \ –limit-memory 4G \ java:8 java -Dspring.profiles.active=$PROFILE -jar -Xms512m -Xmx4096m /root/target/test-manager.jar 服务启动后,我用curl 192.168.2.48:8080/infotesting了服务,有50%的请求没有工作。 用docker exec -it xxx bashinput容器,用curl 10.0.1.6:8080/info和curl 10.0.1.7:8080/info ,发现所有结果都OK。 但是,如果我重新启动上述服务几次,有时候,所有的请求都完全工作。 networking检查 […]